首页 文章

如何测量python中knn分类器的准确性

提问于
浏览
5

我用knn来分类我的数据集 . 但我不知道如何衡量训练分类器的准确性 . scikit是否有任何内置函数来检查knn分类器的准确性?

from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier()
knn.fit(training, train_label)    
predicted = knn.predict(testing)

感谢所有的帮助 . 谢谢

2 回答

  • 4

    另一种选择是计算混淆矩阵,它告诉您两个类的准确性以及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)))
    
  • 10

    使用sklearn.metrics.accuracy_score

    acc = accuracy_score(test_label, predicted)
    

相关问题