我用knn来分类我的数据集 . 但我不知道如何衡量训练分类器的准确性 . scikit是否有任何内置函数来检查knn分类器的准确性?
from sklearn.neighbors import KNeighborsClassifier knn = KNeighborsClassifier() knn.fit(training, train_label) predicted = knn.predict(testing)
感谢所有的帮助 . 谢谢
另一种选择是计算混淆矩阵,它告诉您两个类的准确性以及alpha和beta错误:
from sklearn.metrics import confusion_matrix con_mat = confusion_matrix(true_values, pred_values, [0, 1])
如果你的标签是0和1.如果你想要一个不错的输出,你可以添加这个代码:
from numpy import np import math total_accuracy = (con_mat[0, 0] + con_mat[1, 1]) / float(np.sum(con_mat)) class1_accuracy = (con_mat[0, 0] / float(np.sum(con_mat[0, :]))) class2_accuracy = (con_mat[1, 1] / float(np.sum(con_mat[1, :]))) print(con_mat) print('Total accuracy: %.5f' % total_accuracy) print('Class1 accuracy: %.5f' % class1_accuracy) print('Class2 accuracy: %.5f' % class2_accuracy) print('Geometric mean accuracy: %.5f' % math.sqrt((class1_accuracy * class2_accuracy)))
使用sklearn.metrics.accuracy_score:
acc = accuracy_score(test_label, predicted)
2 回答
另一种选择是计算混淆矩阵,它告诉您两个类的准确性以及alpha和beta错误:
如果你的标签是0和1.如果你想要一个不错的输出,你可以添加这个代码:
使用sklearn.metrics.accuracy_score: