Wie lerne ich die Erkennung von Spam-E-Mails?

8

Ich möchte erfahren, wie ein Spam-E-Mail-Detektor funktioniert. Ich versuche nicht, ein kommerzielles Produkt zu bauen, es wird eine ernsthafte Lernübung für mich sein. Daher suche ich nach Ressourcen wie vorhandenen Projekten, Quellcode, Artikeln, Artikeln usw., denen ich folgen kann. Ich möchte anhand von Beispielen lernen, ich glaube nicht, dass ich gut genug bin, um es von Grund auf neu zu machen. Idealerweise möchte ich mir auf Bayesian die Hand schmutzig machen.

Gibt es so etwas? Programmiersprache ist für mich kein Problem.

Hallo Welt
quelle

Antworten:

6

Überprüfen Sie dies zunächst sorgfältig. Sie finden einen einfachen Datensatz und einige Artikel, die Sie überprüfen können.

ABER da Sie ein einfaches Lernprojekt starten möchten, empfehle ich, keine Papiere durchzugehen (die offensichtlich nicht grundlegend sind ), sondern Ihren eigenen Bayes'schen Lernenden aufzubauen, was nicht so schwierig ist.

Ich persönlich schlage Andrew Moores Vorlesungsfolien zu probabilistischen grafischen Modellen vor, die frei verfügbar sind und aus denen Sie einfach und Schritt für Schritt lernen können.

Wenn Sie detailliertere Hilfe benötigen, kommentieren Sie einfach diese Antwort und ich helfe Ihnen gerne weiter :)

Viel Spaß beim baysischen Lernen!

Kasra Manshaei
quelle
2

Eine grundlegende Einführung in die Bayes'sche Methode zur Spam-Erkennung findet sich in dem Buch "Doing Data Science - Geradliniges Sprechen von der Front" von Cathy O'Neil, Rachel Schutt.

Das Kapitel ist gut, weil es erklärt, warum andere gängige datenwissenschaftliche Modelle für Spam-Klassifizierer nicht funktionieren. Das ganze Buch verwendet R durchgehend. Nehmen Sie es also nur auf, wenn Sie an einer Arbeit mit R interessiert sind.

Das Enron-E-Mail-Set wird als Trainingsdaten verwendet, da E-Mails bereits in Spam / Nicht-Spam unterteilt sind.

sheldonkreger
quelle
2

Dies ist tatsächlich ein wirklich tiefgreifendes Problem, an dem viele Menschen und Unternehmen gearbeitet haben. Hier sind einige Grundlagen:

d

Jetzt befinden sich die Daten in einem nützlichen Raum, aber in einem wirklich hochdimensionalen Raum. Ich würde empfehlen, diese Dimensionalität irgendwie zu reduzieren, aber das ist ein ganzes Thema für einen anderen Thread.

Schließlich könnten Sie einen Algorithmus trainieren, um die Stichproben zu klassifizieren (worum es in den anderen Antworten geht). Es gibt viele gute Möglichkeiten - Neuronale Netze, Adaboost, SVMs, Naive Bayes und grafische Klassifizierungsmodelle liefern gute Ergebnisse. Viele davon haben auch Implementierungen in Scikit-Learn.

Die besten Algorithmen nutzen jedoch die Tatsache, dass es sich bei diesem Problem tatsächlich um ein Transfer-Lernproblem handelt. Das heißt, die Verteilungen, aus denen die Trainings- und Testdaten stammen, sind möglicherweise nicht genau gleich. Die Art der Dinge, die eine Person für Spam hält, unterscheidet sich möglicherweise von der Art der Dinge, die eine andere Person für Spam hält.

Jordan A.
quelle
Können Sie Ihren letzten Absatz näher erläutern ("Transferlernen")? Könnten Sie Links oder Namen angeben?
Valentas
1
Beim konventionellen maschinellen Lernen haben wir einige Daten, die aus einer bestimmten Wahrscheinlichkeitsverteilung stammen. Dann lernen wir eine Art Modell anhand dieser Daten, in der Hoffnung, dass sich das Modell auf Beispiele verallgemeinert, die während des Trainings nicht gesehen wurden. Dies funktioniert nur, wenn diese unsichtbaren Stichproben aus derselben Wahrscheinlichkeitsverteilung stammen. Wir gehen daher davon aus, dass dies der Fall ist. Beim Transferlernen machen wir diese Annahme nicht. Hier ist ein Umfragepapier auf dem Feld.
Jordanien A
Und wie kommt man auf dVariable? Ist es eine feste Zahl, die von einem Wissenschaftler gewählt wird?
Martin Vseticka
ddd