首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择哪种kNN模型?

选择哪种kNN模型?
EN

Data Science用户
提问于 2019-12-17 21:56:48
回答 1查看 42关注 0票数 1

我试图调优kNN模型的“kNN”,andI有以下问题:

基于平均交叉验证得分,最优的kNN模型应该是有10个邻域的模型。

另一方面,当我绘制“分数与邻居”图时,我发现有些模型的训练和测试数据之间的分数距离要小得多(例如,有20个邻居的模型)。

我对ML还不熟悉,这对我来说还是很混乱的。但是我应该坚持10个邻居的模式,还是20个邻居的模式更好?我该怎么决定?任何帮助都是非常感谢的。

这是我的代码和图表:

代码语言:javascript
复制
best_score = 0
neighbors = np.arange(1,31)
all_train_scores = []
all_test_scores = []

for n_neighbors in neighbors :        

        reg = KNeighborsRegressor(n_neighbors = n_neighbors, metric = 'manhattan')

        score = cross_val_score(reg, X_train, y_train, cv = 5)
        score = np.mean(score) 

        if score > best_score :
            best_score = score
            optimal_choice = {'n_neighbors' : n_neighbors}

        reg.fit(X_train, y_train)
        train_score = reg.score(X_train, y_train)
        test_score = reg.score(X_test, y_test)

        all_train_scores = np.append(all_train_scores, train_score)
        all_test_scores = np.append(all_test_scores, test_score)
EN

回答 1

Data Science用户

回答已采纳

发布于 2019-12-17 23:09:54

这取决于几件事,但其中一个重要的是,有多大是你的背景。

请注意,R平方的差别是0.01,所以如果数据集很小--抽取20个样本--确定类的成本可能会很高,另一方面,如果您能够负担得起,那么10个样本可能很少能确保类的成员资格。

根据您的下一个用法,我将在数据大小中进行权衡。

票数 2
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/65029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档