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