如何在进行交叉验证时创建客户记分员

时间:2015-10-20 07:59:31

标签: python scikit-learn

当我尝试:

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

我收到错误:

  

文件“D:\ Anaconda3 \ lib \ site-packages \ sklearn \ cross_validation.py”,   第1537行,在_score中       %(str(得分),类型(得分)))ValueError:得分必须返回一个数字,得到(数组([0.375,0.91290323]),数组([0.25,   0.94966443]),array([0.3,0.93092105]),array([36,298],dtype = int64))()代替。

有什么想法吗? 谢谢!

1 个答案:

答案 0 :(得分: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))