2014-02-07 2 views
1

Итак, у меня есть набор данных, на котором я выполняю алгоритмы машинного обучения. Я выполнил MLR, пошаговую регрессию, SVM и Random Forest на наборе данных, который равен 180 x 160. Я моделирую одну переменную против 159 других переменных, с 179 случаями. Это все регрессионное моделирование. Я использую пакет caret, в котором я использую функцию поезда, чтобы выполнить 10-кратное перекрестное подтверждение 10 раз с помощью различных алгоритмов машинного обучения. Мне сказали прочитать документ, в котором вместо этого использовались модели нейронных сетей и получили лучшие результаты, поэтому я пытался найти способ сделать то же самое, но с нейронной сетевой моделью.Как смоделировать нейронную сеть с помощью каретки, R

Я имел взгляд на выполнив следующие действия: -

model <- train(RT..seconds.~., data = cadets, method = "AMORE", trControl = ctrl) 

, но он не работает. Мне сказали, что это не сработает, так как в функции поезда еще нет упакованного пакета AMORE. Поэтому я искал использовать nnet вместо: -

model <- train(RT..seconds.~., data = cadets, method = "nnet", trControl = ctrl) 

который работал. Тем не менее, значение RMSE, которое я получил, составило 171, и когда я посмотрел на свои предсказанные и наблюдаемые значения, предсказанные значения были всего лишь 1 с и 0,9999 с. Кто-нибудь знает, что я делаю неправильно?

спасибо!

+1

Я не думаю, что это хорошая идея использовать NN в наборе данных 180x160. –

+0

Вы пытались дать 'skip = TRUE' в команде« nnet »? –

+0

Я только что попробовал, я сделал: - 'cadets.nn <- train (RT..seconds. ~., Data = cadets, method = "nnet", trControl = ctrl, skip = TRUE)' и Я получил одно и то же значение RMSE, при этом предсказанные значения равны 1 или 0. – user2062207

ответ

1

Вы должны использовать опцию linout = TRUE для nnet функции:

model <- train(RT..seconds.~., data = cadets, 
       method = "nnet", trControl = ctrl, 
       linout = TRUE) 

Если нет, сигмовидной функция активации используется, и все предсказания будут ограничены, чтобы быть на [0, 1] ,

+0

Спасибо, у вас есть работа! Хотя ответы, которые я получаю, похожи на сгруппированные (например, отклоняются от 8 разных чисел), но, черт возьми, он все еще работает, спасибо – user2062207

Смежные вопросы