我创建了一个 5 折交叉验证模型并使用 cross_val_score 函数计算交叉验证模型的精度和召回率,如下所示:
def print_accuracy_report(classifier, X, y, num_validations=5):
precision = cross_validation.cross_val_score(classifier,
X, y, scoring='precision', cv=num_validations)
print "Precision: " + str(round(100*precision.mean(), 2)) + "%"
recall = cross_validation.cross_val_score(classifier,
X, y, scoring='recall', cv=num_validations)
print "Recall: " + str(round(100*recall.mean(), 2)) + "%"
我想知道是否允许我做这些行:
print "Precision: " + str(round(100*precision.mean(), 2)) + "%"
print "Recall: " + str(round(100*recall.mean(), 2)) + "%"
我的意思是这是否代表了整个模型的精度和召回率precision.mean()?recall.mean()
只是为了比较起见,在scikit-learn 的 文档中,我看到模型的准确性计算为:
from sklearn.model_selection import cross_val_score
clf = svm.SVC(kernel='linear', C=1)
scores = cross_val_score(clf, iris.data, iris.target, cv=5)
print(scores)
数组([0.96..., 1. ..., 0.96..., 0.96..., 1. ])
print("Accuracy: %0.2f (+/- %0.2f)" % (scores.mean(), scores.std() * 2))
准确度:0.98 (+/- 0.03)