ks = range(1,300) inSampleScores = [] crossValidationScores = [] d = {} #key = k, value = cv accuracy rate for k in ks: k_clf = KNeighborsClassifier(k).fit(train_x, train_y) inSampleScores.append(k_clf.score(train_x, train_y)) from sklearn.model_selection import StratifiedKFold skf = StratifiedKFold(n_splits=3) scores = cross_val_score(k_clf, train_x, train_y, cv=skf) crossValidationScores.append(scores.mean()) d[k] = scores.mean()中的ks的范围是什么用处?
时间: 2024-04-01 12:32:26 浏览: 95
kNN算法原理与python实现 博客地址:https://blog.csdn.net/Albert201605?type=bl
ks的范围是用来遍历不同的超参数k的取值,从而对比不同k取值下模型的性能。在这段代码中,通过遍历ks的范围,对每个k值训练KNeighborsClassifier模型,并使用交叉验证方法进行评估,得到每个k值下的交叉验证准确率。最终将k值和交叉验证准确率存入字典d中,以便后续分析和比较。
通过比较不同k值下的性能表现,可以选择最优的超参数k值,从而得到最优的KNeighborsClassifier模型。通常,我们会选择交叉验证准确率最高的超参数k值作为最优的超参数,但也可以根据具体问题进行调整。
阅读全文