LabelSpreading#
- class sklearn.semi_supervised.LabelSpreading(kernel='rbf', *, gamma=20, n_neighbors=7, alpha=0.2, max_iter=30, tol=0.001, n_jobs=None)[source]#
LabelSpreading-Modell für semi-überwachtes Lernen.
Dieses Modell ähnelt dem grundlegenden Label Propagation Algorithmus, verwendet aber eine auf dem normalisierten Graphen-Laplace-Operator basierende Affinitätsmatrix und Soft Clamping über die Labels.
Lesen Sie mehr im Benutzerhandbuch.
- Parameter:
- kernel{‘knn’, ‘rbf’} oder aufrufbar, Standardwert=’rbf’
Zeichenkettenbezeichner für die zu verwendende Kernel-Funktion oder die Kernel-Funktion selbst. Nur die Zeichenketten ‘rbf’ und ‘knn’ sind gültige Eingaben. Die übergebene Funktion sollte zwei Eingaben der Form (n_samples, n_features) entgegennehmen und eine Gewichtsmatrix der Form (n_samples, n_samples) zurückgeben.
- gammafloat, Standardwert=20
Parameter für den rbf-Kernel.
- n_neighborsint, Standardwert=7
Parameter für den knn-Kernel, der eine strikt positive Ganzzahl ist.
- alphafloat, Standardwert=0.2
Clamping-Faktor. Ein Wert in (0, 1), der den relativen Anteil angibt, den eine Instanz von ihren Nachbarn übernimmt, im Gegensatz zu ihrem ursprünglichen Label. alpha=0 bedeutet, die ursprünglichen Label-Informationen beizubehalten; alpha=1 bedeutet, alle ursprünglichen Informationen zu ersetzen.
- max_iterint, Standardwert=30
Maximale Anzahl erlaubter Iterationen.
- tolfloat, Standard=1e-3
Konvergenztoleranz: Schwellenwert, um das System als stationär zu betrachten.
- n_jobsint, default=None
Die Anzahl der parallelen Jobs, die ausgeführt werden sollen.
Nonebedeutet 1, es sei denn, Sie befinden sich in einemjoblib.parallel_backend-Kontext.-1bedeutet die Verwendung aller Prozessoren. Siehe Glossar für weitere Details.
- Attribute:
- X_ndarray der Form (n_samples, n_features)
Eingabearray.
- classes_ndarray der Form (n_classes,)
Die verschiedenen Labels, die zur Klassifizierung von Instanzen verwendet werden.
- label_distributions_ndarray der Form (n_samples, n_classes)
Kategorische Verteilung für jedes Element.
- transduction_ndarray der Form (n_samples,)
Label, das jedem Element während fit zugewiesen wurde.
- n_features_in_int
Anzahl der während des fits gesehenen Merkmale.
Hinzugefügt in Version 0.24.
- feature_names_in_ndarray mit Form (
n_features_in_,) Namen der während fit gesehenen Merkmale. Nur definiert, wenn
XMerkmalnamen hat, die alle Zeichenketten sind.Hinzugefügt in Version 1.0.
- n_iter_int
Anzahl der durchgeführten Iterationen.
Siehe auch
LabelPropagationUnregularisierte Graph-basierte halbüberwachte Lernverfahren.
Referenzen
Beispiele
>>> import numpy as np >>> from sklearn import datasets >>> from sklearn.semi_supervised import LabelSpreading >>> label_prop_model = LabelSpreading() >>> iris = datasets.load_iris() >>> rng = np.random.RandomState(42) >>> random_unlabeled_points = rng.rand(len(iris.target)) < 0.3 >>> labels = np.copy(iris.target) >>> labels[random_unlabeled_points] = -1 >>> label_prop_model.fit(iris.data, labels) LabelSpreading(...)
- fit(X, y)[source]#
Trainiert ein halbüberwachtes Label Propagation-Modell mit X.
Die Eingabestichproben (beschriftet und unbeschriftet) werden durch die Matrix X bereitgestellt, und die Ziel-Labels werden durch die Matrix y bereitgestellt. Wir wenden konventionell das Label -1 auf unbeschriftete Stichproben in der Matrix y bei einer halbüberwachten Klassifizierung an.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Trainingsdaten, wobei
n_samplesdie Anzahl der Stichproben undn_featuresdie Anzahl der Merkmale ist.- yarray-like von Form (n_samples,)
Zielklassenwerte mit unbeschrifteten Punkten, die als -1 markiert sind. Alle unbeschrifteten Stichproben werden intern transduktiv Labels zugewiesen, die in
transduction_gespeichert sind.
- Gibt zurück:
- selfobject
Gibt die Instanz selbst zurück.
- get_metadata_routing()[source]#
Holt das Metadaten-Routing dieses Objekts.
Bitte prüfen Sie im Benutzerhandbuch, wie der Routing-Mechanismus funktioniert.
- Gibt zurück:
- routingMetadataRequest
Ein
MetadataRequest, der Routing-Informationen kapselt.
- get_params(deep=True)[source]#
Holt Parameter für diesen Schätzer.
- Parameter:
- deepbool, default=True
Wenn True, werden die Parameter für diesen Schätzer und die enthaltenen Unterobjekte, die Schätzer sind, zurückgegeben.
- Gibt zurück:
- paramsdict
Parameternamen, zugeordnet ihren Werten.
- predict(X)[source]#
Führt induktive Inferenz über das Modell durch.
- Parameter:
- Xarray-like der Form (n_samples, n_features)
Die Datenmatrix.
- Gibt zurück:
- yndarray der Form (n_samples,)
Vorhersagen für Eingabedaten.
- predict_proba(X)[source]#
Vorhersage der Wahrscheinlichkeit für jedes mögliche Ergebnis.
Berechnet die Wahrscheinlichkeitsschätzungen für jede einzelne Stichprobe in X und jede mögliche im Training gesehene Klasse (kategorische Verteilung).
- Parameter:
- Xarray-like der Form (n_samples, n_features)
Die Datenmatrix.
- Gibt zurück:
- probabilitiesndarray der Form (n_samples, n_classes)
Normalisierte Wahrscheinlichkeitsverteilungen über die Klassen-Labels.
- score(X, y, sample_weight=None)[source]#
Gibt die Genauigkeit für die bereitgestellten Daten und Bezeichnungen zurück.
Bei der Multi-Label-Klassifizierung ist dies die Subset-Genauigkeit, eine strenge Metrik, da für jede Stichprobe verlangt wird, dass jede Label-Menge korrekt vorhergesagt wird.
- Parameter:
- Xarray-like der Form (n_samples, n_features)
Teststichproben.
- yarray-like der Form (n_samples,) oder (n_samples, n_outputs)
Wahre Bezeichnungen für
X.- sample_weightarray-like der Form (n_samples,), Standardwert=None
Stichprobengewichte.
- Gibt zurück:
- scorefloat
Mittlere Genauigkeit von
self.predict(X)in Bezug aufy.
- set_params(**params)[source]#
Setzt die Parameter dieses Schätzers.
Die Methode funktioniert sowohl bei einfachen Schätzern als auch bei verschachtelten Objekten (wie
Pipeline). Letztere haben Parameter der Form<component>__<parameter>, so dass es möglich ist, jede Komponente eines verschachtelten Objekts zu aktualisieren.- Parameter:
- **paramsdict
Schätzer-Parameter.
- Gibt zurück:
- selfestimator instance
Schätzer-Instanz.
- set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') LabelSpreading[source]#
Konfiguriert, ob Metadaten für die
score-Methode angefordert werden sollen.Beachten Sie, dass diese Methode nur relevant ist, wenn dieser Schätzer als Unter-Schätzer innerhalb eines Meta-Schätzers verwendet wird und Metadaten-Routing mit
enable_metadata_routing=Trueaktiviert ist (siehesklearn.set_config). Bitte lesen Sie das Benutzerhandbuch, um zu erfahren, wie der Routing-Mechanismus funktioniert.Die Optionen für jeden Parameter sind
True: Metadaten werden angefordert und, falls vorhanden, anscoreübergeben. Die Anforderung wird ignoriert, wenn keine Metadaten vorhanden sind.False: Metadaten werden nicht angefordert und der Meta-Schätzer übergibt sie nicht anscore.None: Metadaten werden nicht angefordert und der Meta-Schätzer löst einen Fehler aus, wenn der Benutzer sie bereitstellt.str: Metadaten sollten mit diesem Alias an den Meta-Schätzer übergeben werden und nicht mit dem ursprünglichen Namen.
Der Standardwert (
sklearn.utils.metadata_routing.UNCHANGED) behält die bestehende Anforderung bei. Dies ermöglicht es Ihnen, die Anforderung für einige Parameter zu ändern und für andere nicht.Hinzugefügt in Version 1.3.
- Parameter:
- sample_weightstr, True, False, oder None, Standardwert=sklearn.utils.metadata_routing.UNCHANGED
Metadaten-Routing für den Parameter
sample_weightinscore.
- Gibt zurück:
- selfobject
Das aktualisierte Objekt.
Galeriebeispiele#
Label Propagation Kreise: Lernen einer komplexen Struktur
Semi-überwachte Klassifikation auf einem Textdatensatz
Entscheidungsgrenze semi-überwachter Klassifikatoren vs. SVM auf dem Iris-Datensatz