sklearn ,更改 cross_val_score 中的默认参数

sklearn , change default parameters in cross_val_score

我正在评估文本分类预测,cross_val_score。 我需要使用 recall_score function 评估我的预测,但参数 average = 'macro'。 cross_val_score 将其设置为默认参数 binary ,这对我的代码不起作用。有什么方法可以用不同的参数调用 recall_score ,或者将默认参数更改为 macro.

results = model_selection.cross_val_score(estimator, X, Y, cv= kfold, scoring= 'recall')

你可以像这样在其中使用 "recall_macro":

results = model_selection.cross_val_score(estimator, X, Y, cv= kfold, scoring= 'recall_macro')

根据documentation of metrics

‘f1’                metrics.f1_score            for binary targets
‘f1_micro’          metrics.f1_score            micro-averaged
‘f1_macro’          metrics.f1_score            macro-averaged
‘f1_weighted’       metrics.f1_score            weighted average
‘f1_samples’        metrics.f1_score            by multilabel sample
‘neg_log_loss’      metrics.log_loss            requires predict_proba support
‘precision’ etc.    metrics.precision_score     suffixes apply as with ‘f1’
‘recall’ etc.       metrics.recall_score        suffixes apply as with ‘f1’

如您所见,它指定所有后缀适用于 "recall"。

或者,您也可以像这样使用 make_scorer

# average can take values from 'macro', 'micro', 'weighted' etc as specified above
scorer = make_scorer(recall_score, pos_label=None, average='macro')
results = model_selection.cross_val_score(estimator, X, Y, cv= kfold,
                                          scoring= scorer)