sklearn.metrics.make_scorer

sklearn.metrics.make_scorer(score_func, *, greater_is_better=True, needs_proba=False, needs_threshold=False, **kwargs)

[源码]

根据绩效指标或损失函数制作评分器。

此工厂函数包装评分函数,以用于GridSearchCV和cross_val_score。它需要一个得分函数,例如accuracy_score,mean_squared_error,adjusted_rand_index或average_precision,并返回一个可调用值,用于对估算器的输出进行评分。

用户指南中阅读更多内容。

参数 说明
score_func callable,
带有score_func(y, y_pred, **kwargs)签名的Score函数(或loss函数)。
greater_is_better boolean, default=True
score_func是一个得分函数(默认),意味着高是好的,还是一个损失函数,意味着低是好的。在后一种情况下,评分器对象将对score_func的结果进行签名翻转。
needs_proba boolean, default=False
score_func是否需要predict_proba才能从分类器中得出概率估计。
如果为True,则对于二进制y_true,得分函数应该接受一维y_pred(即,正类的概率为形状(n_samples,))。
needs_threshold boolean, default=False
score_func是否需要连续的决策确定性。这仅适用于使用具有decision_function或predict_proba方法的估计器的二进制分类。

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

例如,不能单独使用离散预测来计算average_precision或roc曲线下的面积。
**kwargs additional arguments
要传递给score_func的其他参数。
返回值 说明
scorer callable
返回标量分数的可调用对象;越大越好。

如果needs_proba = False和needs_threshold = False,则评分函数应接受predict的输出。 如果needs_proba = True,则分数函数应接受predict_proba 的输出(对于二进制y_true,评数函数应接受正类的概率)。 如果needs_threshold = True,则评分函数应接受decision_function的输出。

示例

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