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. None bedeutet 1, es sei denn, Sie befinden sich in einem joblib.parallel_backend-Kontext. -1 bedeutet 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 X Merkmalnamen hat, die alle Zeichenketten sind.

Hinzugefügt in Version 1.0.

n_iter_int

Anzahl der durchgeführten Iterationen.

Siehe auch

LabelPropagation

Unregularisierte Graph-basierte halbüberwachte Lernverfahren.

Referenzen

Dengyong Zhou, Olivier Bousquet, Thomas Navin Lal, Jason Weston, Bernhard Schoelkopf. Learning with local and global consistency (2004)

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_samples die Anzahl der Stichproben und n_features die 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 auf y.

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=True aktiviert ist (siehe sklearn.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, an score übergeben. Die Anforderung wird ignoriert, wenn keine Metadaten vorhanden sind.

  • False: Metadaten werden nicht angefordert und der Meta-Schätzer übergibt sie nicht an score.

  • 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_weight in score.

Gibt zurück:
selfobject

Das aktualisierte Objekt.