我使用sklearn库中的knn算法。在最后的代码行中,我得到了95.5%的准确性结果。这是否意味着我的测试数据集X_test的95.5%是正确/正确的预测?
这里是我的脚本的一小部分。
# Model, predict and solve
X_train = train_df.drop("Survived", axis=1)
Y_train = train_df["Survived"]
X_test = test_df.drop("PassengerId", axis=1).copy()
X_train.shape, Y_train.shape, X_test.shape
# KNN
knn = KNeighborsClassifier(n_neighbors = 3)
knn.fit(X_train, Y_train)
Y_pred = knn.predict(X_test)
acc_knn = round(knn.score(X_train, Y_train) * 100, 2)
acc_knn
如何查看错误的预测行?
谢谢!
您的预测在Y_pred
变量中。将其与y_test
变量一起打印。然后,您可以比较并查看哪些观测值正确预测以及哪些观测结果分类错误。
PS:从您的代码段中,尚不清楚您是否具有y_test
变量。
没有由于这一行:
acc_knn = round(knn.score(X_train, Y_train) * 100, 2)
您是在training集合中而不是在测试中计算准确性。
您应该使用
acc_test = round(knn.score(X_test, Y_test) * 100, 2)
或
from sklearn.metrics import accuracy_score
acc_test = round(accuracy_score(Y_test, Y_pred)* 100, 2)
注意,在任何一种情况下,您都应从数据中提取真实标签Y_test
(在当前代码中未这样做)。>>