Beschreibung
Semi-überwachtes Lernen befasst sich mit Situationen, in denen Trainingsdatensätze eine Mischung aus beschrifteten und unbeschrifteten Stichproben enthalten. Das Modul `sklearn.semi_supervised` von Scikit-learn bietet Schätzer, die darauf ausgelegt sind, diese unbeschrifteten Daten zu nutzen, wodurch die Datenverteilung besser verstanden und die Generalisierung auf neue, ungesehene Stichproben verbessert wird. Diese Techniken sind besonders effektiv, wenn beschriftete Daten knapp, aber unbeschriftete Daten reichlich vorhanden sind.
Es ist wichtig zu beachten, dass semi-überwachte Algorithmen auf Annahmen über die Datenverteilung angewiesen sind, um Leistungssteigerungen zu erzielen. Das Modul bietet zwei Hauptansätze: Self Training und Label Propagation.
Self Training, basierend auf Yarowskys Algorithmus, ermöglicht es jedem überwachten Klassifikator, der `predict_proba` unterstützt, semi-überwacht zu funktionieren. Der `SelfTrainingClassifier` sagt iterativ Labels für unbeschriftete Stichproben voraus und fügt eine Teilmenge davon dem beschrifteten Datensatz hinzu. Die Auswahl dieser Stichproben kann auf Vorhersagewahrscheinlichkeiten basieren, wobei ein Schwellenwert verwendet oder die k besten Stichproben ausgewählt werden. Dieser Prozess wird fortgesetzt, bis alle Stichproben beschriftet sind oder in einer Iteration keine neuen Stichproben ausgewählt werden, wobei die maximale Anzahl von Iterationen über `max_iter` gesteuert werden kann.
Label Propagation umfasst mehrere semi-überwachte Graphen-Inferenzalgorithmen, darunter `LabelPropagation` und `LabelSpreading`. Diese Modelle konstruieren einen Ähnlichkeitsgraphen über alle Eingabedatenpunkte. Die Kernidee ist, dass die Struktur unbeschrifteter Daten mit Klassenstrukturen übereinstimmt, was es ermöglicht, Klassenlabels auf unbeschriftete Beobachtungen zu übertragen. `LabelPropagation` führt ein hartes Clamping der Eingabelabels durch, während `LabelSpreading` einen robusteren Ansatz bietet, indem es eine Verlustfunktion mit Regularisierungseigenschaften minimiert, was es widerstandsfähiger gegen Rauschen macht. Beide Modelle unterstützen integrierte Kernel-Methoden wie RBF und KNN, die Skalierbarkeit und Leistung beeinflussen. Der RBF-Kernel erstellt einen dichten Graphen, der potenziell speicherintensiv ist, während der KNN-Kernel einen spärlichen Graphen erzeugt, der eine bessere Speichereffizienz und reduzierte Laufzeiten bietet.
Diese Methoden sind wertvoll für Aufgaben, bei denen die manuelle Beschriftung kostspielig oder zeitaufwendig ist, und ermöglichen die Erstellung robusterer und genauerer Modelle durch Nutzung des Reichtums verfügbarer unbeschrifteter Daten. Die Wahl zwischen Self Training und Label Propagation hängt von den spezifischen Datensatzmerkmalen und dem gewünschten Ansatz zur Nutzung unbeschrifteter Informationen ab.
Scikit-learn Semi-supervised Learning im Überblick
Unterstützt semi-überwachte Klassifizierung
Nutzt unbeschriftete Daten zur Verbesserung der Generalisierung
Enthält den Self Training-Algorithmus
Unterstützt Label Propagation und Label Spreading
Konstruiert Ähnlichkeitsgraphen für die Label-Propagation
Bietet RBF- und KNN-Kernel-Methoden
Ermöglicht die Steuerung des Label-Clamping bei der Propagation
Iterativer Lernprozess für Self Training
Anpassbar an verschiedene überwachte Klassifikatoren für Self Training
Verarbeitet Szenarien mit begrenzten beschrifteten Daten
Verbessert das Verständnis der zugrunde liegenden Datenverteilung
Erste Schritte mit Scikit-learn Semi-supervised Learning
Modellzugriff: Importieren Sie relevante Schätzer aus `sklearn.semi_supervised`.
Daten vorbereiten: Organisieren Sie beschriftete und unbeschriftete Stichproben.
Schätzer konfigurieren: Instanziieren Sie `SelfTrainingClassifier` oder `LabelPropagation`/`LabelSpreading` mit den gewünschten Parametern.
Modell trainieren: Passen Sie den gewählten Schätzer an den vorbereiteten Datensatz an.
Labels vorhersagen: Verwenden Sie das trainierte Modell, um Labels für neue Daten vorherzusagen.
Leistung bewerten: Bewerten Sie die Modellgenauigkeit und die Generalisierungsfähigkeiten.
Scikit-learn Semi-supervised Learning's Anwendungsfälle
- Textklassifizierung
- Bilderkennung
- Betrugserkennung
- Kundensegmentierung
- Medizinische Diagnose
- Spracherkennung




