我正在交叉验证sklearn分类器模型,并希望快速获得精确度,召回率和f值的平均值。 我怎样才能获得这些价值?
我不想自己编写交叉验证代码,而是使用cross_validation.cross_val_score函数。 是否可以通过提供足够的评分函数来使用此函数来获得每个标签的预期平均值?
答案 0 :(得分:1)
您可以考虑使用sklearn.metrics package中的所有方法。
我认为this method可以完成你期望的工作。它为您提供了一个2D数组,每个目标唯一值有一行,精度,调用,fscore和支持列。
对于快速记录,您也可以使用classification_report。
答案 1 :(得分:0)
对于精确度和召回,在度量标准包中有一个名为precision_recall_curve的函数,它应该执行您正在寻找的内容。
假设您有经过训练的分类器clf
,测试样本X
和测试目标Y
,那么您需要传递目标和预测的类概率。以下示例将查找两类问题的精确度和召回率。
probs = clf.predict_proba(X)[:,1]
precision, recall, thresholds = precision_recall_curve(Y, probs)
可以使用指标包f1_score中的其他功能找到F分数。这以类似的方式使用,但需要预测的类 成员资格作为论据,而不是成员资格的概率。