SelfTrainingClassifier#

class sklearn.semi_supervised.SelfTrainingClassifier(estimator=None, threshold=0.75, criterion='threshold', k_best=10, max_iter=10, verbose=False)[Quelle]#

Self-training Klassifikator.

Dieser Meta-Estimator ermöglicht es einem gegebenen überwachten Klassifikator, als semi-überwacht zu fungieren, indem er von unbeschrifteten Daten lernt. Dies geschieht durch iterative Vorhersage von Pseudolabels für die unbeschrifteten Daten und deren Hinzufügung zum Trainingsdatensatz.

Der Klassifikator wird so lange iterieren, bis entweder `max_iter` erreicht ist oder in der vorherigen Iteration keine Pseudolabels zum Trainingsdatensatz hinzugefügt wurden.

Lesen Sie mehr im Benutzerhandbuch.

Parameter:
estimatorEstimator-Objekt

Ein Estimator-Objekt, das `fit` und `predict_proba` implementiert. Der Aufruf der `fit`-Methode passt eine Kopie des übergebenen Estimators an, die im Attribut `estimator_` gespeichert wird.

Hinzugefügt in Version 1.6: `estimator` wurde hinzugefügt, um `base_estimator` zu ersetzen.

thresholdfloat, default=0.75

Die Entscheidungsschwelle für die Verwendung mit `criterion='threshold'`. Sollte im Bereich [0, 1) liegen. Bei Verwendung des Kriteriums `'threshold'` sollte ein gut kalibrierter Klassifikator verwendet werden.

criterion{‘threshold’, ‘k_best’}, default=’threshold’

Das Auswahlkriterium, das verwendet wird, um auszuwählen, welche Labels zum Trainingsdatensatz hinzugefügt werden sollen. Wenn `'threshold'`, werden Pseudolabels mit Vorhersagewahrscheinlichkeiten über `threshold` zum Datensatz hinzugefügt. Wenn `'k_best'`, werden die `k_best` Pseudolabels mit den höchsten Vorhersagewahrscheinlichkeiten zum Datensatz hinzugefügt. Bei Verwendung des Kriteriums `'threshold'` sollte ein gut kalibrierter Klassifikator verwendet werden.

k_bestint, default=10

Die Anzahl der zu jeder Iteration hinzuzufügenden Stichproben. Wird nur verwendet, wenn `criterion='k_best'`.

max_iterint oder None, default=10

Maximale Anzahl zulässiger Iterationen. Sollte größer oder gleich 0 sein. Wenn es `None` ist, wird der Klassifikator weiterhin Labels vorhersagen, bis keine neuen Pseudolabels hinzugefügt werden oder alle unbeschrifteten Stichproben beschriftet wurden.

verbosebool, default=False

Aktiviert die ausführliche Ausgabe.

Attribute:
estimator_estimator object

Der angepasste Estimator.

classes_ndarray oder list von ndarray der Form (n_classes,)

Klassenlabels für jede Ausgabe. (Übernommen vom trainierten `estimator_`).

transduction_ndarray der Form (n_samples,)

Die Labels, die für die endgültige Anpassung des Klassifikators verwendet wurden, einschließlich der während der Anpassung hinzugefügten Pseudolabels.

labeled_iter_ndarray der Form (n_samples,)

Die Iteration, in der jede Stichprobe beschriftet wurde. Wenn eine Stichprobe die Iteration 0 hat, wurde die Stichprobe bereits im ursprünglichen Datensatz beschriftet. Wenn eine Stichprobe die Iteration -1 hat, wurde die Stichprobe in keiner Iteration beschriftet.

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

Die Anzahl der Runden des Selbsttrainings, d.h. die Anzahl der Male, die der Basis-Estimator auf neu beschrifteten Varianten des Trainingsdatensatzes angepasst wird.

termination_condition_{‘max_iter’, ‘no_change’, ‘all_labeled’}

Der Grund, warum die Anpassung gestoppt wurde.

  • 'max_iter': `n_iter_` erreichte `max_iter`.

  • 'no_change': Es wurden keine neuen Labels vorhergesagt.

  • 'all_labeled': Alle unbeschrifteten Stichproben wurden vor Erreichen von `max_iter` beschriftet.

Siehe auch

LabelPropagation

Label-Propagation-Klassifikator.

LabelSpreading

Label-Spreading-Modell für semi-überwachtes Lernen.

Referenzen

David Yarowsky. 1995. Unsupervised word sense disambiguation rivaling supervised methods. In Proceedings of the 33rd annual meeting on Association for Computational Linguistics (ACL ‘95). Association for Computational Linguistics, Stroudsburg, PA, USA, 189-196.

Beispiele

>>> import numpy as np
>>> from sklearn import datasets
>>> from sklearn.semi_supervised import SelfTrainingClassifier
>>> from sklearn.svm import SVC
>>> rng = np.random.RandomState(42)
>>> iris = datasets.load_iris()
>>> random_unlabeled_points = rng.rand(iris.target.shape[0]) < 0.3
>>> iris.target[random_unlabeled_points] = -1
>>> svc = SVC(probability=True, gamma="auto")
>>> self_training_model = SelfTrainingClassifier(svc)
>>> self_training_model.fit(iris.data, iris.target)
SelfTrainingClassifier(...)
decision_function(X, **params)[Quelle]#

Ruft die Entscheidungsfunktion des `estimator` auf.

Parameter:
X{array-like, sparse matrix} der Form (n_samples, n_features)

Array, das die Daten darstellt.

**paramsDict von str -> Objekt

Parameter, die an die `decision_function`-Methode des zugrunde liegenden Estimators übergeben werden.

Hinzugefügt in Version 1.6: Nur verfügbar, wenn enable_metadata_routing=True, was durch Setzen von sklearn.set_config(enable_metadata_routing=True) erfolgen kann. Siehe Metadaten-Routing Benutzerhandbuch für weitere Details.

Gibt zurück:
yndarray der Form (n_samples, n_features)

Ergebnis der Entscheidungsfunktion des `estimator`.

fit(X, y, **params)[Quelle]#

Passt den Selbsttrainings-Klassifikator mithilfe von `X` und `y` als Trainingsdaten an.

Parameter:
X{array-like, sparse matrix} der Form (n_samples, n_features)

Array, das die Daten darstellt.

y{array-like, sparse matrix} der Form (n_samples,)

Array, das die Labels darstellt. Unbeschriftete Stichproben sollten das Label -1 haben.

**paramsdict

Parameter, die an die zugrunde liegenden Estimator übergeben werden.

Hinzugefügt in Version 1.6: Nur verfügbar, wenn enable_metadata_routing=True, was durch Setzen von sklearn.set_config(enable_metadata_routing=True) erfolgen kann. Siehe Metadaten-Routing Benutzerhandbuch für weitere Details.

Gibt zurück:
selfobject

Angepasster Schätzer.

get_metadata_routing()[Quelle]#

Holt das Metadaten-Routing dieses Objekts.

Bitte prüfen Sie im Benutzerhandbuch, wie der Routing-Mechanismus funktioniert.

Hinzugefügt in Version 1.6.

Gibt zurück:
routingMetadataRouter

Ein MetadataRouter, der die Routing-Informationen kapselt.

get_params(deep=True)[Quelle]#

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, **params)[Quelle]#

Sagt die Klassen von `X` voraus.

Parameter:
X{array-like, sparse matrix} der Form (n_samples, n_features)

Array, das die Daten darstellt.

**paramsDict von str -> Objekt

Parameter, die an die `predict`-Methode des zugrunde liegenden Estimators übergeben werden.

Hinzugefügt in Version 1.6: Nur verfügbar, wenn enable_metadata_routing=True, was durch Setzen von sklearn.set_config(enable_metadata_routing=True) erfolgen kann. Siehe Metadaten-Routing Benutzerhandbuch für weitere Details.

Gibt zurück:
yndarray der Form (n_samples,)

Array mit vorhergesagten Labels.

predict_log_proba(X, **params)[Quelle]#

Sagt die Log-Wahrscheinlichkeiten für jedes mögliche Ergebnis voraus.

Parameter:
X{array-like, sparse matrix} der Form (n_samples, n_features)

Array, das die Daten darstellt.

**paramsDict von str -> Objekt

Parameter, die an die `predict_log_proba`-Methode des zugrunde liegenden Estimators übergeben werden.

Hinzugefügt in Version 1.6: Nur verfügbar, wenn enable_metadata_routing=True, was durch Setzen von sklearn.set_config(enable_metadata_routing=True) erfolgen kann. Siehe Metadaten-Routing Benutzerhandbuch für weitere Details.

Gibt zurück:
yndarray der Form (n_samples, n_features)

Array mit Log-Vorhersagewahrscheinlichkeiten.

predict_proba(X, **params)[Quelle]#

Vorhersage der Wahrscheinlichkeit für jedes mögliche Ergebnis.

Parameter:
X{array-like, sparse matrix} der Form (n_samples, n_features)

Array, das die Daten darstellt.

**paramsDict von str -> Objekt

Parameter, die an die `predict_proba`-Methode des zugrunde liegenden Estimators übergeben werden.

Hinzugefügt in Version 1.6: Nur verfügbar, wenn enable_metadata_routing=True, was durch Setzen von sklearn.set_config(enable_metadata_routing=True) erfolgen kann. Siehe Metadaten-Routing Benutzerhandbuch für weitere Details.

Gibt zurück:
yndarray der Form (n_samples, n_features)

Array mit Vorhersagewahrscheinlichkeiten.

score(X, y, **params)[Quelle]#

Ruft die Score-Methode des `estimator` auf.

Parameter:
X{array-like, sparse matrix} der Form (n_samples, n_features)

Array, das die Daten darstellt.

yarray-like von Form (n_samples,)

Array, das die Labels darstellt.

**paramsDict von str -> Objekt

Parameter, die an die `score`-Methode des zugrunde liegenden Estimators übergeben werden.

Hinzugefügt in Version 1.6: Nur verfügbar, wenn enable_metadata_routing=True, was durch Setzen von sklearn.set_config(enable_metadata_routing=True) erfolgen kann. Siehe Metadaten-Routing Benutzerhandbuch für weitere Details.

Gibt zurück:
scorefloat

Ergebnis des Aufrufs von score auf dem `estimator`.

set_params(**params)[Quelle]#

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.