check_scoring#

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

根据用户选项确定评分者。

如果无法对估计器进行评分,将引发TypHelp。

参数:
estimator实现“fit”或无的估计器对象,默认=无

用于适应数据的对象。如果 None ,那么该功能可能会出错,具体取决于 allow_none .

scoring字符串、可调用、列表、tuple、set或dict,默认=无

要使用的记分器。如果 scoring 代表单个分数,可以用途:

如果 scoring 代表多个分数,可以用途:

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

  • a callable returning a dictionary where the keys are the metric names and the values are the metric scorers;

  • 一个以指标名称作为键并调用值的字典。呼叫者需要有签名 callable(estimator, X, y) .

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

allow_none布尔,默认=假

是否返回无或如果否则引发错误 scoring 并且估计器没有 score

raise_exc布尔,默认=True

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

  • 如果设置为 True ,引发不及格得分者的例外。

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

如果 scoring 是列表、tuple、set或dict。如果 scoring 是字符串或可调用的。

Added in version 1.6.

返回:
scoring可调用

带有签名的scorer可调用对象/函数 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 ...'}