use*_*755 6 python scikit-learn
我正在尝试使用 scikit-learn 中的 DecisionTreeClassifier 计算分类模型的置信区间。
阅读有关交叉验证和置信区间的 scikit-learn 文档(https://scikit-learn.org/dev/modules/cross_validation.html)我发现了下面的代码,它看起来非常简单;但是我不明白为什么上限大于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)
Run Code Online (Sandbox Code Playgroud)
显然不能大于1。
此代码中的基本假设是计算的分数scores按照正态分布分布。然后 95% 置信区间由 给出mean+/- 2*std。
大多数时候它都会给出合理的结果,但在你的情况下,它只是定义不明确,因为平均准确度已经非常接近 1。我知道这不是一个很好的解决方案,但也许你可以将置信区间降低到 68 %?那么你只需要把 前面的因子 2 去掉std,上限就是 99.5%。
| 归档时间: |
|
| 查看次数: |
3270 次 |
| 最近记录: |