当我尝试:
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))()代替。
有什么想法吗? 谢谢!
答案 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))