Zunächst ist, wie @Marc Claesen bereits erklärte, die halbüberwachte Klassifizierung eine der Techniken, um die Situation zu bewältigen, in der Sie wissen, dass die Klassen wirklich unterschiedlich sind, aber nicht sicher sind, zu welcher Klasse der Fall tatsächlich gehört.
Es gibt jedoch auch verwandte Situationen, in denen die "Realität" nicht so klar ist und die Annahme, dass es wirklich unterschiedliche Klassen gibt, nicht erfüllt ist: Grenzfälle können eine "physische" Realität sein (siehe unten für Artikel über eine Anwendung) wo wir eine solche Bedingung erfüllt haben).
Es gibt eine entscheidende Annahme für halbüberwachte Klassifikatoren , die Sie sicherstellen müssen, dass sie erfüllt wird: die Annahme, dass im Merkmalsraum Klassengrenzen mit einer geringen Stichprobendichte einhergehen . Dies wird als Clusterannahme bezeichnet.
Selbst wenn die Ihren Daten zugrunde liegende Realität unterschiedliche Klassen aufweist, weist Ihr Datensatz möglicherweise überproportional viele Grenzfälle auf: z. B. wenn Ihre Klassifizierungstechnik auf die Klassifizierung schwieriger Fälle abzielt, während die klaren und einfachen Fälle nicht von Interesse sind und Ihre Trainingsdaten dies bereits widerspiegeln Lage.
nur "bestimmte" Klassifikationen für das Training nehmen? Ich befürchte, dass es in diesem Fall zu weiteren Fehlklassifizierungen kommen wird, da "Grenzfälle" nicht abgedeckt sind.
Ich stimme Ihnen voll und ganz zu, dass das Ausschließen der Grenzfälle oft eine schlechte Idee ist: Wenn Sie alle schwierigen Fälle entfernen, erhalten Sie ein künstlich einfaches Problem. IMHO ist es noch schlimmer, dass das Ausschließen von Grenzfällen normalerweise nicht mit dem Modelltraining aufhört, aber die Grenzfälle werden auch vom Testen ausgeschlossen, sodass das Modell nur mit einfachen Fällen getestet wird. Damit würden Sie nicht einmal merken, dass das Modell mit Grenzfällen nicht gut funktioniert.
Hier sind zwei Artikel, die wir über ein Problem geschrieben haben, das sich von Ihrem darin unterscheidet, dass in unserer Anwendung auch die Realität "gemischte" Klassen haben kann (eine allgemeinere Version Ihres Problems: Unsicherheit bei Referenzetiketten wird ebenfalls behandelt).
- Die Applikation: Hirntumor-Diagnostik. Wir haben die logistische Regression verwendet. Eine halbüberwachte Modellierung war nicht angemessen, da wir an den Klassengrenzen keine niedrige Probendichte annehmen können.
C. Beleites, K. Geiger, M. Kirsch, SB Sobottka, G. Schackert und R. Salzer: Raman-spektroskopische Einstufung von Astrozytomgeweben: Verwendung weicher Referenzinformationen, Anal. Bioanal. Chem., 400 (2011), 2801 & ndash; 2816.
- Theoriepapier, das einen allgemeinen Rahmen für die Messung der Leistung des Klassifikators für Grenzfälle ableitet.
C. Beleites, R. Salzer und V. Sergo:
Validierung von weichen Klassifizierungsmodellen unter Verwendung von
Teilklassenmitgliedschaften : Ein erweitertes Konzept von Sensitivity & Co., das auf die Einstufung von Astrocytoma Tissues Chemom angewendet wird. Intell. Labor. Syst., 122 (2013), 12-22.
Die Links führen zu einer Projektseite eines R-Pakets, das ich für die Leistungsberechnungen entwickelt habe. Es gibt weitere Links sowohl zur offiziellen Webseite als auch zu meinen Manuskripten der Papiere. Obwohl ich Weka bisher noch nicht verwendet habe, verstehe ich, dass eine Schnittstelle zu R verfügbar ist .
praktische Überlegungen:
- Der Copy-and-Label-Different-Ansatz ist zwar unkompliziert, funktioniert jedoch nicht mit allen Klassifizierern und Implementierungen in der Praxis. Zum Beispiel gibt es bei AFAIK keine Möglichkeit, der
libSVM
Abstimmung durch Kreuzvalidierung mitzuteilen, dass alle Kopien jedes Datenpunkts in derselben Kreuzvalidierungsfalte aufbewahrt werden müssen. Somit libSVM
würde eine Abstimmung wahrscheinlich ein massives Überanpassungsmodell ergeben.
- Auch für die logistische Regression stellte ich fest, dass viele Implementierungen die von mir benötigten Teilmitgliedschaftsbezeichnungen nicht zuließen.
- Die Implementierung, die ich für die obigen Arbeiten verwendet habe, ist eigentlich eine ANN ohne versteckte Schicht, die die Logistik als Sigmoidal Link-Funktion verwendet (
nnet::multinom
).