СОДЕРЖАНИЕ

  1. "Определение проблемы"
  2. "Анализ данных"
  3. Заключительные замечания EDA
  4. Трубопровод предварительной обработки
  5. Построение моделей машинного обучения
  6. Заключительные замечания

Чтобы получить больше подобного контента, подпишитесь на меня в Twitter, где я делюсь практическими примерами и приложениями для машинного обучения.

1. Определение проблемы

Смена сотрудников (также известная как «текучесть кадров») - дорогостоящая проблема для компаний. Реальная стоимость замены сотрудника часто может быть довольно высокой.

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

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

Понимание того, почему и когда сотрудники, скорее всего, уйдут, может привести к действиям по улучшению удержания сотрудников, а также, возможно, к заблаговременному планированию нового найма. Я буду использовать поэтапный систематический подход, используя метод, который можно использовать для решения множества задач машинного обучения. Этот проект подпадает под то, что широко известно как HR Analytics или People Analytics.

В этом исследовании мы попытаемся решить следующую задачу:

  • Какова вероятность увольнения активного сотрудника из компании?
  • Каковы ключевые показатели увольнения сотрудника из компании?
  • Какие стратегии можно принять на основе результатов для улучшения удержания сотрудников?

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

Примечание. Полный код можно найти в репозитории GitHub и / или в ядре Kaggle.





2. Анализ данных

В этом тематическом исследовании набор данных HR был получен из IBM HR Analytics Employee Attrition & Performance, который содержит данные о сотрудниках для 1470 сотрудников с различной информацией о сотрудниках. Я буду использовать этот набор данных, чтобы предсказать, когда сотрудники собираются уволиться, исходя из основных факторов оттока сотрудников.

Как сказано на сайте IBM: Это вымышленный набор данных, созданный специалистами по данным IBM. Его основная цель заключалась в демонстрации инструмента IBM Watson Analytics для определения увольнения сотрудников .

2.1 Описание данных и исследовательские визуализации

Сначала мы импортируем набор данных и делаем копию исходного файла для этого анализа. Набор данных содержит 1470 строк и 35 столбцов.

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

Давайте разберем столбцы по их типу (например, int64, float64, object):

2.2 Источник данных

В предоставленных данных нет пропущенных значений. В HR Analytics данные о сотрудниках вряд ли будут содержать большое количество пропущенных значений, поскольку HR-отделы обычно хранят все личные данные и данные о занятости.

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

2.3 Обзор числовых характеристик

На основе информации и гистограмм числовых характеристик можно сделать несколько наблюдений:

  • Некоторые числовые особенности тяжеловесны; действительно, несколько распределений смещены вправо (например, MonthlyIncome DistanceFromHome, YearsAtCompany). Для приближения к нормальному распределению перед подгонкой модели к данным могут потребоваться методы преобразования данных.
  • Возрастное распределение представляет собой нормальное распределение, слегка скошенное вправо, при этом основная часть персонала находится в возрасте от 25 до 45 лет.
  • EmployeeCount и StandardHours - постоянные значения для всех сотрудников. Скорее всего, это будут лишние функции.
  • Номер сотрудника, вероятно, будет уникальным идентификатором для сотрудников, учитывая квазиравномерное распределение функции.

2.4 Распределение функций по целевому атрибуту

В этом разделе выполняется более подробная информация о исследовательском анализе данных. Полный код можно найти в репозитории GitHub и / или в ядре Kaggle.

2.4.1 Возраст

Распределение по возрасту для активных и бывших сотрудников отличается только на один год; при среднем возрасте бывших сотрудников 33,6 года и 37,6 лет нынешних сотрудников.

Давайте создадим график оценки плотности ядра (KDE), окрашенный в соответствии со значением цели. Оценка плотности ядра (KDE) - это непараметрический способ оценки функции плотности вероятности случайной величины.

2.4.2 Пол

Гендерное распределение показывает, что в наборе данных наблюдается более высокая относительная доля бывших сотрудников-мужчин, чем бывших сотрудников-женщин, при этом нормализованное гендерное распределение бывших сотрудников в наборе данных составляет 17,0% для мужчин и 14,8% для женщин.

2.4.3 Семейное положение

Набор данных включает три семейных положения: женат (673 сотрудника), холост (470 сотрудников), разведен (327 сотрудников). Одинокие сотрудники показывают самую большую долю увольняющихся - 25%.

2.4.4 Роль и условия работы

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

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

2.4.5 лет в компании и с момента последнего продвижения

Среднее количество лет в компании для работающих в настоящее время сотрудников составляет 7,37 лет, а для бывших сотрудников - 5,13 года.

2.4.6 лет с текущим менеджером

Среднее количество лет, проведенных с нынешним менеджером для работающих в настоящее время сотрудников, составляет 4,37 года, а для бывших сотрудников - 2,85 года.

2.4.7 Сверхурочные

У некоторых сотрудников есть сверхурочные обязательства. Данные ясно показывают, что значительно большая часть сотрудников с OT покинула компанию.

2.4.8 Ежемесячный доход

Ежемесячный доход сотрудников варьируется от 1009 до 19999 долларов.

2.4.9 Целевая переменная: истощение

Функция «Истощение» - это и есть проблема машинного обучения. Мы пытаемся предсказать ценность функции «Убыток», используя другие связанные функции, связанные с личной и профессиональной историей сотрудника.

В предоставленном наборе данных процент Текущих сотрудников составляет 83,9%, а бывших сотрудников - 16,1%. Следовательно, это проблема несбалансированного класса.

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

2.5 Корреляция

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

Как показано выше, «Ежемесячная ставка», «Количество работающих компаний» и «Расстояние от дома» положительно коррелируют с убытком; в то время как «Общее количество рабочих лет», «Уровень должности» и «Количество лет на текущей должности» отрицательно коррелируют с убытком.

3 Заключительные замечания EDA

  • В наборе данных нет отсутствующих или ошибочных значений данных, и все функции относятся к правильному типу данных.
  • Самыми сильными положительными корреляциями с целевыми характеристиками являются: рейтинг эффективности, месячная ставка, количество работающих компаний, расстояние от дома.
  • Самыми сильными отрицательными корреляциями с целевыми характеристиками являются: общее количество рабочих лет, уровень работы, годы на текущей должности и ежемесячный доход.
  • Набор данных несбалансирован с большинством наблюдений, описывающих Активных в настоящее время сотрудников.
  • Одинокие сотрудники показывают самую большую долю уволившихся по сравнению с их коллегами, состоящими в браке и разведении.
  • Около 10% выпускников ушли, когда они достигли своего 2-летнего юбилея в компании.
  • У людей, которые живут дальше от работы, доля бросивших школу выше, чем у их сверстников.
  • У людей, которые часто путешествуют, доля выбывших выше, чем у их сверстников.
  • У людей, которые работают сверхурочно, доля увольняемых выше, чем у их сверстников.
  • Сотрудники, которые ранее уже работали в нескольких компаниях (уже «перебрасывались» между рабочими местами), показывают более высокую долю увольняемых по сравнению с их коллегами.

4. Трубопровод предварительной обработки

В этом разделе мы предпринимаем шаги предварительной обработки данных для подготовки наборов данных для реализации алгоритма машинного обучения. Полный код можно найти в этом репозитории GitHub и / или ядре Kaggle.

4.1 Кодирование

Алгоритмы машинного обучения обычно могут иметь только числовые значения в качестве переменных-предикторов. Следовательно, Кодирование меток становится необходимым, поскольку они кодируют категориальные метки с числовыми значениями. Чтобы избежать придания важности категориальным характеристикам с большим количеством уникальных значений, мы будем использовать как Кодирование метки, так и Быстрое кодирование, как показано ниже.

4.2 Масштабирование функций

Масштабирование функций с использованием MinMaxScaler существенно сужает диапазон, так что теперь диапазон составляет от 0 до n. Алгоритмы машинного обучения работают лучше, когда входные числовые переменные попадают в аналогичную шкалу. В этом случае мы масштабируем от 0 до 5.

4.3 Разделение данных на наборы для обучения и тестирования

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

5. Построение моделей машинного обучения.

5.1 Базовые алгоритмы

Давайте сначала воспользуемся набором базовых алгоритмов (с использованием готовых гиперпараметров), прежде чем мы перейдем к более сложным решениям. В этом разделе рассматриваются следующие алгоритмы: Логистическая регрессия, Случайный лес, SVM, KNN, Решение. Древовидный классификатор, Гауссовский NB.

Давайте оценим каждую модель по очереди и предоставим точность и стандартное отклонение. Полный код можно найти в этом репозитории GitHub и / или ядре Kaggle.

Точность классификации - это количество сделанных правильных прогнозов как отношение ко всем сделанным прогнозам. Это наиболее распространенная метрика оценки для задач классификации.

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

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

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

5.2 Логистическая регрессия

GridSearchCV позволяет использовать для точной настройки гиперпараметров путем поиска по определенным значениям параметров для оценщика. Как показано ниже, результаты GridSearchCV предоставили нам точно настроенный гиперпараметр с использованием ROC_AUC в качестве показателя оценки.

5.3 Матрица неточностей

Матрица путаницы дает нам гораздо более подробное представление об оценке точности и о том, что происходит с нашими этикетками - мы точно знаем, какие и как метки были правильно и неверно предсказаны. Точность классификатора логистической регрессии на тестовом наборе составляет 75,54.

5.4 Вероятность метки

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

5.5 Классификатор случайного леса

Давайте подробнее рассмотрим использование алгоритма случайного леса. Я настрою гиперпараметры алгоритма случайного леса путем перекрестной проверки по шкале AUC.

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

Случайный лес помог нам определить 10 самых важных показателей (ранжированных в таблице ниже): (1) ежемесячный доход, (2) сверхурочное время, (3) возраст, (4) месячная ставка, (5) DistanceFromHome, (6) DailyRate, (7) TotalWorkingYears, (8) YearsAtCompany, (9) HourlyRate, (10) YearsWithCurrManager.

Точность регрессионного классификатора RandomForest на тестовом наборе составляет 86,14. Ниже показана соответствующая матрица неточностей.

Прогнозирование вероятностей конкретного лейбла дает нам возможность оценить, насколько вероятно, что сотрудник уйдет из компании. AUC при прогнозировании вероятностей с помощью RandomForestClassifier составляет 0,818.

5.6 Графики ROC

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

Как показано выше, оптимизированная модель логистической регрессии показала более высокий показатель AUC по сравнению с классификатором случайного леса.

6. Заключительные замечания

6.1 Оценка риска

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

Сотрудники могут присваивать «рейтинг риска» на основе прогнозируемого ярлыка, а именно:

  • Низкий риск для сотрудников с рейтингом ‹0,6
  • Средний риск для сотрудников с рейтингом от 0,6 до 0,8.
  • Высокий риск для сотрудников с ярлыком ›0,8

6.2 Индикаторы и стратегический план удержания

К наиболее сильным индикаторам ухода людей относятся:

  • Ежемесячный доход: люди с более высокой зарплатой с меньшей вероятностью покинут компанию. Следовательно, необходимо приложить усилия для сбора информации об отраслевых ориентирах на текущем местном рынке, чтобы определить, обеспечивает ли компания конкурентоспособную заработную плату.
  • Со временем: люди, которые работают сверхурочно, с большей вероятностью покинут компанию. Следовательно, должны быть предприняты усилия для заблаговременного определения масштабов проектов с соответствующей поддержкой и человеческими ресурсами, чтобы сократить использование сверхурочной работы.
  • Возраст: сотрудники в относительно молодой возрастной группе 25–35 лет увольняются с большей вероятностью. Следовательно, необходимо приложить усилия, чтобы четко сформулировать долгосрочное видение компании и молодых сотрудников, соответствующих этому видению, а также предоставить стимулы в виде, например, четких путей к продвижению по службе.
  • DistanceFromHome: сотрудники, которые живут дальше от дома, с большей вероятностью покинут компанию. Следовательно, следует прилагать усилия для оказания поддержки в виде транспортных услуг компании для групп сотрудников, покидающих одну и ту же территорию, или в форме транспортных надбавок. Первоначальная проверка сотрудников по месту их проживания, вероятно, не рекомендуется, поскольку это будет рассматриваться как форма дискриминации, если сотрудники каждый день приходят на работу вовремя.
  • TotalWorkingYears: более опытные сотрудники с меньшей вероятностью уйдут. Сотрудники со стажем от 5 до 8 лет должны быть идентифицированы как потенциально подверженные более высокому риску увольнения.
  • YearsAtCompany: у лояльных компаний меньше шансов уйти. Сотрудники, которым исполнилось два года, должны быть идентифицированы как потенциально подверженные более высокому риску увольнения.
  • YearsWithCurrManager. Многие выпускники уезжают через 6 месяцев после того, как их нынешние менеджеры. Используя сведения о линейном менеджере для каждого сотрудника, можно определить, у какого менеджера было больше всего увольнений сотрудников за последний год.

Здесь можно использовать несколько показателей, чтобы определить, следует ли выполнять какие-либо действия с линейным менеджером:

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

6.3 Заключительные мысли

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

Чтобы получить больше подобного контента, подпишитесь на меня в Twitter, где я делюсь практическими примерами и приложениями для машинного обучения.

Надеюсь, вам понравилось читать эту статью так же, как и мне ее писать.
Еще раз, чтобы получить полный код, пожалуйста, обратитесь к этому репозиторию GitHub и / или Kaggle Ядро .