【问题标题】:adjusting the K in knn train() command in R在 R 中调整 knn train() 命令中的 K
【发布时间】:2018-06-16 16:59:26
【问题描述】:

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

例如,我想使用 3、9 和 12?
如何在命令中调整它?

species_knn = train(species ~., method= "knn", data = species, trControl=trainControl(method = 'cv', number = 3))

【问题讨论】:

    标签: r classification knn


    【解决方案1】:

    这是一个使用虹膜数据进行网格搜索的示例:

    library(caret)
    

    构建一个你想要调整的超参数网格:

    grid = expand.grid(k = c(3, 9, 12)) #in this case data.frame(k = c(3, 9, 12)) will do
    

    在 tuneGrid 参数中提供网格:

    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 是所有可用模型和超参数的列表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-21
      • 2015-04-17
      • 1970-01-01
      • 2017-06-30
      • 2018-10-15
      • 2013-02-05
      • 2019-06-24
      • 2020-04-29
      相关资源
      最近更新 更多