【发布时间】:2020-04-23 17:58:27
【问题描述】:
我的数据集包含 5851 个观测值,并分为训练(3511 个观测值)和测试(2340 个观测值)集。我现在想用两个变量训练一个使用 KNN 的模型。我想做 10 倍 CV,重复 5 次,使用 ROC 度量和一标准误差规则,并对变量进行预处理。代码如下所示。
set.seed(44780)
ctrl_repcvSE <- trainControl(method = "repeatedcv", number = 10, repeats = 5,
summaryFunction = twoClassSummary, classProbs = TRUE,
selectionFunction = "oneSE")
tune_grid <- expand.grid(k = 45:75)
mod4 <- train(purchased ~ total_policies + total_contrib,
data = mhomes_train, method = "knn",
trControl= ctrl_repcvSE, metric = "ROC",
tuneGrid = tune_grid, preProcess = c("center", "scale"))
我遇到的问题是我已经尝试了很多不同的 K 值(例如,K = 10:20、30:40、50:60、150:160 + 不同的调整长度。但是,每次输出表示 K 的选择值是最后一个,例如,对于 K = 70:80 的值,K = 80 的选择值,每次我这样做时。这意味着我应该看得更远,因为如果在这种情况下,选择的值是 K,然后有更好的 K 值可用,高于 80。我最终应该如何找到这个?
作业仅指定:对于 k 近邻,仅使用 total_policies 和 total_contrib 变量探索 k 的合理值。
【问题讨论】:
标签: r knn training-data