Skip to content

SanikaVT/Employee-Retention

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Employee-Retention

1. Business Problem

1.1 Context

Our client is the HR department at a large software company.

  • They are rolling out a new initiative that they call "Proactive Retention."
  • The idea is to use data to predict whether and employee is likely to leave.
  • Once these employees are identified, HR can be more proactive in reaching out to them before it's too late.
  • For this initiative, they only care about permanent (non-temp) employees.

1.2 Problems with current approach

Currently, their employee retention process is very retroactive. Once an employee leaves, he or she takes an "exit interview" and shares reasons for leaving. HR then tries to learn insights from that interview and make changes around the company accordingly.

This suffers from 3 main problems:

  • The first problem with this approach is that it's too haphazard. The quality of insight gained from an interview depends heavily on the skill of the interviewer.
  • The second problem is that they can't systematically aggregate insights across all employees who have left.
  • The third problem is that they can't be proactive because they are using exit interviews to drive policy changes.

1.3 Problem Statement

  • The HR department has hired us as data science consultants. They want to supplement their exit interviews with a more proactive approach.
  • They've asked their business intelligence analysts to provide us a dataset of past employees and their status (still employed or already left).

1.4 Business Objectives and Constraints

  • Deliverable: Trained model file
  • Model interprtability is very important
  • Ouput Probabilities along with the prediction
  • No latency constraints

2. Machine Learning Problem

2.1 Data Overview

For this project:

  1. The dataset has 14249 observations for past/present employees.
  2. The observations span 12 different departments.
  3. Each observation includes the employee’s current employment status.

Target variable
'status' – Current employment status (Employed / Left)

Features

Administrative information

  • 'department' – Department employees belong(ed) to
  • 'salary' – Salary level relative to rest of their department
  • 'tenure' – Number of years at the company
  • 'recently_promoted' – Was the employee promoted in the last 3 years?

Workload information

  • 'n_projects' – Number of projects employee is staffed on
  • 'avg_monthly_hrs' – Average number of hours worked per month

Mutual evaluation information

  • 'satisfaction' – Score for employee’s satisfaction with the company (higher is better)
  • 'last_evaluation' – Score for most recent evaluation of employee (higher is better)
  • 'filed_complaint' – Has the employee filed a formal complaint in the last 3 years?

2.2 Mapping Business problem to ML problem

2.2.1 Type of Machine Learning Problem

It is a binary classification task, where given a set of features we need to predict whether the employee is likely to leave or not

2.2.2 Evaluation Metric (KPI)

Since this is binary classification problem, we use the following metrics:

  • Confusion matrix - For getting a better clarity of the no of correct/incorrect predictions by the model
  • ROC-AUC - It considers the rank of the output probabilities and intuitively measures the likelihood that model can distinguish between a positive point and a negative point. (Note: ROC-AUC is typically used for binary classification only). We will use AUC to select the best model.