r - KNN 在 `class` 中有效,但在 `caret` 中无效(关系太多)
问题描述
我正在制作一个 KNN 算法来预测close_price
大约 80,000 行这些数据。
# A tibble: 81,334 x 12
latitude longitude close_date close_price id address country state zip date week year
<dbl> <dbl> <dttm> <dbl> <int> <fct> <fct> <fct> <fct> <date> <dbl> <dbl>
1 36.4 -98.7 2014-08-05 06:34:00 147504. 2 US-412, Fai… USA OK 73737 2014-08-05 31 2014
2 36.6 -97.9 2014-08-12 23:48:00 137401. 3 N2850 Rd, E… USA OK 73703 2014-08-12 32 2014
3 36.6 -97.9 2014-08-09 04:00:40 239105. 5 Craig Rd, P… USA OK 73766 2014-08-09 32 2014
4 36.5 -98.3 2014-08-07 15:18:18 270885. 6 62161 Caddo… USA OK 73741 2014-08-07 32 2014
我试图从一个简单的模型开始,该模型将收盘价预测为一周的函数。
library(caret)
data_small <- data %>% select(close_price, week)
training.samples <- data_small$close_price %>%
createDataPartition(p = 0.8, list = FALSE)
train.data <- data_small[training.samples, ]
test.data <- data_small[-training.samples, ]
我发现我可以使用knn()
from进行预测class
。
library(class)
modelKNN <- knn(train.data, test.data, cl = train.data$close_price, k = 4, l = 0, prob = FALSE, use.all = TRUE)
但是当我尝试用插入符号来做这件事时,我得到了一个错误。
model <- train(close_price~ ., data = train.data, method = "knn")
它为我服务:
警告信息:
1:Resample01 的预测失败:k=5 knnregTrain 中的错误(train = structure(c(32, 32, 32, 25, 25, 25, 25, 32, :
knn 中的关系太多2:Resample01 的预测失败:k=7 knnregTrain 中的错误(train = structure(c(32, 32, 32, 25, 25, 25, 25, 32, : too many ties in knn
3:Resample01 的预测失败:k=9 knnregTrain 中的错误(train = structure(c(32, 32, 32, 25, 25, 25, 25, 32, : too many ties in knn
我尝试了不同的变体train()
,比如包含trControl = trainControl("cv", number = 10), preProcess = c("center", "scale"), tuneLength = 10
相同的结果。
我还想指出,根据收盘周的不同,价格差异很大。
我在这里看了一个类似的问题,但他们只是使用class
.
这是火车数据的结构。
# A tibble: 65,070 x 2
close_price week
<dbl> <dbl>
1 147504. 31
2 239105. 32
3 270885. 32
4 228514. 25
解决方案
推荐阅读
- regex - 使用正则表达式排除 URL 中的文件夹
- python - 使用 Python 列表和数组
- powershell - 访问与服务帐户共享的 Google 表格文件会产生 403 禁止错误
- android - Realm Android:在数据模型类中添加领域对象作为子数组
- android - AIR / Android:在清单中添加资产和引用
- webpack - 如何删除 webpack 插件中的条目?
- symfony - JMS Serializer 无法在 Symfony 4 上设置上下文目标属性
- javascript - 手风琴菜单子菜单覆盖菜单而不是扩展它
- c# - 这是交换字节顺序的合法方式吗?
- ios - 如何使 UICollectionView 仅在触摸而不是触摸时选择一个单元格