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

Итак, вы, вероятно, начнете с самого простого и наиболее интерпретируемого классификатора в статистике / машинном обучении: логистической регрессии. Затем вы пройдете стандартный рабочий процесс в машинном обучении: вы разработаете список вероятных функций, которые войдете в вашу модель, убедившись, что они действительны; разбейте ваши данные на тестовые и обучающие наборы; настроить любые гиперпараметры в модели с помощью перекрестной проверки; оценивать прогнозы на тестовом наборе с использованием различных метрик; и в конечном итоге обучить модель на всем наборе данных. Если ваша модель работает достаточно хорошо, вы можете назначить встречу с кем-нибудь из группы по развитию клиентов и сказать ей, что у вас есть некоторые интересные результаты для обсуждения.

К сожалению, возможность использовать scikit-learn или glm не обязательно означает, что вы сможете ответить на вопросы, которые для нее важны.

Разговор может выглядеть примерно так:

Вы. Итак, наиболее важным показателем удержания клиентов является то, сколько товаров покупатель купил у нас в последний раз.

Ее: Полагаю, в этом есть смысл. Но насколько это важно?

Вы: как видите, коэффициент функции равен 0,08.

Ее: ... что это значит?

Вы: это означает, что логарифм отношения шансов изменится на 0,08 для увеличения функции на единицу.

Она: не могли бы вы попробовать простой английский? Если мы сможем заставить ее купить у нас еще один предмет в этом месяце, насколько более вероятно, что она останется в следующем месяце?

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

Ее: [вздох]

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

Линейная регрессия - это обычная линейная модель, поэтому коэффициенты легко перевести в такие утверждения, как: «Человек в среднем будет получать дополнительно 1000 долларов годового дохода на каждый дюйм его роста». Логистическая регрессия - это обобщенная линейная модель (поэтому она подходит для использования glm в R), поэтому мы не можем делать одинаковые типы утверждений. Влияние любой функции на прогнозируемую вероятность зависит от того, где вы находитесь по отношению к сигмовидной функции. Если член (β x + intercept) полностью «насыщен», незначительное изменение функции не даст никакого эффекта. С другой стороны, если член близок к нулю, небольшое изменение характеристики может иметь большой эффект.

Даже если отбросить коэффициенты, объяснить логистическую регрессию саму на удивление сложно. Есть ли способ сделать это для непрофессионала (т.е. без слов «экспоненциальный», «логарифмический» или «сигмовидный»)?

Оказывается, да. Ниже я представлю несколько советов и приемов, как сделать простую логистическую регрессию… ну, проще. Большинство из них заимствованы из выдающейся книги Эндрю Гельмана и Дженнифер Хилл.

Интерпретация коэффициентов

Самый простой способ интерпретировать коэффициенты логистической регрессии - это не как изменение «логарифмических соотношений шансов», а как изменение вероятностей. И самый быстрый и грязный способ оценить эти изменения - использовать правило «делить на 4». Основная идея состоит в том, что максимальное влияние любой функции на прогнозируемую вероятность происходит, когда эта вероятность близка к 50%. Эффект может быть выражен как производная (изменение вероятности, деленное на изменение характеристики). Итак, чтобы найти максимальный эффект, мы можем взять производную сигмовидной функции в точке 50%.

После выполнения математических расчетов выясняется, что изменение вероятности из-за изменения единицы измерения в функции x равно β / 4, где β - коэффициент этой функции. Эффект от изменения характеристики на единицу не может превышать β / 4. Фактически, верхняя граница также может быть хорошей оценкой самого эффекта, поскольку для многих задач классификации данные находятся достаточно близко к 50%.

Таким образом, мы могли бы перефразировать наш не очень красноречивый ответ, приведенный выше, следующим образом: «Если бы она купила у нас дополнительный товар, вероятность того, что ее удержат, будет (максимум) на 0,08 / 4 = 2% выше».

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

Пояснение к модели

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

Вот в чем суть, практически без математики. (Если вы жаждете уравнений, прочтите книгу Гельмана и Хилла.)

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

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

Однако наш прогноз никогда не бывает точным. То, что человек на самом деле делает, зависит от его фактического результата: его прогнозируемого результата плюс некоторый (вероятностный) член ошибки, как в линейной регрессии. Разумно, что вероятность большой ошибки мала, а вероятность небольшой ошибки велика. Итак, у нас получится вероятностный классификатор. Если наша прогнозируемая оценка немного выше нуля, то малейшее подталкивание может подтолкнуть нас к нулю, что означает, что наша прогнозируемая вероятность будет лишь немного больше 50%. С другой стороны, если наша прогнозируемая оценка значительно больше нуля, наша прогнозируемая вероятность будет намного больше, чем 50%. Точные числа зависят от выбора функции ошибок. Типичный выбор - это распределение Гаусса, как и в линейной регрессии. (Это дало бы модель «пробит», а не модель логистической регрессии / «логит», но на практике они оказались бы довольно близкими. Вместо этого в логит-модели для члена ошибки используется логистическое распределение.)

В чем смысл?

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

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

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

Метод скрытых переменных можно легко распространить на эту проблему, известную как «порядковая регрессия». Все остается прежним, за исключением того, что теперь существует несколько пороговых значений, а не только один равный 0. Точки отсечения для этих порогов также должны быть установлены, но такие пакеты, как mord, упрощают оценку параметров.

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

Точно так же, если бы вы знали, что определенная одежда не соответствовала требованиям, вы могли бы использовать другой термин ошибки, который более устойчив к ошибкам, например, регрессия робита. Подход со скрытыми переменными предоставляет способ объединить большое количество моделей GLM в единую структуру.

Вывод

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

Если вы также заинтересованы в том, чтобы ваши аналитические данные имели отношение к бизнесу, подумайте о том, чтобы присоединиться к нам в Dia & Co. Мы нанимаем"!