sklearn,更改cross_val_score中的默认参数

问题描述 投票:1回答:1

我正在使用cross_val_score评估文本分类预测。我需要用recall_score函数来评估我的预测,但是参数average ='macro'。 cross_val_score将它设置为默认参数binary,这对我的代码不起作用。有没有办法用不同的参数调用recall_score,或者将默认参数更改为宏。

results = model_selection.cross_val_score(estimator, X, Y, cv= kfold, scoring= 'recall')
python function parameters scikit-learn evaluation
1个回答
3
投票

您可以像这样在其中使用“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’

如您所见,它指定所有后缀适用于“召回”。

或者,您也可以像这样使用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)
© www.soinside.com 2019 - 2024. All rights reserved.