我已经训练并测试了我的KNN分类器。我已经通过验证,平均得分也不错。现在,我想预测一些真实数据的标签。但有没有办法看到预测的准确性?我只想在准确度足够高的情况下保存预测标签。我正在使用Python和scikit-learn。
答案 0 :(得分:2)
正如@jonrsharpe所说,predict_proba
应该这样做。
它提供了一个包含所有类别概率的数组。可以说,你有3个类别[A,B,C]。 predict_proba
方法将返回
[0.2,0.3,0.5]。
所以这里你的准确性将是
A=0.2
B=0.3
C=0.5
例如:
categories = [A, B, C]
X = # put your data
Y = # put your result
classifier.fit(X, Y)
prediction = classifier.predict_proba(X) # predict whatever you want here
for line in prediction:
# numpy.argmax return the index of the biggest value in the array
# max return the biggest value
print("The class is %s with proba : %f " % (categories[numpy.argmax(line)], max(line, key=float)))
重要:处理您的类别数组中的顺序。 predict_proba结果的内容基于类别以词汇方式排序。在处理结果之前,请毫不犹豫地对类别进行排序