Nehmen wir der Einfachheit halber an, ich arbeite am klassischen Beispiel von Spam- / Nicht-Spam-E-Mails.
Ich habe 20000 E-Mails. Davon weiß ich, dass 2000 Spam sind, aber ich habe kein Beispiel für Nicht-Spam-E-Mails. Ich möchte vorhersagen, ob es sich bei den verbleibenden 18000 um Spam handelt oder nicht. Im Idealfall ist das gesuchte Ergebnis eine Wahrscheinlichkeit (oder ein p-Wert), dass es sich bei der E-Mail um Spam handelt.
Mit welchen Algorithmen kann ich in dieser Situation eine vernünftige Vorhersage treffen?
Im Moment denke ich an eine entfernungsbasierte Methode, die mir sagt, wie ähnlich meine E-Mail einer bekannten Spam-E-Mail ist. Welche Möglichkeiten habe ich?
Kann ich generell eine überwachte Lernmethode anwenden oder muss ich dafür negative Fälle in meinem Trainingsset haben? Beschränke ich mich auf unbeaufsichtigte Lernansätze? Was ist mit halbüberwachten Methoden?
quelle
Antworten:
Dies wird als Lernen aus positiven und unbeschrifteten Daten oder kurz PU-Lernen bezeichnet und ist eine aktive Nische des halbüberwachten Lernens.
Kurz gesagt, es ist wichtig, die unbeschrifteten Daten im Lernprozess zu verwenden, da sie gegenüber sogenannten Einzelklassifikatoren, die ausschließlich auf bekannte positive Ergebnisse trainiert werden, erheblich verbesserte Modelle liefern. Nicht beschriftete Daten können auf verschiedene Arten eingearbeitet werden, wobei die folgenden Ansätze vorherrschen:
Ich bin auf diesem Gebiet aktiv und empfehle, anstatt es hier für Sie zusammenzufassen, zwei meiner Arbeiten und die darin enthaltenen Referenzen zu lesen, um einen Überblick über die Domäne zu erhalten:
quelle
kernlab
oder umschließene1071
. Beachten Sie, dass sowohl SVM als auch RESVM eine Reihe von Hyperparametern aufweisen, die Sie optimieren müssen. Ich empfehle die Optunity- Bibliothek (mit einer R-Schnittstelle).Ich gehe davon aus, dass es in Ihren 18000 Fällen nicht so viele Spam-Fälle gibt. Um einen überwachten Lernansatz zu verwenden, müssen Ihre Daten mehr als eine Kategorie / Klasse enthalten. Da Sie wissen, dass 2000 Fälle Spam sind, können Sie die verbleibenden 18000 Fälle als "unbekannte Kategorie" kennzeichnen und ein überwachtes Lernmodell trainieren, um vorherzusagen, ob ein Fall in der Spam- oder der unbekannten Kategorie vorliegt. Überprüfen Sie dann die Genauigkeit Ihres Out-of-Sample-Modells, um festzustellen, wie gut das Modell zwischen den beiden Kategorien unterscheidet. Wenn es gut funktioniert, ist meine Annahme von wenigen Spam-Fällen in der Kategorie "Unbekannt" gerechtfertigt. Wenn die Leistung nicht gut ist, müssen Sie einen unbeaufsichtigten Lernenden (wie kmeans usw.) verwenden, um separate homogene Gruppen in Ihren Daten zu gruppieren und zu identifizieren. Identifizieren Sie anschließend, welche Cluster die meisten der 2000 Spam-E-Mails enthalten. und welche nicht und kennzeichnen sie als Spam bzw. Nicht-Spam. Als nächstes können Sie mit der Modellierung unter Verwendung eines betreuten Lerners fortfahren, wie ich zuvor beschrieben habe.
quelle
Worüber das OP spricht, ist eine Ein-Klassen-Klassifizierungsaufgabe, die sehr herausfordernd ist.
Es gibt viele Artikel zu dieser Aufgabe in verschiedenen Forschungsbereichen. Ich habe auch ein effizientes Überprüfungsschema für die Eigenautorenschaft geschrieben, das auf dem Lernen von Ensembles basiert . Es ist sehr einfach, es anzupassen, um Spam / nicht Spam, sondern Autoren zu klassifizieren. Probieren Sie es aus und lassen Sie es mich wissen, wenn Sie weitere Details benötigen ...
quelle