Что происходит «за кулисами» в nnet под каретом?

#r #r-caret #caret #nnet

Вопрос:

Я относительно новичок в R и пытаюсь понять, в чем разница между использованием пакета «nnet» самостоятельно по сравнению с использованием пакета «nnet» через каре. Сам набор данных состоит из 12 входных переменных и 1 выходной переменной с ~60 000 экземпляров. Обучающие данные составляют 75% набора данных, а данные тестирования-оставшиеся 25%. Это было сделано с помощью функции createDataPartition. Выходная переменная является непрерывной.

Код, который я использовал для nnet каретки, выглядит следующим образом:

model_tmp = поезд(Цель ~ ., данные=trainData, метод=’nnet’, компоновка=TRUE, maxit = 500)

предсказанный

Этот конкретный код возвращает очень хорошую модель после размера=5 и распада = 0,1.

Интуитивно я пытаюсь воспроизвести эту модель с помощью стандартного пакета nnet и получаю ужасные результаты. Пропорция модели разделена с тем же соотношением данных train:test, но вместо этого я использую функцию выборки. Код, который я использовал для стандартной nnet, выглядит следующим образом:

nn_tmp_ann

nn_пред

Я сравниваю две модели, используя стандартные показатели производительности (MAPE, RMSE, MSE, R2), и модель caret работает в 20 раз лучше. В модели caret я не масштабировал данные, но в модели nnet я это сделал, потому что это дало лучшие результаты. Я могу подтвердить, что вторая часть кода, использующая стандартный пакет nnet, использует правильный выбор данных/функций. Надеюсь, я не упустил никакой информации.

Регистрирует ли nnet caret мои параметры компоновки и максита? Я предполагаю, что в этой версии есть перекрестная проверка по умолчанию или что-то в этом роде, что дает мне значительно лучший результат, но любое понимание очень ценится.

Овации

Изменить: код не был разделен строкой

Комментарии:

1. Не могли бы вы опубликовать воспроизводимый пример со встроенным набором данных?