创建评分器#

sklearn.metrics.make_scorer(score_func, *, response_method='default', greater_is_better=True, **kwargs)[source]#

根据性能指标或损失函数创建评分器。

评分器 (scorer) 是对任意度量或损失函数的封装,其调用签名为 scorer(estimator, X, y_true, **kwargs)

它被所有允许使用 scoring 参数的 scikit-learn 估计器或函数接受。

参数 response_method 允许指定应使用估计器的哪个方法来馈送评分/损失函数。

更多信息请阅读 用户指南

参数:
score_func可调用对象

评分函数(或损失函数),签名为 score_func(y, y_pred, **kwargs)

response_method{"predict_proba","decision_function","predict"} 或此类字符串的列表/元组,默认为 None

指定用于从估计器获取预测的响应方法(即 predict_probadecision_functionpredict)。可能的选项包括:

  • 如果为 str 类型,则对应于要返回的方法的名称;

  • 如果为 str 类型的列表或元组,则按优先级顺序提供方法名称。返回的方法对应于列表中的第一个方法,并且该方法由 estimator 实现。

  • 如果为 None,则等效于 "predict"

1.4 版本中新增。

自 1.6 版本起已弃用: None 等效于 'predict' 并且已弃用。它将在 1.8 版本中移除。

greater_is_better布尔值,默认为 True

score_func 是否为评分函数(默认),即值越高越好,还是损失函数,即值越低越好。在后一种情况下,评分器对象将对 score_func 的结果进行符号反转。

**kwargs附加参数

要传递给 score_func 的附加参数。

返回:
scorer可调用对象

返回标量分数的可调用对象;值越高越好。

示例

>>> from sklearn.metrics import fbeta_score, make_scorer
>>> ftwo_scorer = make_scorer(fbeta_score, beta=2)
>>> ftwo_scorer
make_scorer(fbeta_score, response_method='predict', beta=2)
>>> from sklearn.model_selection import GridSearchCV
>>> from sklearn.svm import LinearSVC
>>> grid = GridSearchCV(LinearSVC(), param_grid={'C': [1, 10]},
...                     scoring=ftwo_scorer)