Я пытаюсь запустить knn
с набором данных с категориальными и числовыми переменными.
Кажется, что категориальные переменные должны быть преобразованы в числовые или фиктивные, но мне интересно, можно ли это сделать в опции caret
method
.
DOW = weekdays(sample(seq(as.Date('2019/01/01'), as.Date('2019/05/01'), by="day"), 20))
apple = sample(1:100, 20, replace = T)
peach = sample(1:20, 20, replace = T)
cherry =sample(1:1000, 20, replace = T)
money= rnorm(20, 100, 20)
dt = data.frame(money, DOW, apple, peach, cherry)
Вот мой код knn
- он был взят из моего первоначального проекта с pca
и другими примененными циклами. В идеале я бы сохранил функцию caret
, но любой совет приветствуется!
train.control=trainControl(method='cv', preProcOptions = list(thresh=0.8))
k = train(knn_y~., method='knn',
tuneGrid=expand.grid(k=1:10),
trControl=train.control, preProcess=c('scale','center','pca'),
metric='RMSE', data=data.frame(knn_y=knn_y, this.train))