Comments 15
Так же не очень понятно, как модели дожития справляются с предложенной проблемой вначале — адаптация к изменяющимся условиям?
Сейчас не могу уже найти, но встречал интересную интерпритацию модели дожития — предполагалось, на примере HR-кейса, что любой сотрудник в любом случае когда-то уволится с 100% вероятностью, главные вопрос — когда?, что и пытались смоделировать.
Проблема, как я постарался написать в тексте, как раз в том, что для классификатора нельзя делать непрерывный горизонт. Его точность сильно падает при отклонении от текущей точки более 1.5-2 месяцев (касается ИТ области, слишком уж много хайпа и новшеств). Да и что он будет классифицировать? "Уволился — не уволился" на момент прогноза? Бинарное состояние, хотя у человека могут быть длительные мучения.
Модель дожития позволяет построить кривую выживания для всей популяции сотрудников и применить параметризацию этой кривой для конкретного человека. И начать бить в колокол, когда прогнозируемая вероятность достигнет, например, 50%. А сама базовая модель может ежедневно\еженедельно пересчитываться на основании существующих цензурированных данных.
А по существу, раньше занимался моделями дожития, используя R, в рамках их непосредственного названия — сколько человек проживёт после первого инфаркта в зависимости от генетических факторов. В такой задаче — это было лучше классификации.
Если компания определила, что реагировать на тревожный сигнал по сотруднику нужно за 4 месяца (а ей это придется делать для любой модели — врядли кто-то что-то будет делать, если модель дожития покажет вероятность увольнения через год-полтора), то ничто не мешает построить поведенческий бинарный классификатор на целевую переменную 4 месяца.
Либо классификатор представить в виде сгруппированной шкалы с нужным горизонтом (например, целевое событие с запасом через 6 месяцев), и как только сотрудник попадет по модели в «зону риска» — начать его усиленно мотивировать :)
В любом случае в основе обеих подходов лежат, как праивло, вероятности распределения по регрессорам. Анализ дожития просто делает еще один дополнтельный шаг — вектор вероятностей наступления вероятности :)
Кстати, если Вы работаете с этой системой на практике, было бы очень интересно посмотреть результаты бэктеста, а еще лучше А\Б бэктеста, а еще лучше — сансамблировать оба подхода. Тема для меня очень актуальная, т.к. прямо сейчас я заканчиваю проработку архитектуры аналогичной модели.
По карме плюсовать на пост не могу, но хотя бы в комментариях Вам большой +
Олег, с замечанием могу согласиться, но основной смысл отнюдь не в коде, а в постановке проблемы.
Многие думают, что для задач HR могут быть использованы методы машинного обучения, но практика показывает, что в общем случае это утверждение не ко всему классу задач применимо.
Про survival analysis люди, касающиеся темы HR даже не слышали. А применение его более оправданно, чем параметризованная классификация. Есть хороший аналитический аппарат и разработанные модели (аж с 70-х годов прошлого века, если говорить про регрессию Кокса).
Но пока это люди это будут отрицать и требовать точности прогноза "95%", ехать дальше не представляется возможным.
Совсем хардкорные детали есть в приведенных источниках и на блоге из первого абзаца.
Вот, например, классификатор от Ping Wang:
- Публикация дискуссионная. Нет одного универсального решения.
- ML применим, в пункте Ссылки есть и это. Построить аппроксиматор по точкам можно с помощью ML. Но понять и объяснить суть явления (модель) не всегда получится. Именно поэтому и появляются теперь "линейные трактователи" ответов от "черного ML ящика" наподобие LIME. Будучи физиком по образованию, предпочитаю всегда работать с моделью и аналитическим представлением, если есть такая возможность, нежели с ящиком.
- Картинка, увы, не видна.
- Противопоставляю я другое: вероятностная модель vs желание HR описать все в терминах "хороший-плохой". Это то, что наблюдаю на практике.
Про survival analysis люди, касающиеся темы HR даже не слышали. А применение его более оправданно, чем параметризованная классификация.
А этому утверждению есть какое-то подтверждение?
Чтобы я сказал по графику (на уровне гипотез):
- 30-32 месяца назад в компании были массовые сокращения (или народ начал массово перетекать к конкурентам);
- последние 10 месяцев в компании идут сокращения (либо все активно перетекают к конкурентам);
- я вовсе не уверен, что при принятии решений о сокращении главным фактором являются переработки (скорее должность или специальность).
Применим ли в этих условиях survival analysis? У пенсионеров гораздо меньше возможностей повлиять на ситуацию, чем у работников или руководителей конкретного предприятия. Отдельная компания гораздо менее устойчива, чем экономика государства, динамика гораздо выше.
Может стоит обратить внимание на подготовку данных для анализа, а не выбор модели?
- Для подтверждения утверждения смотрите ссылки, приведенные в публикации.
- Данные априори необходимо готовить правильно, из мусора каши не сваришь. Но набор требуемых данных будет определяться в т.ч. и описывающей моделью (отсылки к физике, химии).
- Выбор инструментов и методов всегда ограничивает набор доступных возможностей. Догонит ли Ахиллес черепаху? Без применения методов работы с бесконечно малыми величинами — не догонит.
- SA применим, это общий метод работы с цензурированными данными. Переработка была просто как один из факторов, для примера. Кстати, в чем специфика "этих условий" (какие именно)? У человека после операции тоже не особо много рычагов влияния на здоровье, однако SA пошел оттуда. В комментарии есть рассуждения о стране в целом, но ничего явно не указано.
Посмотрел на Watson Analytics Use Case for HR: Retaining valuable employees, там ставилась совсем другая задача — выделить драйверы аттришина:
one of my tasks is to determine which factors keep employees at my company and which prompt others to leave
Автор выделил 10 значимых факторов.
У Вас же совсем другая формулировка:
создание модели, прогнозирующей уход сотрудников с заданной точностью (не менее 75-80%).
Я просто не улавливаю связи.
- С точки зрения предметной области — ссылка в начале текста на блог "HR аналитика". Там Эдуард собрал массу материалов по этой теме, по SA можно стартовать с "Как использовать анализ дожития для прогноза текучести персонала от Pasha Roberts". Гугл выдает сотни тысячи результатов на запрос "Employee attrition survival analysis".
- Нельзя выделить факторы из ничего. Можно высказать гипотезу, построить модель на основе предположенных факторов и проверить корректность гипотезы.
- Это не моя формулировка, это некорректные ожидания HR, нахватавшихся токсичных рекламных слоганов.
- Краткая суть публикации: "В ходе практического применения было обнаружено, что… В динамичных областях для управления оттоком персонала более корректно использовать инструменты SA, нежели бинарные классификаторы. Временной горизонт применимости хорошо тренированного классификатора слишком мал, чтобы внести управленческое воздействие, остается только наблюдать".
- Нулевое положение — в компании есть люди, которые горят желанием получить себе HR аналитику. Почему и зачем — вопрос за рамками настоящего сайта. Хотят.
- Для классических цензурированных данных используются дата начала измерений, возраст и дата "терминации/исключения из числа наблюдаемых". факторы зависят от фантазии и возможностей. В первой итерации желательно использовать факторы, слабо зависящие от времени (пол, образование, семейное положение, зарплата, время работы на последней должности, количество дней в командировках....) все это HR знает.
- И вводить не надо, нормальное R приложение само все заберет, только дайте возможность.
- Разговорить сотрудника и выяснить планы — задача руководителя и HR. Речь ведь о людях, а не о роботах. Раз уж есть беспокойство про отток персонала.
- Да и вообще, если кто-то хочет внедрить HR аналитику (HR или руководство), должен предварительно потрудиться пособирать и предоставить данные.
«HR-аналитика» средствами R