用Python sklearn准确显示KNN的准确性吗?

问题描述 投票:0回答:2

我使用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

如何查看错误的预测行?

谢谢!

python machine-learning scikit-learn knn
2个回答
0
投票

您的预测在Y_pred变量中。将其与y_test变量一起打印。然后,您可以比较并查看哪些观测值正确预测以及哪些观测结果分类错误。

PS:从您的代码段中,尚不清楚您是否具有y_test变量。


0
投票

没有由于这一行:

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(在当前代码中未这样做)。>>

© www.soinside.com 2019 - 2024. All rights reserved.