check_scoring#

sklearn.metrics.check_scoring(estimator=None, scoring=None, *, allow_none=False, raise_exc=True)[Quelle]#

Bestimmt den Scorer anhand von Benutzeroptionen.

Ein TypeError wird ausgelöst, wenn der Estimator nicht bewertet werden kann.

Parameter:
estimatorestimator-Objekt, das ‘fit’ implementiert, oder None, Standard=None

Das zu verwendende Objekt zum Anpassen der Daten. Wenn None, dann kann diese Funktion je nach allow_none einen Fehler auslösen.

scoringstr, aufrufbar, Liste, Tupel, Menge oder Dict, Standard=None

Zu verwendender Scorer. Wenn scoring einen einzelnen Score darstellt, kann man

Wenn scoring mehrere Scores darstellt, kann man

  • eine Liste, ein Tupel oder eine Menge von eindeutigen Strings verwenden;

  • eine aufrufbare Funktion, die ein Dictionary zurückgibt, wobei die Schlüssel die Metriknamen und die Werte die Metrikskorer sind;

  • ein Dictionary mit Metriknamen als Schlüssel und aufrufbaren Funktionen als Werte. Die aufrufbaren Funktionen müssen die Signatur callable(estimator, X, y) haben.

allow_nonebool, Standard=False

Ob None zurückgegeben oder ein Fehler ausgelöst werden soll, wenn kein scoring angegeben ist und der Estimator keine score-Methode hat.

raise_excbool, Standard=True

Ob eine Ausnahme ausgelöst werden soll (wenn ein Teil der Scorer bei multimetrischer Bewertung fehlschlägt) oder ob ein Fehlercode zurückgegeben werden soll.

  • Wenn auf True gesetzt, wird die Ausnahme des fehlschlagenden Scorers ausgelöst.

  • Wenn auf False gesetzt, wird eine formatierte Zeichenkette der Ausnahmedetails als Ergebnis des/der fehlschlagenden Scorer(s) übergeben.

Dies gilt, wenn scoring eine Liste, ein Tupel, eine Menge oder ein Dictionary ist. Wird ignoriert, wenn scoring ein String oder eine aufrufbare Funktion ist.

Hinzugefügt in Version 1.6.

Gibt zurück:
scoringcallable

Ein Scorer-Objekt / Funktion mit der Signatur scorer(estimator, X, y).

Beispiele

>>> from sklearn.datasets import load_iris
>>> from sklearn.metrics import check_scoring
>>> from sklearn.tree import DecisionTreeClassifier
>>> X, y = load_iris(return_X_y=True)
>>> classifier = DecisionTreeClassifier(max_depth=2).fit(X, y)
>>> scorer = check_scoring(classifier, scoring='accuracy')
>>> scorer(classifier, X, y)
0.96...
>>> from sklearn.metrics import make_scorer, accuracy_score, mean_squared_log_error
>>> X, y = load_iris(return_X_y=True)
>>> y *= -1
>>> clf = DecisionTreeClassifier().fit(X, y)
>>> scoring = {
...     "accuracy": make_scorer(accuracy_score),
...     "mean_squared_log_error": make_scorer(mean_squared_log_error),
... }
>>> scoring_call = check_scoring(estimator=clf, scoring=scoring, raise_exc=False)
>>> scores = scoring_call(clf, X, y)
>>> scores
{'accuracy': 1.0, 'mean_squared_log_error': 'Traceback ...'}