check_scoring#

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

從使用者選項決定評分器。

如果估計器無法評分,則會拋出 TypeError。

參數:
estimator實現 ‘fit’ 方法的估計器物件或 None,預設為 None

用於擬合資料的物件。 如果是 None,則此函數可能會根據 allow_none 產生錯誤。

scoring字串、可呼叫物件、列表、元組、集合或字典,預設為 None

要使用的評分器。 如果 scoring 代表單一分數,則可以使用

如果 scoring 代表多個分數,則可以使用

  • 唯一字串的列表、元組或集合;

  • 返回字典的可呼叫物件,其中鍵是度量名稱,值是度量評分器;

  • 以度量名稱為鍵,可呼叫物件為值的字典。可呼叫物件需要具有 callable(estimator, X, y) 簽名。

如果為 None,則使用提供的估計器物件的 score 方法。

allow_none布林值,預設為 False

如果未指定 scoring 且估計器沒有 score 方法,是否返回 None 或引發錯誤。

raise_exc布林值,預設為 True

是否要引發例外 (如果多度量評分中的評分器子集失敗) 或返回錯誤代碼。

  • 如果設定為 True,則會引發失敗的評分器的例外。

  • 如果設定為 False,則會將格式化的例外詳細字串作為失敗的評分器的結果傳遞。

如果 scoring 為列表、元組、集合或字典,則會套用。 如果 scoring 為字串或可呼叫物件,則會忽略。

新增於版本 1.6。

返回:
scoring可呼叫物件

簽名為 scorer(estimator, X, y) 的評分器可呼叫物件/函數。

範例

>>> 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 ...'}