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