Машинное обучение часто входит в число основных навыков, перечисленных в резюме специалиста по данным (а у меня оно определенно есть). Некоторые считают, что это даже синоним Data Science, а для большинства команд Data Science это основной элемент повседневной жизни.

Споры, которые я часто веду с другими практиками машинного обучения, касаются того, как создать набор функций. Как правило, существует два лагеря: лагерь «добавьте все возможные функции и позвольте алгоритму сделать свою работу» и лагерь «построение функций на основе гипотез». В мире, где решения для автоматического машинного обучения, такие как DataRobot и H2O, становятся предметом разговора в городе, метод «добавить все» становится все более и более популярным и, безусловно, ускоряет создание моделей машинного обучения. Метод, основанный на гипотезах, является более медленным и часто более разочаровывающим, и им чаще пренебрегают в мире, где крайние сроки часто бывают вчерашними.

Как статистик, я в первую очередь привержен подходу сначала гипотезы, и в этой статье я объясню, почему я считаю, что этот подход имеет широкий спектр преимуществ, которые перевешивают недостатки скорости и сложности. Определение Data Science, которое я обычно использую (см. Мой первый пост на Medium), основано на анализе гипотез, поэтому использование этого подхода в мире машинного обучения напрямую согласуется с этим мышлением.

Построение более простых моделей может оказаться полезным

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

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

Отношения могут существовать случайно

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

Возьмем пример - допустим, мы запускаем линейную регрессию одной переменной x по переменной ответа y (простейшая из существующих проблем машинного обучения). Следовательно, мы будем искать следующие отношения:

Y = ax + b + e, с a, b действительными числами , ошибка нормально распределенная

После выполнения вычислений и вычисления оценок коэффициентов a и b мы можем захотеть проверить, влияет ли x на y является «статистически значимым». Это равносильно проверке нулевой гипотезы «a равно 0» против альтернативы «a не равно нулю». Предположим, что из этого теста (t-критерий) мы получаем p-значение 0,01. Что это на самом деле говорит нам?

Конечно, это меньше, чем обычный порог, используемый в статистике 0,05, поэтому мы вполне справедливо можем предположить, что мы можем отклонить нулевую гипотезу. Однако, когда мы думаем о том, что на самом деле говорит нам это p-значение, мы можем начать понимать, как часто можно наблюдать случайные отношения. Фактически, наше p-значение говорит нам, что если нулевая гипотеза верна (т. Е. a равно нулю, поэтому x не влияет на y), тогда мы наблюдали бы такие данные, как наши, в 1% случаев. Другими словами, как мы видели эти данные, нулевая гипотеза все еще может быть верной и x действительно может не оказывать никакого влияния на y - просто шансы невелики.

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

Корреляция и причинно-следственная связь

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

Когда мы строим модель, используя «океан» функций, у нас, вероятно, будут некоторые из них, которые будут отмечены как очень важные (либо случайно, как в предыдущем разделе, либо из-за каких-то реальных отношений). Мы можем это увидеть и сразу предположить прямую связь между важной функцией и целевой переменной.

Например, мы могли бы (наивно) построить модель для прогнозирования продаж мороженого, используя такие характеристики, как количество солнцезащитных очков, которые люди покупают, количество парковочных мест, заполненных рядом с пляжем, и многие другие. Так уж получилось, что количество купленных солнцезащитных очков - это самая важная характеристика.

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

В качестве более тонкого примера рассмотрим вопрос о создании прогноза временных рядов с использованием структуры машинного обучения. В этом случае вашими характеристиками будет значение переменной с лагами t-1, t-2, t-3,…, t-n, и вы должны предсказать значение в текущее время. Скорее всего, все функции будут коррелированы, поэтому метод auto-ml может вызвать большие проблемы с разработкой правильной структуры модели. Подход, основанный на гипотезах, вместо этого даст вам основу для включения переменных (например, включая самые последние или скользящие средние предыдущих).

Отказ от исследовательского анализа…

С инструментами Auto-ML, готовыми к использованию, и готовым к использованию набором данных, очень естественно просто добавить эти данные в инструмент и посмотреть, какие результаты вы получите. Это может вызвать соблазн пропустить одну из самых важных частей процесса разработки машинного обучения - исследовательский анализ данных (EDA).

С помощью EDA вы можете обнаружить множество проблем, которые не обязательно обнаруживаются или помечаются с помощью инструментов Auto-ML: неверно интерпретированные данные (т. Е. Выбор данных, которые на самом деле не делают того, что вы думали), аномальные данные, отсутствующие данные и , что хуже всего, целевая утечка. Все это может привести к ошибочным результатам. Вы также можете получить дополнительную информацию о типах переменных, которые вы, возможно, захотите создать, и, возможно, создать убойную функцию, которую ваше решение для автоматического машинного обучения не могло найти.

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

… И препятствовать разработке сложных функций

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

Решения Auto-ML часто создают впечатление, что разработка функций выполняется в значительной степени автоматически, и поэтому вам не нужно делать это вручную. Если вместо этого вы будете исходить из списка гипотез, ваше внимание будет сосредоточено на построении точек данных, относящихся к ним, потенциально создавая такие, о которых решениям auto-ml просто не могут (пока) мечтать.