Привет, HRM. Я не математик или програмист. Посетил семинар Эдуарда Бабушкина по HR-аналитике. Это мое домашнее задание.
Дата сет
Датасет предоставлен Эдуардом после семинара. 5000 ответов на вопросы анкеты. Кстати, если хотите узнать свою оценку на рынке труда в денежном эквиваленте можно пройти тест в блоге Эдуарда https://edwvb.blogspot.ru/…/01/skolko-ya-stoyu-na-rynke.html.
Просто работаю с датасетом для себя отметил как можно моделировать анкету для построения модели в будущем. Теперь понимаю — ошибкой будет создать опросник или анкету в компании, без понимания на какие аналитические вопросы она отвечает. Конечно, для опытных аналитиков это очевидно, для меня открытие.
Какую задачу взял в домашнее задание?
Поставил себе задачу найти факторы, которые влияют на вероятность сотрудника проработать больше года в компании. Задача классификации. До семинара ничего сложнее регресии для красивой линии на графике я не считал. Сразу практика и в построении модели классификации и интрепретации ROCR кривой, оптимизация модели на точность.
Думаю это останется моим блоком для аналитики и в будущем. При условии, что подбор и обучение нового сотрудника стоит дороже, чем удержание уже принятого и прошедшего обучение и испытательный срок. Сейчас я провожу реструктурицазию подразделения где ошибка сотрудника в коммуникации стоит от 4 до 10 млн рублей в обороте для компании. Эту ошибку я закладыаю в стоимость обучения и прохождения адаптационного срока.
Как решал задачу?
Первое, что хочу сказать — на ощуп. Как я был рад, что нам предоставили живой код после семинара, потому что без него, я бы остался один на один с машиной. Прошел все шаги, которые Эдуард прошел с нами за два дня на семинаре.
Препроцессинг:
— Большую часть времени обрабатывал данные и приводил их к нужному формату.
— Важно в компании сразу настраивать корректную гигиену данных
— Столкнулся с проблемами о которых говорил Эдуард на семинаре.
Взял переменные как отличие по заработной плате между обещанной и рельаной, белая или серая заработная плата? Превратил их в факторные переменные, заодно заменил NA если их было не более 5% от общего числа самым популярным ответом. Если пропущенных значений было больше 5%, то я просто удалял их из датасета.
Что взял за Y или выходная переменная
В итоговом варианте, взял за Y стаж сотрудника до увольнения. Опять же, помог код , он был предоставлен на семинаре.
— Поставил дату увольнения end переменная
— Дата устройства как begin.
— Далее вычислил разницу и получил стаж.
Затем пришлось очистить данные от ошибок. Например стаж у части был минусовой. Так же убрал данные где стаж превышал 200 месяцев.
В итоговом датасете:
Тех кто уволился до 12 месяцев событие 0 = 1359 наблюдений
Тех кто уволился после 12 месяцев событие 1 = 737 наблюдений
Какие параметры включил в модель?
Некоторы парметры, например переработки личные и руководителя я прерватил в новую переменную в виде комбинации двух параметров.
Пол = gender
Наличие наставник = mentor
Время до работы = worktrip
Белая или серя зап = salary_
Публичная критика = crit
Тип офиса workspace
Наличие интранета = intranet
Доступ к социальным сетям = social
График работы = schedule
Перерабатывал ли сотрудник и его руководитель? = overmatch
Наличие обратной связи = os
Обучение и курсы квалификации = growth
Поддержка инициативы = initiative
Наличие детей в комбинации с кредитами = kids_loan
Возраст руководителя = bossage
Перерабатывал ли руководитель ? = bossover
Вид квартиры = flat
Премия = bonus
Наличие наставник = mentor
Время до работы = worktrip
Белая или серя зап = salary_
Публичная критика = crit
Тип офиса workspace
Наличие интранета = intranet
Доступ к социальным сетям = social
График работы = schedule
Перерабатывал ли сотрудник и его руководитель? = overmatch
Наличие обратной связи = os
Обучение и курсы квалификации = growth
Поддержка инициативы = initiative
Наличие детей в комбинации с кредитами = kids_loan
Возраст руководителя = bossage
Перерабатывал ли руководитель ? = bossover
Вид квартиры = flat
Премия = bonus
Результаты работы алгоритмов:
GLM без кроссвалидации
АUC = 0.68
GLM с кроссвалидацией.
Тот же результат что и с кроссвалидацией.
Random forest
АUC = 0.71, при числе факторов 16
— Отсутствие премии
— Серая заработная плата
— Отсутвие интранета
— Отсутсвие инициатив со стороны сотрудника
— Наличие детей, при отсутствии кредитов.
— Пререаботки со стороны сотрудника при отсутствии переработок от руководителя
— Отсутствие заботы о росте сотрудника.
XGboost
АUC = 0.69. Тренировка модели заняла вместе с подгонкой 4 дня. Random Forest 6 часов. В итоге часть параметров по прежнему на границах значений которые я выставил в настройки. Духу сражаться дальше с настройками не хватило. Скорее всего нужно было выкидывать из модели лишний параметры и упрощать модель.
Итоговые параметры:
Сетка настроек:
Точность полнота:
Важность факторов:
— Отсутствие премии
— Пререаботки со стороны сотрудника при отсутствии переработок от руководителя
— Пререаботки со стороны сотрудника при отсутствии переработок от руководителя
— Серая заработная плата
— Наличие детей, при отсутствии кредитов.
— Наличие детей, при отсутствии кредитов.
— Отсутвие интранета
— Оупен спейс офис
— Обратная связь не реже одного раза в неделю.
Скорее всего параметр нужно было удалять. Вот соотношение с уволились до 12 месяцев и после.
— Оупен спейс офис
— Обратная связь не реже одного раза в неделю.
Скорее всего параметр нужно было удалять. Вот соотношение с уволились до 12 месяцев и после.
— Rec4 = Все достижения отмечены руководителем
— Rec 2 = Изредка получал обратную связь
— Руководитель перерабатывал меньше чем сотрудник.
— Руководитель перерабатывал меньше чем сотрудник.
Что в итоге?
— Бонусы влияют на верояность сотрудника проработать дольше года.
— Модель нельзя использовать для прогноза т.к. низкая точность на текущий момент.
— Серая заработная плата и переработки сотрудника,когда руководитель не перерабатывает увеличивают риск сотрудника покинуть компанию.
Чем полезно для бизнеса?
— Проверять навыки руководителей. Могут ли они структурировать работу так, что бы сотрудники работали в комфортном режиме.
— Если нет, способен ли руководитель вместе с сотрудниками компенсировать объем работ и своими часами тоже
— Важным параметром оказался интранет и сотрудники с наличием интранета работила дольше 12 месяцев чаще чем без интранета. Здесь скорее влияние внутренних комуникаций в компании и чувства споричастности к группе. Хотя это мои догадки.
— Если нет, способен ли руководитель вместе с сотрудниками компенсировать объем работ и своими часами тоже
— Важным параметром оказался интранет и сотрудники с наличием интранета работила дольше 12 месяцев чаще чем без интранета. Здесь скорее влияние внутренних комуникаций в компании и чувства споричастности к группе. Хотя это мои догадки.
Чему научился?
— Подбирать алгоритм— Строить модель и тестировать ее
— Работать с современными алгоритмами машинного обучения
— Понимаю как внедрить тот же процесс у себя в компании и у клиента
— По сути нужно было делать дожитие и смотреть какие факторы увеличивают риск уволиться. Но это уже был бы третий разворот модели. Мне пока не под силу физически:)
Чему предстоит научиться?
— Применять модели в бизнес решениях— Понять как вывести важность параметров отностельно одного из откликов Y параметра
Что предстоит сделать?
— Построить модель для прогноща срока работы сотрудника на живом примере— Построить регрессионный анализ для предсказания способности продавца продавать на заданный уровень
— Попробовать научить модель оценивать письменные переписки сотрудников с клиентами.
Друзья, это мой текущий уровень понимание. Буду благодарен за обратную связь и критику. Сейчас важно понимать куда дальше настравивать обучение?























