Saya sedang membangun pengklasifikasi KNN untuk memprediksi apakah beberapa catatan berwarna merah/hijau. Modelnya sendiri tampak baik-baik saja, tetapi saya kesulitan menghitung tn,fn,tp,fp dalam for loop saya. Pada dasarnya setiap loop melalui, saya perlu membandingkan ndarray pred_k ("y_hat") dengan ndarray Y_test ("y_actual.) statis Pikiran?

X = df [["f1","f2", "f3", "f4"]]. values
Y = df [["color"]]. values.ravel()

scaler = StandardScaler (). fit (X)
X = scaler . transform (X)

X_train ,X_test , Y_train , Y_test = train_test_split (X,Y, test_size =0.5 , random_state =0)
error_rate = []

for k in [3 , 5, 7, 9, 11]:
    knn_classifier = KNeighborsClassifier ( n_neighbors =k)
    knn_classifier . fit ( X_train , Y_train )
    pred_k = knn_classifier . predict ( X_test )
    error_rate . append (np. mean ( pred_k != Y_test ))
0
brooks08 4 April 2021, 23:01

1 menjawab

Jawaban Terbaik

Anda dapat menggunakan matriks kebingungan sklearn.

from sklearn.metrics import confusion_matrix
tn, fp, fn, tp = confusion_matrix(Y_test, pred_k).ravel()
1
Vatsal Gupta 5 April 2021, 03:48