5
$\begingroup$

I have a machine learning problem to solve. Given the data about employees, is there a way by which we could possibly predict that when an employee is going to switch his current job?

We can make use of all the publicly available data like the user's public profile on LinkedIn, Stack Overflow, Github etc. (Not sure if we even need these profiles or not). Also, if there is a way to solve the problem using Machine Learning, please suggest me what model should I use for it and the input variable involved.

My current approach involves using a user-user collaborative filtering where we try to predict the employees switching period based on the switching period of similar employees in his/her neighborhood. The parameters that can be used to find similarity among the employees could be:

  • The time they have spent in their previous companies.
  • Their qualifications, like number of degrees, types of companies they have worked in etc.
  • Total years of experience.
  • Location of the users.

I have't thought deep into the problem yet. I wanted some suggestions before starting with it. Any kind of help on this question will be really appreciated.

$\endgroup$
6
  • 2
    $\begingroup$ This sounds like a fit for survival models, proportional hazards etc. $\endgroup$
    – Aksakal
    Commented May 21, 2015 at 12:36
  • 3
    $\begingroup$ You may want to google for "churn prediction" and similar, which is the term that mobile phone companies use for customers that cancel their contract, which is similar to your problem. $\endgroup$ Commented May 21, 2015 at 12:38
  • $\begingroup$ @Aksakal could you be a little more specific? How am i suppose to use the survival models. $\endgroup$
    – brother
    Commented May 22, 2015 at 9:34
  • $\begingroup$ @StephanKolassa That was really helpful. Now I have a few more ideas in my mind! $\endgroup$
    – brother
    Commented May 22, 2015 at 9:35
  • $\begingroup$ @brother the survival time would be the time staying at this job. I think two most common approaches are survival (e.g. proportional cox hazard) and logistic. Logistic would model the probability of switching a job in any given period. This is common in loan prepayment and default modeling, as well as in life insurance, to give you examples in finance $\endgroup$
    – Aksakal
    Commented May 22, 2015 at 12:23

1 Answer 1

1
$\begingroup$

This is not really a question one can answer on SO, since a full solution will require iterations by a data scientist looking at the data, an progressively building out a model.

The best we can do in this context is to provide an initial approach that one might follow in the first iterations. I will make such an attempt here:

It is my guess that the signals that will turn out to be salient will not be deeply interacting (this is a good thing, means we can arrive at a model even with a very large number of features with much less data). So a classifier simple classifier like naive-bayes would suffice.

The features themselves will be the trick. It is my intuition that basic demographic data (like years worked, and years at prior company) etc. combined into a few features that could provide some background estimate of the likely hood of switching jobs (for example the percentage that the current job stay is of the average over prior job stays, etc.) But the real timely indicators will probably come from social signals like changes to ones linked-in profile, number of new linked-in contacts created per week, spikes in tweeting behavior, etc.

The idea here would be to create dozens of hypotheses about things people do when getting ready to switch jobs, and the creating data features that could detect such shifts.

After building the best demographic model I could, and building the best social signals model I could, then I would look for ONE level of interacting features. Specifically I would look to see if there were secondary tempering signals that would suggest cases where a social signal did or did not indicate a job move.

One would use ones training data to search for all pairs of features where P(job-change|f1) was quite different from P(job-change|f1,f2). These are cases where a secondary signal is providing confirming evidence of intent to change jobs, or an alternate explanation for the signal.

e.g. for example a spike is tweets is an interesting signal, and is more interesting in the context of a edits the the social profiles on line, but is less interesting in the context of an annual conference where many of their peers in the same linked-in groups also show a spike in postings.

It is the idiosyncratic analysis of these signals that will really pay off in the biggest ways.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.