FixedThresholdClassifier#

class sklearn.model_selection.FixedThresholdClassifier(estimator, *, threshold='auto', pos_label=None, response_method='auto')[source]#

Binärer Klassifikator, der die Entscheidungsschwelle manuell festlegt.

Dieser Klassifikator ermöglicht die Änderung des standardmäßigen Entscheidungsschwellenwerts, der zur Umwandlung von Wahrscheinlichkeitsschätzungen (d. h. Ausgabe von predict_proba) oder Entscheidungswerten (d. h. Ausgabe von decision_function) in eine Klassenbezeichnung verwendet wird.

Hier wird der Schwellenwert nicht optimiert, sondern auf einen konstanten Wert gesetzt.

Lesen Sie mehr im Benutzerhandbuch.

Hinzugefügt in Version 1.5.

Parameter:
estimatorSchätzer-Instanz

Der binäre Klassifikator, egal ob trainiert oder nicht, für den wir den Entscheidungsschwellenwert während predict optimieren möchten.

threshold{„auto“} oder float, Standard=”auto”

Der zu verwendende Entscheidungsschwellenwert bei der Umwandlung von Wahrscheinlichkeitsschätzungen (d. h. Ausgabe von predict_proba) oder Entscheidungswerten (d. h. Ausgabe von decision_function) in eine Klassenbezeichnung. Wenn "auto", wird der Schwellenwert auf 0,5 gesetzt, wenn predict_proba als response_method verwendet wird, andernfalls wird er auf 0 gesetzt (d. h. der Standard-Schwellenwert für decision_function).

pos_labelint, float, bool oder str, Standardwert=None

Die Bezeichnung der positiven Klasse. Wird zur Verarbeitung der Ausgabe der Methode response_method verwendet. Wenn pos_label=None, wird, wenn y_true in {-1, 1} oder {0, 1} ist, pos_label auf 1 gesetzt, andernfalls wird ein Fehler ausgelöst.

response_method{„auto“, „decision_function“, „predict_proba“}, Standard=”auto”

Methoden des Klassifikators estimator, die der Entscheidungsmethode entsprechen, für die wir einen Schwellenwert finden möchten. Sie kann sein

  • Wenn "auto", wird versucht, "predict_proba" oder "decision_function" in dieser Reihenfolge aufzurufen.

  • Andernfalls eine von "predict_proba" oder "decision_function". Wenn die Methode nicht vom Klassifikator implementiert wird, wird ein Fehler ausgelöst.

Attribute:
estimator_Instanz des Schätzers

Der trainierte Klassifikator, der bei der Vorhersage verwendet wird.

classes_ndarray der Form (n_classes,)

Klassenbezeichnungen.

n_features_in_int

Anzahl der während fit gesehenen Merkmale. Nur definiert, wenn der zugrunde liegende Schätzer ein solches Attribut nach dem Training bereitstellt.

feature_names_in_ndarray mit Form (n_features_in_,)

Namen von Features, die während fit gesehen wurden. Nur definiert, wenn der zugrunde liegende Estimator ein solches Attribut nach dem Anpassen exponiert.

Siehe auch

sklearn.model_selection.TunedThresholdClassifierCV

Klassifikator, der den Entscheidungsschwellenwert basierend auf einigen Metriken und unter Verwendung von Kreuzvalidierung nachträglich abstimmt.

sklearn.calibration.CalibratedClassifierCV

Schätzer, der Wahrscheinlichkeiten kalibriert.

Beispiele

>>> from sklearn.datasets import make_classification
>>> from sklearn.linear_model import LogisticRegression
>>> from sklearn.metrics import confusion_matrix
>>> from sklearn.model_selection import FixedThresholdClassifier, train_test_split
>>> X, y = make_classification(
...     n_samples=1_000, weights=[0.9, 0.1], class_sep=0.8, random_state=42
... )
>>> X_train, X_test, y_train, y_test = train_test_split(
...     X, y, stratify=y, random_state=42
... )
>>> classifier = LogisticRegression(random_state=0).fit(X_train, y_train)
>>> print(confusion_matrix(y_test, classifier.predict(X_test)))
[[217   7]
 [ 19   7]]
>>> classifier_other_threshold = FixedThresholdClassifier(
...     classifier, threshold=0.1, response_method="predict_proba"
... ).fit(X_train, y_train)
>>> print(confusion_matrix(y_test, classifier_other_threshold.predict(X_test)))
[[184  40]
 [  6  20]]
decision_function(X)[source]#

Entscheidungsfunktion für Stichproben in X unter Verwendung des trainierten Schätzers.

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

Trainingsvektoren, wobei n_samples die Anzahl der Stichproben und n_features die Anzahl der Merkmale ist.

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

Die vom trainierten Schätzer berechnete Entscheidungsfunktion.

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

Trainiere den Klassifikator.

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

Trainingsdaten.

yarray-like von Form (n_samples,)

Zielwerte.

**paramsdict

Parameter, die an die fit-Methode des zugrunde liegenden Klassifikators übergeben werden.

Gibt zurück:
selfobject

Gibt eine Instanz von self 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:
routingMetadataRouter

Ein MetadataRouter, der die 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]#

Sagen Sie das Ziel neuer Stichproben voraus.

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

Die Stichproben, wie sie von estimator.predict akzeptiert werden.

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

Die vorhergesagte Klasse.

predict_log_proba(X)[source]#

Logarithmus der Klassenwahrscheinlichkeiten für X unter Verwendung des trainierten Schätzers vorhersagen.

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

Trainingsvektoren, wobei n_samples die Anzahl der Stichproben und n_features die Anzahl der Merkmale ist.

Gibt zurück:
log_probabilitiesndarray der Form (n_samples, n_classes)

Die Logarithmen der Klassenwahrscheinlichkeiten der Eingabestichproben.

predict_proba(X)[source]#

Klassenwahrscheinlichkeiten für X unter Verwendung des trainierten Schätzers vorhersagen.

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

Trainingsvektoren, wobei n_samples die Anzahl der Stichproben und n_features die Anzahl der Merkmale ist.

Gibt zurück:
probabilitiesndarray der Form (n_samples, n_classes)

Die Klassenwahrscheinlichkeiten der Eingabemuster.

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$') FixedThresholdClassifier[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.