我正在尝试使用scikit-learn中的DecisionTreeClassifier计算分类模型的置信区间。

阅读有关交叉验证和置信区间(https://scikit-learn.org/dev/modules/cross_validation.html)的scikit-learn文档,我发现下面的代码,看起来很简单。但是,我不明白为什么上限大于1,如何才能使精度高于100%?

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("Accuracy: %0.2f (+/- %0.2f)" % (scores.mean(), scores.std() * 2))
Accuracy: 0.98 (+/- 0.03)

最佳答案

显然不能大于1。

此代码中的基本假设是,在scores中计算出的分数将根据正态分布进行分配。然后,由mean+/- 2*std给出95%的置信区间。

在大多数情况下,它会给出明智的结果,但是在您的情况下,它是个模糊的定义,因为平均准确度已经非常接近1。 %?然后,您只需要删除std前面的因子2,上限将为99.5%。

关于python - Scikit学习:交叉验证和置信区间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54618725/

10-12 20:05