Обобщение машинного обучения

Обобщения моделей машинного обучения, работа с невидимыми данными (т. е. не с обучающими данными).

Ниже приведены некоторые соображения:

Переобучение:

Переоснащение происходит, когда модель была перепроектирована. Это может произойти двумя способами:

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

Недооснащение:

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

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

Случайное состояние:

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

Перекрестная проверка:

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

Такой подход называется n-кратной перекрестной проверкой или k-кратной перекрестной проверкой.

К-сгиб:

Класс K-Fold в sklearn.model_selection возвращает генератор, предоставляющий кортеж с двумя индексами: один для обучения, а другой для тестирования или проверки. Функция-генератор позволяет объявить функцию, которая ведет себя как итератор, что позволяет использовать ее в цикле.

cross_val_score:

Функция cross_val_score() доступна в sklearn.model_selection. До этого момента вы научились создавать наборы данных перекрестной проверки в цикле. Если бы вы использовали этот подход, вам нужно было бы отслеживать все модели, которые вы обучаете и оцениваете внутри этого цикла.

cross_val_score заботится о следующем:

  • Создание наборов данных перекрестной проверки
  • Модели обучения, подгоняя их под обучающие данные
  • Оценка моделей на проверочных данных
  • Возврат списка оценок R2 для каждой обученной модели.

Для выполнения всех предыдущих действий вам необходимо предоставить следующие входные данные:

  • Экземпляр оценщика (например, LinearRegression)
  • Исходный набор данных
  • Количество создаваемых расщеплений (которое также является количеством моделей, которые будут обучены и оценены)

Логистическая регрессияCV:

LogisticRegressionCV — это класс, внутри которого реализована перекрестная проверка. Этот класс будет обучать несколько моделей LogisticRegression и возвращать лучшую из них.

Настройка гиперпараметров с помощью GridSearchCV:

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

Настройка гиперпараметров с помощью RandomizedSearchCV:

RandomizedSearchCVПоиск по сетке проходит по всему пространству поиска и обучает модель или оценщик для каждой комбинации параметров. Рандомизированный поиск проходит только по некоторым комбинациям. Это более оптимальное использование ресурсов, и оно по-прежнему обеспечивает преимущества настройки гиперпараметров и перекрестной проверки.

Регуляризация модели с регрессией лассо:

При просмотре Overfitting мы увидели, что веса оптимизируются во время обучения модели. Один из методов оптимизации весов называется градиентным спуском. Правило обновления градиента использует дифференцируемую функцию потерь.

Примеры дифференцируемых функций потерь:

• Средняя абсолютная ошибка (MAE)

  • Среднеквадратическая ошибка (MSE)

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

Регрессия хребта:

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