Erstellen Sie einen binären Klassifikator mit nur positiven und unbeschrifteten Daten

11

Ich habe 2 Datensätze, einen mit positiven Instanzen dessen, was ich erkennen möchte, und einen mit unbeschrifteten Instanzen. Welche Methoden kann ich verwenden?

Angenommen, wir möchten die Erkennung von Spam-E-Mails anhand einiger strukturierter E-Mail-Merkmale verstehen. Wir haben einen Datensatz mit 10000 Spam-E-Mails und einen Datensatz mit 100000 E-Mails, für die wir nicht wissen, ob es sich um Spam handelt oder nicht.

Wie können wir dieses Problem angehen (ohne die unbeschrifteten Daten manuell zu kennzeichnen)?

Was können wir tun, wenn wir zusätzliche Informationen über den Anteil von Spam in den unbeschrifteten Daten haben (dh wenn wir schätzen, dass zwischen 20 und 40% der 100000 unbeschrifteten E-Mails Spam sind)?

nassimhddd
quelle
1
Dem Beitrag sollten die Tags semi-überwacht und pu-learning hinzugefügt werden. Diese Tags existieren noch nicht und ich kann sie derzeit nicht erstellen.
DaL
@DanLevin Ja, [Tag: Semi-Supervised-Learning] macht Sinn. Hinzugefügt :) Ich bin mir beim Pu-Learning-Teil nicht sicher (zumindest bin ich mir dessen nicht bewusst), also kann es jemand anderes tun!
Dawny33
1
PU-Lernen ist ein spezieller Fall von halbüberwachtem Lernen. Es ist weniger häufig (7K-Ergebnisse bei Google) als halbüberwacht (298K-Ergebnisse bei Google), dass diese Frage PU ist (der beschriftete Datensatz ist nur positiv). Während das Thema in der Akademie diskutiert wird (z. B. cs.uic.edu/~liub/NSF/PSC-IIS-0307239.html ), ist es möglich, dass diese Frage für eine Weile mit diesem Tag allein bleibt.
DaL

Antworten:

7

Mein Vorschlag wäre, zu versuchen, eine Art Clustering auf Ihren unbeschrifteten Daten aufzubauen, das einem beschrifteten Datensatz etwas nahe kommt. Die Begründung ist mehr oder weniger wie folgt:

  • Sie haben einen Feature-Vektor zur Darstellung Ihrer Dokumente
  • Basierend auf diesem Feature-Vektor können Sie eine Reihe verschiedener Cluster erstellen, entweder mit Fuzzy-, Rough- oder klassenbasierten Clustering-Methoden
  • Wenn Sie wissen, wie ein positives Beispiel aussieht, können Sie schnell die allgemeine Ähnlichkeit eines Clusters mit Ihrem positiven Cluster bewerten
  • Da Sie wissen, dass es eigentlich nur zwei Cluster geben sollte, können Sie die Hyperparameter Ihrer Clustering-Methode so anpassen, dass die beiden oben genannten Metriken immer näher an der Zufriedenheit liegen
  • Mit den beiden Clustern haben Sie wahrscheinlich eine enge Annäherung an einen beschrifteten Datensatz, den Sie dann als eine Art Silberstandardkorpus verwenden können, um Ihr Modell tatsächlich zu trainieren

Ich hoffe, das macht Sinn, wenn Sie speziell nach Clustering-Algorithmen suchen. Einige, die mir persönlich gefallen und die in diesem Szenario gut sein könnten, sind FLAME und tsne . Wenn Sie sich alternativ die spektakuläre Gensim- Bibliothek in Python ansehen , gelangen Sie weit in Richtung des gewünschten Clusters.

Hoffe das hilft und macht Sinn, hinterlasse einen Kommentar wenn du irgendwelche Fragen hast.

indico
quelle
Danke für deine Antwort. Verstehe ich richtig: Ihr Ausgangspunkt ist das Zusammenführen der beiden Datensätze?
Nassimhddd
@ cafe876 Das ist sicherlich eine Möglichkeit, um zu beginnen und dann zu versuchen, im Grunde ein Clustering neu zu erstellen, das dem Original sehr nahe kommt.
Indico
3

Ihr Problem gehört zum Rahmen des PU-Lernens (nur positive, viele unbeschriftete).

Es liegt auch in der Nähe der allgemeineren Rahmenbedingungen des halbüberwachten Lernens (wenige positive und negative, viele unbeschriftete).

Es gibt viele Umfragepapiere, die Sie auf dem Feld nachschlagen können.

Eine klassische Methode auf diesem Gebiet, die wie in Ihrem Fall auch auf Spam getestet wurde, ist das Co-Training. Im Co-Training bauen Sie zwei unabhängige Lernende auf (z. B. einen basierend auf dem E-Mail-Inhalt und einen basierend auf dem Versandschema) und verwenden die Ergebnisse von einem der anderen zu trainieren und umgekehrt.

DaL
quelle
2

Trainieren Sie 2 generative Modelle, eines für jeden Datensatz (nur Spam, Spam plus Ham), mit denen Sie die Wahrscheinlichkeit erhalten, dass ein Datenpunkt aus derselben Wahrscheinlichkeitsverteilung der Trainingsdaten gezogen wird. Weisen Sie E-Mails als Spam oder Ham zu, basierend darauf, welches Modell Ihnen die höchste Wahrscheinlichkeit gibt, dass das Dokument aus den Trainingsdaten stammt, die zum Trainieren verwendet wurden. Beispielhafte generative Modelle sind RBM-Autoencoder (in diesem Fall hat das Modell den niedrigsten Rekonstruktionsfehler). Es gibt wahrscheinlich auch einige Bayes'sche generative Modelle, die einem Datenpunkt basierend auf einigen Trainingsdaten eine Wahrscheinlichkeit zuweisen.

Die beste Option wäre jedoch, sich Zeit zu nehmen, um einen zweiten Datensatz zu kuratieren, der nur Schinken enthält. Dadurch erhalten Sie eine höhere Klassifizierungsgenauigkeit. Unter der Annahme eines geringeren Anteils von Spam an Ham-E-Mails sollte dies nicht zu schwierig sein. Sie können sogar Mechanical Turk verwenden, wenn Ihnen Zeit oder Ressourcen fehlen (oder Praktikanten / Absolventen oder andere billige Arbeitskräfte).

Simon
quelle
Danke für deine Antwort. Es ist ein großartiges Beispiel dafür, was generative Modelle können, was diskriminative Modelle nicht können.
Nassimhddd