Ich versuche, einen Ansatz zur Erkennung von Betrugsanzeigen auf meiner Website zu finden. Ich denke, das Problem hat viel mit der Erkennung von Spam-E-Mails zu tun (für die ein naiver Bayes-Klassifikator eine häufige Lösung ist), da viele der Signale, die auf einen Betrug hinweisen, im Text der Anzeige zu finden sind.
Es gibt jedoch bestimmte andere Informationen, die gute Betrugsindikatoren sein können, aber ich bin mir nicht sicher, ob / wie ein Bayes-Klassifikator sie verwenden könnte, da es sich eher um numerische Werte handelt (wobei Werte an den Extremen des Bereichs verdächtig sind) als einfache Binärwerte, die dem Vorhandensein oder Fehlen eines Wortes im Text entsprechen.
Beispielsweise ist bei vielen Betrugsanzeigen der Preis des Artikels sehr niedrig eingestellt (um viele Aufrufe zu erzielen). Daher möchte ich, dass ein niedrigerer als der normale Preis ein starker Indikator dafür ist, dass es sich bei der Anzeige möglicherweise um einen Betrug handelt.
Passt Bayes immer noch gut zu meiner Anforderung? Wenn nicht, können Sie dann einen anderen Ansatz empfehlen?
quelle
Naive Bayes können sicherlich sowohl mit numerischen als auch mit diskreten Attributen arbeiten (Modulo-Bedenken hinsichtlich der Angemessenheit der angenommenen Verteilung, wie in anderen Antworten erwähnt). Sie sollten jedoch überlegen, ob Sie Naive Bayes wirklich verwenden möchten, da die nichtdiskriminierende Methode immer mehr zusammenbricht, wenn Sie Daten aus verschiedenen Quellen mit potenziell starken Korrelationen kombinieren.
Wenn Sie eine probabilistische Interpretation beibehalten möchten, ziehen Sie die logistische Regression in Betracht, die ein genaues Analogon von Naive Bayes mit einem eher diskriminierenden als generativen Ziel ist (siehe dieses Papier zum Beispiel: Logistische Regression gegen Naive Bayes . Sie können verschiedene Implementierungen davon finden: I. wie Mallet , wenn Sie Java verwenden können (Zugriff als Befehlszeilentool oder API).
Wenn eine strikte probabilistische Interpretation nicht erforderlich ist, können Sie eine SVM verwenden. Es gibt viele Implementierungen davon, aber der De-facto-Standard (mit einer Variante, die in den meisten Sprachen verfügbar ist) ist LibSVM .
quelle
Sie können ganz einfach numerische Werte verwenden. In den Begriff P (Feature | scam = Yes) können Sie eine Gaußsche Verteilung oder eine andere empirische Verteilung aus Trainingsdaten einfügen (zum Beispiel die Daten sortieren, eine Funktion erstellen, die das Perzentil des angegebenen numerischen Eingabewerts zurückgibt). Hier ist ein Artikel, der das beschreibt
quelle