Поздравляем, вы начинаете создавать настоящие модели с машинным обучением! Вы загрузили свой CSV-файл и выбрали модель для работы, теперь все, что вам нужно сделать, это найти правильную комбинацию параметров модели, чтобы ваша модель сияла… верно? Неправильный!
Мусор на входе, мусор на выходе.
Хотя настройка модели, безусловно, необходима (поскольку бесплатных обедов не бывает), мы должны спросить себя, сидя и наблюдая, как наш поиск по сетке стучит по 100 000 различных конфигураций гиперпараметров, действительно ли это лучший способ потратить наше время? время? Помните, что модели, поставляемые с Sci-Kit Learn, уже настроены на разумные гиперпараметры. Обычно, если возиться с ними намного больше, можно увидеть лишь небольшое улучшение производительности модели. Все это к тому, что если вы недовольны производительностью своих моделей до того, как начнете исчерпывающий поиск гиперпараметров, вы, вероятно, будете неудовлетворены и после поиска. Помните, что данные — это король; если вы тренируете модель с неверными данными, вы получите мусор.
Если вы застряли с плохо работающей моделью, вам сначала нужно спросить себя, является ли ваша модель переобученной (высокая дисперсия) или недостаточной (высокая систематическая ошибка), и действовать соответственно.
Если ваша модель не подходит, это означает, что она слишком проста для извлечения сложной информации, содержащейся в ваших данных. Таким образом, если вы убеждены, что ваши данные обладают некоторой предсказательной силой, попробуйте более сложную модель. Если вы не уверены, что ваши данные обладают достаточной прогностической силой, попробуйте разработать некоторые значимые функции или получить еще больше данных из внешнего источника.
Если ваша модель переоснащается, это означает, что модель уделяет слишком много внимания «шуму» ваших данных, заглушая реальные явления, которые вы пытаетесь наблюдать. Модель переобучения будет очень хорошо работать с данными, которые она уже видела, но не будет обобщаться на невидимые данные. Есть несколько вещей, которые мы могли бы сделать, чтобы уменьшить сложность модели. Для начала проверьте, есть ли в вашей модели какие-либо параметры регуляризации. Увеличивая силу вашей регуляризации, вы можете уменьшить сложность своих моделей. Кроме того, вы можете попробовать уменьшить количество входных функций. Вы можете сделать это, просто удалив некоторые функции, или, если вы хотите пофантазировать, попробуйте метод уменьшения размерности, такой как анализ основных компонентов.
Построй манекен, манекен!
Если вы работаете с моделью, в которую вы вложили много времени и усилий, чтобы сделать все правильно, было бы обидно, если бы простейшее модельное решение вашей проблемы сработало на 99% так же хорошо, как ваша причудливая модель. Вот почему жизненно важна базовая фиктивная модель. У нас должен быть какой-то способ измерения, если наша разработка функций, выбор/настройка модели и другие усилия действительно что-то делают. Другими словами, фиктивная модель помещает нашу причудливую модель в контекст. Основываясь на вашей проблеме, ваша фиктивная модель может быть просто средним значением вашей целевой переменной, или стандартной линейной регрессией болота, или она может принимать класс большинства в задаче классификации, или стандартной логистической регрессией болота.
Все это к тому, что когда вы начинаете заниматься наукой о данных, вы можете почувствовать желание погрузиться прямо в настройку гиперпараметров, но боритесь с этим желанием! Создайте фиктивную модель, чтобы сравнить текущую рабочую модель. Проанализируйте, как работает ваша модель (недоподгонка/переоснащение), и примите меры, соответствующие вашей ситуации. Настройка гиперпараметров — это просто вишенка на торте!