make_scorer#

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

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

评分器是任意指标或损失函数的包装器,其调用签名为 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 的列表或元组,则按偏好顺序提供方法名称。返回的方法对应于列表中估计器实现的第一个方法。

  • 如果为 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)