【问题标题】:How to calculate the accuracy score from out of sample data?如何从样本数据中计算准确度分数?
【发布时间】:2017-08-18 11:15:02
【问题描述】:

例如-

X = iris.data
y = iris.target

from sklearn.nighbors import KNeighborsClassifier

knn = KNeighborsClassifier()

knn.fit(X,y)

pred = knn.predict([3,5,4,2])

print(pred)

output: [2] ... 这里 2 代表一个类值 如何计算此预测的准确性?

【问题讨论】:

  • 请正确缩进问题。代码和文本应该分开
  • 您似乎对信心而不是准确性感兴趣?

标签: python machine-learning scikit-learn classification


【解决方案1】:

如果您指的是概率而不是准确性,因为您无法计算单点的准确性。

代替

pred = knn.predict([3,5,4,2])

使用

pred = knn.predict_proba([3,5,4,2])

它应该为您提供属于类的数据点的概率。

如果您正在寻找整体模型的准确性,您可以进行交叉验证。

from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import cross_val_score
from sklearn import datasets

iris = datasets.load_iris()
X = iris.data
y = iris.target

knn = KNeighborsClassifier()
scores = cross_val_score(knn, X, y, cv=10)
print(score.mean())

输出

0.96666666666666679

【讨论】:

  • 它返回两个值 -> [[ 0.37881165 0.62118835]] 这是什么意思?它提供了两种可能性吗?
  • 是的。所以第一个数字是[3,5,4,2] 属于Class-1 的概率是0.38,而属于Class-2 的概率是0.62。由于数据点属于 Class-2 的概率很高,因此数据点被预测为 Class-2
  • 您可以使用概率pred[:,0]pred[:,1] 来确定属于 Class-1 或 Class-2 的数据点的准确性。
  • 非常感谢:) .. 是否分类排序?因此,我的班级价值是 0 和 1
  • 分类排序是什么意思?
猜你喜欢
  • 1970-01-01
  • 2020-04-16
  • 2017-05-18
  • 1970-01-01
  • 2017-06-03
  • 2013-11-20
  • 2021-12-10
  • 2018-08-12
相关资源
最近更新 更多