Я сравниваю несколько различных алгоритмов машинного обучения для автоматической оценки эссе. Значения RMSE и RSquared, которые я получаю для тренировочных наборов, составляют в среднем около 0,75 и 0,43 соответственно. Но по какой-то причине, когда я запускаю KNN, используя ту же платформу функций, я получаю RMSE = 0,95 и RSquared = 0,09. Я также не получаю никаких сообщений об ошибках, поэтому не знаю, что происходит не так.
Мой набор данных непрерывен, и я выполняю регрессию на нем.
Вот фрагмент кода мой код:
library(caret)
train_control <- trainControl(method="repeatedcv", number=10, repeats=3)
# Linear Regression ============================================================
lm <- train(holistic_score~.,
data=training,
trControl=train_control,
method="lm")
lm$results
lm_pred <- predict(lm, testing)
postResample(pred = lm_pred, obs = testing$holistic_score)
# Train: rmse = 0.714515 rsquared = 0.4737114
# Test: rmse = 0.7508373 rsquared = 0.4423288
# K-NN =========================================================================
knn <- train(holistic_score~.,
data=training,
trControl=train_control,
tuneLength=100,
method="knn")
knn$results
knn_pred <- predict(knn, testing)
postResample(pred=knn_pred, obs=testing$holistic_score)
# Train: rmse = 0.9466202 rsquared = 0.07567549
# Test: rmse = 0.9512989 rsquared = 0.0966448
Я только показываю линейную регрессию, но я использую 10 различных алгоритмов на 6 различных наборах данных и по всем направлениям KNN работает намного хуже по сравнению с остальными.
Я пытался посмотреть онлайн документацию и здесь, но я не нашел ничего, что решало бы мою проблему или упоминало бы это. Этот наиболее близок к тому, что я нашел для кого-то с подобной проблемой, но он не относится ко мне, потому что я не использую категориальные предикторы.
Кто-нибудь знает, что может вызвать это ?
Редактировать: Вот гистограмма зависимой переменной (holistic_score):