簡體   English   中英

如何測量python中knn分類器的准確性

[英]how to measure the accuracy of knn classifier in python

我用knn來分類我的數據集。 但我不知道如何衡量訓練分類器的准確性。 scikit是否有任何內置函數來檢查knn分類器的准確性?

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

感謝所有的幫助。 謝謝

使用sklearn.metrics.accuracy_score

acc = accuracy_score(test_label, predicted)

另一種選擇是計算混淆矩陣,它告訴您兩個類的准確性以及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)))

您可以使用此代碼直接開始。 它使用IRIS數據集。 虹膜數據集中有3個類, Iris-Setosa, Iris-Virginica, and Iris-Versicolor

使用此代碼。 這給了我97.78%准確率

from sklearn import neighbors, datasets, preprocessing
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.metrics import classification_report
from sklearn.metrics import confusion_matrix

iris = datasets.load_iris() 
X, y = iris.data[:, :], iris.target
Xtrain, Xtest, y_train, y_test = train_test_split(X, y, stratify = y, random_state = 0, train_size = 0.7)

scaler = preprocessing.StandardScaler().fit(Xtrain)
Xtrain = scaler.transform(Xtrain)
Xtest = scaler.transform(Xtest)

knn = neighbors.KNeighborsClassifier(n_neighbors=3)
knn.fit(Xtrain, y_train)
y_pred = knn.predict(Xtest)

print(accuracy_score(y_test, y_pred))
print(classification_report(y_test, y_pred))
print(confusion_matrix(y_test, y_pred))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM