首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在R中调整knn中的K训练()命令

在R中调整knn中的K训练()命令
EN

Stack Overflow用户
提问于 2018-01-07 22:19:33
回答 1查看 1.2K关注 0票数 2

我正在尝试使用knn算法进行分类。我的问题是如何调整算法使用的邻居数量?

例如,我想使用3、9和12?

如何在命令中调整此参数?

代码语言:javascript
运行
复制
species_knn = train(species ~., method= "knn", data = species, trControl=trainControl(method = 'cv', number = 3))
EN

回答 1

Stack Overflow用户

发布于 2018-01-07 22:34:35

下面是一个使用虹膜数据的网格搜索示例:

代码语言:javascript
运行
复制
library(caret)

构建要调整的超参数网格:

代码语言:javascript
运行
复制
grid = expand.grid(k = c(3, 9, 12)) #in this case data.frame(k = c(3, 9, 12)) will do

在tuneGrid参数中提供网格:

代码语言:javascript
运行
复制
species_knn = train(Species ~., method= "knn",
                    data = iris,
                    trControl = trainControl(method = 'cv',
                                             number = 3,
                                             search = "grid"),
                     tuneGrid = grid)
species_knn$results
#output
    k  Accuracy     Kappa AccuracySD      KappaSD
1  3 0.9666667 0.9499560 0.02309401 0.0346808964
2  9 0.9600000 0.9399519 0.00000000 0.0000416525
3 12 0.9533333 0.9299479 0.01154701 0.0173066504

Here是所有可用型号和超参数的列表。

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

https://stackoverflow.com/questions/48138031

复制
相关文章

相似问题

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