我已经训练并测试了我的 KNN 分类器。我已经交叉验证了它,平均分数不错。现在,我想预测一些真实数据的标签。但是有没有办法看到预测的准确性呢?我想仅在准确性足够高的情况下实际保存预测标签。我正在使用Python和scikit-learn。
正如@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结果的内容根据类别按词法排序。在处理结果之前,不要犹豫,对类别进行排序