Как только вы поймете основные инструменты машинного обучения, такие как Python, Pandas и связанные библиотеки, которые работают в Google Colab, базовое машинное обучение произойдет довольно быстро. С вашими первыми несколькими прогностическими моделями приятно работать, но даже на этой ранней стадии вы, вероятно, думаете, что есть способы улучшить свои результаты. Пришло время приступить к настройке вашей модели.

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

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

Мы продемонстрируем использование k-кратной перекрестной проверки. Это разделит входные данные на k подмножеств (также известных как складки). Вы тренируете модель машинного обучения на всех подмножествах, кроме одного, и оцениваете. Этот процесс повторяется k раз.

На следующей диаграмме показаны обучающие подмножества для каждой из четырех моделей, которые созданы и обучены в ходе 4-кратной перекрестной проверки. Модель 1 использует первые 25 процентов данных для оценки, а остальные 75 процентов - для обучения. Вторая модель использует второе подмножество 25 процентов для оценки, а остальные - для обучения и так далее.

Гиперпараметры

гиперпараметр - это параметр, значение которого устанавливается до начала процесса обучения. Напротив, значения других параметров получаются посредством обучения. Давайте посмотрим на реализацию алгоритма перекрестной проверки с библиотекой sklearn, выполняющей тяжелую работу. Вы заметите KFold(n_splits=3, random_state=42). Оба n_splits=3 и random_state=42 являются гиперпараметрами. Эти гиперпараметры - это рычаги, которые специалисты по обработке данных используют для достижения улучшенных решений. В этом случае мы используем n_splits=3, который является мерой количества разделов для разделения данных. Гиперпераметрrandom_state=42 будет поддерживать согласованность результатов при будущих запусках алгоритма. Само фактическое число (в данном случае 42) значения не имеет. Это могло быть любое число. Но использование того же числа при будущих прогонах алгоритма обеспечивает согласованные результаты. Если оставить это поле пустым, это не повлияет на работу алгоритма, но каждый раз, когда вы его запускаете, random_state будет другим.

AUC (площадь под кривой)

Результатом настройки модели на данный момент является улучшение показателя AUC. Этот анализ AUC представляет собой тест соответствия моделей тестовым данным. Строго говоря, рассматриваемая кривая - это соотношение истинно положительных и ложноположительных результатов. Желание получить наивысшее соотношение интуитивно понятно, имея модель, которой вы можете доверять и которая будет давать наиболее точные сигналы. Для дальнейшего чтения вот отличное 14-минутное видео-объяснение AUC by Data School.

Настройка гиперпараметров

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

Сохраните свою работу!

После нескольких часов тяжелого труда последнее, чего вы хотите, - это потерять точно настроенные параметры, если вы переместите свою модель на другие платформы или из демонстрационной среды в живую. Один из способов обеспечить единообразие вашей работы - использовать sklearn.externals.joblib это библиотека, функция которой заключается в сохранении вашей работы в едином пакете для передачи. Он очень прост в использовании. Когда ваш model установлен и готов к работе, вы просто используете этот код и сохраняете его в filename.

И как только у вас есть файл в новом месте вместе с данными, его очень легко распаковать и использовать.