Я делаю алгоритм KNN для прогнозирования close_price
с примерно 80000 строк этих данных.
# 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()
из 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 = состав (c (32, 32, 32, 25, 25, 25, 25, 32,:
слишком много галстуков в кнн
2: сбой прогнозов для Resample01: k = 7 Ошибка в knnregTrain (train =
структура (c (32, 32, 32, 25, 25, 25, 25, 32): слишком много связей в knn
3: сбой прогнозов для Resample01: k = 9 Ошибка в knnregTrain (train =
структура (c (32, 32, 32, 25, 25, 25, 25, 32): слишком много связей в 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