check_scoring#

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

确定用户选项的评分器。

如果估计器无法评分,将抛出 TypeError。

Parameters:
estimator实现 ‘fit’ 方法的估计器对象或 None, 默认=None

用于拟合数据的对象。如果为 None ,则此函数可能会根据 allow_none 报错。

scoringstr, callable, list, tuple, set, 或 dict, 默认=None

使用的评分器。如果 scoring 表示单个评分,可以使用:

如果 scoring 表示多个评分,可以使用:

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

  • 返回字典的可调用对象,其中键是指标名称,值是指标评分器;

  • 以指标名称为键、可调用对象为值的字典。可调用对象需要具有 callable(estimator, X, y) 的签名。

如果为 None,则使用提供的估计器对象的 score 方法。

allow_nonebool, 默认=False

如果没有指定 scoring 且估计器没有 score 方法,是否返回 None 或引发错误。

raise_excbool, 默认=True

是否引发异常(如果多指标评分中的部分评分器失败)或返回错误代码。

  • 如果设置为 True ,则引发失败的评分器的异常。

  • 如果设置为 False ,则将异常详情的格式化字符串作为失败评分器的结果传递。

这适用于 scoring 是列表、元组、集合或字典的情况。如果 scoring 是字符串或可调用对象,则忽略。

Added in version 1.6.

Returns:
scoringcallable

具有签名 scorer(estimator, X, y) 的可调用对象 / 函数。

Examples

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