make_scorer#
- sklearn.metrics.make_scorer(score_func, *, response_method=None, greater_is_better=True, needs_proba='deprecated', needs_threshold='deprecated', **kwargs)[source]#
Make a scorer from a performance metric or loss function.
A scorer is a wrapper around an arbitrary metric or loss function that is called with the signature
scorer(estimator, X, y_true, **kwargs).It is accepted in all scikit-learn estimators or functions allowing a
scoringparameter.The parameter
response_methodallows to specify which method of the estimator should be used to feed the scoring/loss function.Read more in the User Guide.
- Parameters:
- score_funccallable
Score function (or loss function) with signature
score_func(y, y_pred, **kwargs).- response_method{“predict_proba”, “decision_function”, “predict”} or list/tuple of such str, default=None
Specifies the response method to use get prediction from an estimator (i.e. predict_proba, decision_function or predict). Possible choices are:
if
str, it corresponds to the name to the method to return;if a list or tuple of
str, it provides the method names in order of preference. The method returned corresponds to the first method in the list and which is implemented byestimator.if
None, it is equivalent to"predict".
Added in version 1.4.
- greater_is_betterbool, default=True
Whether
score_funcis a score function (default), meaning high is good, or a loss function, meaning low is good. In the latter case, the scorer object will sign-flip the outcome of thescore_func.- needs_probabool, default=False
Whether
score_funcrequirespredict_probato get probability estimates out of a classifier.If True, for binary
y_true, the score function is supposed to accept a 1Dy_pred(i.e., probability of the positive class, shape(n_samples,)).Deprecated since version 1.4:
needs_probais deprecated in version 1.4 and will be removed in 1.6. Useresponse_method="predict_proba"instead.- needs_thresholdbool, default=False
Whether
score_functakes a continuous decision certainty. This only works for binary classification using estimators that have either adecision_functionorpredict_probamethod.If True, for binary
y_true, the score function is supposed to accept a 1Dy_pred(i.e., probability of the positive class or the decision function, shape(n_samples,)).For example
average_precisionor the area under the roc curve can not be computed using discrete predictions alone.Deprecated since version 1.4:
needs_thresholdis deprecated in version 1.4 and will be removed in 1.6. Useresponse_method=("decision_function", "predict_proba")instead to preserve the same behaviour.- **kwargsadditional arguments
Additional parameters to be passed to
score_func.
- Returns:
- scorercallable
Callable object that returns a scalar score; greater is better.
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)
Gallery examples#
Prediction Intervals for Gradient Boosting Regression
Demonstration of multi-metric evaluation on cross_val_score and GridSearchCV
Post-tuning the decision threshold for cost-sensitive learning