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)