В проекте по назначению курса машинного обучения cousera.org я использую модель эластичной сети, чтобы найти лучшую модель классификации.
Данные обучения и тестирования сравниваются, чтобы найти то, что следует сохранить в качестве обучения. Я проверил NA и высоко коррелированные переменные.
Данные x - данные обучения, y - переменная "classe" в данных поезда. после удаления сильно коррелированных переменных x, было исключено 20, которые содержат 32 числовых и не содержат переменных NA.
Данные y являются множителями "A" ~ "E".
elastic_model<-train(y=y,x=x,method="glmnet",trControl = trainControl("cv", number = 10),tuneLength=10)
выше полученной модели:
elastic_model$bestTune
alpha lambda
1 0.1 0.01217372
coef(elastic_model$finalModel,s=elastic_model$bestTune$lambda)
Выше приведены результаты всех классов A ~ E, я вижу, что некоторые переменные могут быть удалены.
но ниже прогноза дают неверные результаты:
predictions <- predict(elastic_model,testData)
table(predictions,testData$classe)
predictions A B C D E
A 108 47 19 16 37
B 12 82 0 25 41
C 1121 606 758 233 472
D 433 404 249 690 532
E 0 0 0 0 0
в прогнозах, класс E полностью потерян. Я не могу найти причину.