make_scorer#

sklearn.metrics.make_scorer(score_func, *, response_method=None, greater_is_better=True, needs_proba='deprecated', needs_threshold='deprecated', **kwargs)#

创建一个从性能指标或损失函数生成的评分器。

评分器是一个围绕任意指标或损失函数的包装器,它以 scorer(estimator, X, y_true, **kwargs) 的签名被调用。

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

参数 response_method 允许指定估计器的哪个方法应用于提供评分/损失函数。

更多信息请参阅 用户指南

Parameters:
score_funccallable

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

response_method{“predict_proba”, “decision_function”, “predict”} 或 此类字符串的列表/元组, default=None

指定用于从估计器获取预测的响应方法 (即 predict_proba , decision_functionpredict )。可能的选择是:

  • 如果是 str ,它对应于要返回的方法名称;

  • 如果是 str 的列表或元组,它按优先顺序提供方法名称。返回的方法对应于 estimator 实现的首个方法。

  • 如果是 None ,它等同于 "predict"

Added in version 1.4.

greater_is_betterbool, default=True

是否 score_func 是一个评分函数(默认),意味着高是好的,或者是一个损失函数,意味着低是好的。在后一种情况下,评分器对象将翻转 score_func 的结果。

needs_probabool, default=False

是否 score_func 需要 predict_proba 从分类器获取概率估计。

如果为 True,对于二进制 y_true ,假设评分函数接受 一维 y_pred (即,正类的概率,形状 (n_samples,) )。

Deprecated since version 1.4: needs_proba 在版本 1.4 中已弃用,并将在 1.6 中移除。请改用 response_method="predict_proba"

needs_thresholdbool, default=False

是否 score_func 接受连续的决策确定性。 这仅适用于使用具有 decision_functionpredict_proba 方法的估计器的二进制分类。

如果为 True,对于二进制 y_true ,假设评分函数接受 一维 y_pred (即,正类的概率或决策函数,形状 (n_samples,) )。

例如 average_precision 或 roc 曲线下面积 不能仅使用离散预测来计算。

Deprecated since version 1.4: needs_threshold 在版本 1.4 中已弃用,并将在 1.6 中移除。请改用 response_method=("decision_function", "predict_proba") 以保持相同的行为。

**kwargs附加参数

传递给 score_func 的附加参数。

Returns:
scorercallable

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

Examples

>>> 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)