2017-04-20 466 views
0

我正在評估文本分類預測,其中cross_val_score。 我需要評估我的預測與recall_score函數,但與參數平均='宏'。 cross_val_score將其設置爲默認參數,二進制,這不適用於我的代碼。有沒有辦法使用不同的參數調用recall_score,或將默認參數更改爲宏。sklearn,更改cross_val_score中的默認參數

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

回答

2

你可以用 「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)