10 советов по построению эффективных моделей для машинного обучения

10 советов от Inside Big Data для организаций, которые хотят применять машинное обучение более эффективно.
Машинное обучение продолжает набирать обороты. Все больше организаций и отраслей адаптируют эту технологию для оптимизации операций, улучшения прогнозирования ресурсов, потребительского спроса и решения подобных задач. Недавнее исследование McKinsey Global Institute показало, что объем внешних инвестиций в ИИ за 2016 составил между 8 и 12 млрд долларов, из них около 60% привлекло машинное обучение. Более того: данные исследования показывают, что прибыль организаций, в которых высший менеджмент поддерживает инициативы по внедрению машинного обучения и ИИ, возросла на 3-15 процентов.
Несмотря на эту тенденцию, многие компании сражаются с простейшими базовыми методами машинного обучения и в результате упускают выгоды.
1. Посмотрите на данные
Подготовка набора данных для обучения требует времени, а типичные ошибки — общие. Перед построением модели проанализируйте ваши данные. Так вы сможете быстро определить, правильная ли у вас информация и в нужном ли она формате. Используйте PROC Print с OBS=20 в Base SAS®, Fetch в SAS® Viya™ или функции Head и Tail в Python, чтобы просмотреть и «пощупать» замеченные закономерности.
2. Нарежьте данные
Обычно в данных есть базовая подструктура, так что нарежьте данные, как сделали бы с пиццей, и постройте отдельную модель для каждого куска. Когда вы определите цель, постройте дерево решений с небольшим ветвлением и создайте отдельные модели для каждого сегмента. Помните, что при наличии цели алгоритмы кластеризации наследуются хуже, чем сегменты.
3. Используйте простые модели
Построение сложных моделей для извлечения максимума из ваших данных имеет решающее значение. Однако простые модели легче реализовать, к тому же они упрощают процесс объяснения результатов ключевым заинтересованным лицам. Стройте простые прозрачные модели, используя регрессию и деревья решений, применяйте градиентный бустинг и ансамблевые модели для подтверждения результатов работы ваших простых моделей.
4. Обнаружение редких событий
Машинное обучение часто требует использования несбалансированных данных, потому бывает сложно правильно классифицировать редкие события. Чтобы противодействовать этому эффекту, создайте набор данных для обучения с переизбытком или нехваткой примеров. Ваши данные будут более сбалансированными, а более высокая вероятность события поможет алгоритму лучше его изолировать. Другая стратегия моделирования редкого события — через обработку принятия решений (придав больший вес правильной классификации события).
5. Объедините множество моделей
Аналитики данных обычно используют алгоритмы наподобие градиентного бустинга или «случайного леса» для автоматического построения множества моделей. Некоторые модели хороши для обобщений, а некоторые алгоритмы лучше подходят для специфического набора данных. Преодолейте это затруднение, комбинируя различные алгоритмы моделирования. Уделите больше внимания алгоритму, который в целом лучше справляется с классификацией или лучше проходит валидацию данных. Но рассмотрите и возможность включения пары более слабых классификаторов, которые качественнее отлавливают специфические моменты в обучающих данных.
6. Разверните свои модели
Слишком часто развертывание и применение модели на практике занимает недели или месяцы, а некоторые модели в итоге вовсе не применяются. Чтобы эффективно развернуть модель, вы должны определить бизнес-задачу, способ доступа к данным и управления ими, а также методы разработки, валидации, развертывания и мониторинга работы модели. Используйте также инструменты, автоматически фиксирующие логику подготовки данных, чтобы у инженеров или команды IT был готовый план внедрения модели. Подумайте также о создании стандартизированных аналитических файлов данных, чтобы стимулировать репликацию и повторное использование данных.
7. Реализуйте автонастройку моделей
Перед построением модели для машинного обучения нужно задать опции алгоритма, называемые гиперпараметрами. Автонастройка поможет определить подходящие гиперпараметры точно и быстро. Используйте Grid Search (для поиска по пространству гиперпараметров рекомендуется Latin hypercube) для автонастройки параметров, выполнив поиск по заданным вручную подмножествам пространства гиперпараметров и ориентируясь на метрику производительности.
8. Управляйте изменениями
Изменения или дополнения к существующему функционалу могут привести к фундаментальной переработке всей модели. Чтобы компенсировать неудобства от этой реалистичной ситуации, подсчитайте индексы стабильности популяции статистические данные мониторинга, чтобы измерить распад модели с частыми интервалами. Мониторьте ROC и сдвиги для классификатора, настройте задания для выявления распада модели и установите график выполнения заданий на переобучение в указанные временные промежутки.
9. Сбалансируйте обобщения
Обобщения — способность обучаемой модели обрабатывать новые, ранее не изученные данные. Ключевой нюанс взаимодействия с обобщениями — поддержание баланса и своевременное переключение между моделями с высокой специализацией и большим разбросом. Если возникает ошибка, вызванная большим разбросом данных, используйте большие объемы данных или функционал для обработки подмножеств. При ошибке, вызванной избыточной специализацией данных, используйте дополнительные функции. Применение правильного метода оценивания критично для выбора моделей, способных качественно обобщать новые данные.
10. Добавляйте фичи
В обучающем наборе данных необходимы несколько образцов предикторных переменных для классификации или прогнозирования ответа. В машинном обучении такие переменные называются фичами (features), а ответы — признаками. Добавьте в тренировочный сет несколько уже известных фич, чтобы получить более подходящую модель. Например, попробуйте ввести в модель ответ пользователя, если его с высокой вероятностью можно предсказать. Вы можете ввести в модели историю покупок, поскольку информация об уже совершенных покупках может быть полезна для определения склонностей покупателя или подбора будущих лучших предложений.