我有(Xa, Ya):数据训练(Xv Yv): data_validation(Xt, Yt): data_test所以我想用不同邻居值(1到25)来应用knn在同一个图中绘制数据训练和数据验证的分类误差我找到的唯一解决方案是使用交叉验证但我寻找另一个没有交叉验证的解决方案
这可能是一个非常简单的例子来设计可能的修改:
import matplotlib.pyplot as plt
from sklearn.neighbors import KNeighborsClassifier
for i in range(1,26):
cls = KNeighborsClassifier(n_neighbors=i)
cls.fit(Xa, ya)
y_probs = cls.predict_proba(Xv)
fpr, tpr, _ = roc_curve(yv, y_probs[:,1])
plt.plot(fpr, tpr)
plt.show()