Мой набор данных имеет 150 независимых переменных и 10 предикторов или ответ. Проблема состоит в том, чтобы найти отображение между входными и выходными переменными. Есть 1000 точек данных, из которых 70% я использовал для обучения и 30% для тестирования. Я использую нейронную сеть прямой связи с 10 скрытыми нейронами, как описано в этом документе Matlab . Я оцениваю производительность с помощью команды
perf_Train = perform(net,TrainedData',lblTrain')
YPred = net(XTest);
perf_Test = perform(net,YPred,lblTest')
, который в основном дает среднеквадратичную ошибку между фактическим и прогнозируемым (оценочным) откликом на обучение и тестирование. Мои данные тестирования не могут правильно соответствовать обученной модели, однако данные обучения подходят очень хорошо.
Задача 1 : мои результаты обучения всегда меньше, чем показатель эффективности теста, т. Е. perf_Train = 0.0867
и perf_Test = 0.567
Это переоснащение или недостаточно?
Задача2 : Как правильно настроить данные теста? Теория говорит, что для преодоления переоснащения и недостаточной подгонки, нам нужно сделать регуляризацию. Есть ли какой-либо параметр, который необходимо ввести в функцию, такой как регуляризация, чтобы преодолеть это?