Инструмент отсева неэффективных работников на этапе подбора: дерево решения

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

Новый для нашего рынка инструмент принятия решения на основе данных кейса Кейс: отсев неэффективных работников на этапе подбора.
Напомню, мы протестировали кандидатов на входе, они в дальнейшем показали определенные результаты, что позволило разделить их на 1 - неэффективных (или тех, кого не стоило бы брать в компанию) и 2) всех остальных или тех, кого можно принимать.
В предыдущем посте я показал возможности логистической регрессии. Мы выявили две шкалы - Sp и Do, которые позволяют отличать неэффективных от всех остальных.
Главный недостаток логистической регрессии - интуитивно непонятные результаты, диаграмму ROC не предъявишь совету директоров. 
Требуется более наглядный инструмент. Таким инструментом является технология Trees - или дерево принятия решения.

Итак, 

Напоминаю, что мы выявили две шкалы, которые значимо различают неэффективных и остальных:
  • Sp
  • Do
(про то, как выявили, что такое значимость различий, читай 
Визуализируем взаимосвязь тестов и показателей эффективности. 

На этой диаграмме
  • шкала X - показатели кандидатов по шкале Sp теста CPI, 
  • шкала Y - данные шкалы Do теста CPI; 
  • зеленые пирамидки - неэффективные работники, 
  • красные точки - работники, качество работы, которое устраивает работодателя.
График сам подсказывает решение, верно? Прям так и просится провести границу по линии 50 Sp. 
Посмотрим, что нам скажет инструмент Trees
Инструмент отсева неэффективных работников на этапе подбора: дерево решения
Обращаю ваше внимание, что это не человек рисует данное дерево, а машинка (программа R или она же Rstudio). Для спецов в области статистики сообщаю, что я здесь не рассматриваю проблемы оверфитинга и т.п., моя задача - показать инструмент. Инструмент нам предлагает следующую инструкцию принятия решения по кандидату:
  1. если показатели кандидата по шкале Sp больше или равно 50, значит берем на работу
  2. если меньше 50, смотрим шкалу Do.
  3. если Do больше или равно 54, берем кандидата, если меньше, отклоняем кандидатуру.
Красиво?

Комментарии

Alex Brazhenko написал(а)…
Прикольно!
Для Python есть библиотека sklearn для Machine Learning. Эти деревья тоже круто считает.
Эдуард Бабушкин написал(а)…
а Python умеет модель тренировать?)
Анонимный написал(а)…
Вот эта библиотека. Там все основные инструменты для ML.
http://scikit-learn.org/stable/

И разделение на testing|training data, трансформация, масштабирование данных. Естественно можно натренировать модель.

Я сейчас как раз ищу мошенничество в базе данных писем Enron :) (500 Mb архив), использую методики Text learning
Эдуард Бабушкин написал(а)…
неплохо двинулся за это время) поздравляю)
а анализ текста это уже немного про другое
или ты типа задачи про СПАМ = 0, 1?
Анонимный написал(а)…
Не совсем.
Есть задача на тему supervised learning.
Таблица с финансовыми показателями сотрудников Enron.
У каждого сотрудника есть label с названием POI (person of interest) - ну типа, подозреваемый или замешанный каким-либо образом в мошенничестве. Таких в списке 18.

К тому же есть список всех POI. Это 35 человек.
К тому же есть база данных c письмами Enron.

Задача - построить модель, которая будет определять POI.

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

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

И вот тут уже нужно применять text learning.

P.S. круто, в курсе дают именно инструмент, полный алгоритм как стоит работать с данными (определение - выбор фич, трансформация, масштабирование - выбор алгоритма, настройка - оценка, валидация, метрики) и поторение при необходимости, пока не достигнешь нужных характеристик accuracy, recall и т.п.
Эдуард Бабушкин написал(а)…
вот и я сейчас методом тыка набрел на то, что результаты менябтся в зависимости от количества переменных, параметров выборки и т.п..
Гугл в помощь, так и живем)
Alex Brazhenko написал(а)…
О, а Python в дереве решений есть еще такой метод как feature_importances_ - вообще классная вещь. Все переменные ранжирует по значимости. Но в зависимости от метода валидации также получаются разные значения.

Здесь главное понять какая из метрик нам важнее, например, accurcy, recall или precision
т.е. важнее ли нам поймать всех преступников (возможно забрав по пути немного невиновных), либо всех кого ловим, должны быть преступники (оставляя, возможно, на свободе некоторых из них, но также не трогая невиновных)
Эдуард Бабушкин написал(а)…
feature_importances_

Саша, я тебе конечно завидую, хотя в R такое же встречал: и да, очень круто получать то, что планируешь)

вообще таблицы прогноза 2Х2 при всей видимой простоте несут в себе потрясающие возможности

Популярные сообщения из этого блога

Кейсы и проекты клиентов WebSoft, представленные в 2017 году

Цикл статей "Тренды современного HR". 7. Переход HR-сферы в формат Digital. Итоги цикла

ТОП 10 публикаций 2017 года в блоге WebSoft