ДЕЙСТВИТЕЛЬНО ЛИ МОДЕЛИ ГЛУБОКОГО ОБУЧЕНИЯ ЛУЧШИЕ?

В заключительной части нашей серии мы проанализируем производительность нашего набора данных, внедрив модель глубокого обучения. Статья ниже прольет свет на то, можем ли мы добиться лучших результатов при таком подходе.

В предыдущих частях нашей серии мы заметили, что модель случайного леса превзошла другую модель. Теперь нам интересно выяснить, даст ли модель глубокого обучения лучшие результаты.

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

Одним из новых аспектов модели глубокого обучения является введение проверочного набора. Этот набор данных содержит данные, с которыми модель не столкнулась во время обучения. Набор проверки служит для оценки производительности нашей модели на невидимых данных. Это позволяет нам оценить, насколько хорошо наша модель обобщается на новые и невидимые экземпляры.

Включая набор нормализации и проверки, мы стремимся оценить производительность нашей модели глубокого обучения и определить, превосходит ли она производительность модели случайного леса.

Функция build_model() определяет последовательную модель с использованием keras.Sequential(). Эта модель состоит из трех слоев: двух скрытых слоев по 64 единицы в каждом, использующих функцию активации ReLU, и выходного слоя с одной единицей.

Оптимизатор, выбранный для этой модели, представляет собой оптимизатор RMSprop со скоростью обучения 0,001, определяемой как tf.keras.optimizers.RMSprop(0.001).

Затем модель компилируется с использованием model.compile(), определяя функцию потерь как среднеквадратичную ошибку ('mse'). Также указываются показатели оптимизатора и оценки со средней абсолютной ошибкой ('mae') и среднеквадратической ошибкой ('mse') в качестве показателей, которые следует отслеживать в процессе обучения.

Затем мы будем отслеживать производительность наших эпох. Мы использовали 1000 эпох, поскольку наш набор данных не такой большой. Давайте посмотрим на производительность наших последних 10 эпох.

Затем мы посмотрим на производительность нашей модели. Помните, что у нас есть проверочный набор, который мы будем использовать для проверки производительности нашей модели. В частности, мы будем смотреть на нашу проверку mae и проверку mse, мы посмотрим, является ли она переоснащением или нет.

Как мы видим, наша модель не работает на своем уровне наилучшим образом, и это может быть связано с случаями переобучения, и поэтому наши проверки mae и проверка mse имеют тенденцию становиться постоянными, поэтому мы настроим наш режим и будем использовать раннюю остановку в качестве нашего параметра, где если модель замечает, что ее производительность не улучшается, то модель прекращает обучение, мы увидим реализацию в приведенном ниже коде.

Как мы видим из нашей модели, в момент, когда она перестала улучшаться, затем обучение остановилось, поэтому мы можем видеть, что val mse и val mae, следовательно, уменьшаются, поэтому производительность нашей модели хорошая. давайте посмотрим на нашу mae и посмотрим, насколько хороша наша модель. исполнение.

Производительность нашей модели глубокого обучения можно оценить на основе ее средней абсолютной ошибки (MAE), которая измеряет среднюю разницу между нашими прогнозируемыми значениями и фактическими значениями в наборе данных. Текущая MAE для нашей модели составляет 3133, что указывает на то, насколько наши прогнозы в среднем далеки от истинных значений.

На протяжении всей этой серии мы оценивали производительность нескольких моделей машинного обучения. Сравнивая нашу модель случайного леса и модель XGBoost с моделями глубокого обучения, мы заметили, что первые две работают немного лучше. Однако важно отметить, что превосходство модели может зависеть от характера набора данных и конкретной проблемы. Поэтому не всегда модели глубокого обучения превосходят другие методы.