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_function 或 predict )。可能的选择是:
如果是
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_function
或predict_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)