2015-10-20 103 views
0

時,如何創建一個客戶射手當我嘗試:做交叉驗證

scores = cross_validation.cross_val_score(clf, features, target, cv=percent 
              , scoring =  \ 
metrics.make_scorer(metrics.precision_recall_fscore_support)) 
    print(scores) 

我收到一個錯誤:

File "D:\Anaconda3\lib\site-packages\sklearn\cross_validation.py", line 1537, in _score % (str(score), type(score))) ValueError: scoring must return a number, got (array([ 0.375 , 0.91290323]), array([ 0.25 , 0.94966443]), array([ 0.3 , 0.93092105]), array([ 36, 298], dtype=int64))() instead.

任何想法? 謝謝!

回答

1

我懷疑你的得分函數precision_recall_fscore_support正在返回四個數字(精度,召回,fbeta_score和支持)數組,但scoring要求可調用返回只有一個數字。

只嘗試了fbeta_score使用:

scores = cross_validation.cross_val_score(
    clf, features, target, cv=percent, 
    scoring=metrics.make_scorer(
     metrics.fbeta_score)) 
+0

是的,你是對的。我修好了它。謝謝! –

+0

你應該接受答案,如果它的工作。 – xbello