1
$\begingroup$

I have asked in a few places and this seems to get downvoted for some reason. If this is not the place to ask this then some advice on how and where to ask it would be appreciated.

I'm creating a web platform 2 sided market that matches available consultants to short term contracts.

We currently have a rules-based algorithm that matches based on a small number of features like industry, job title, rate, and availability. For that list of consultants, It then calculates a percentage match based on other features like skill set, qualifications, certifications, years of service, etc.

We have data on candidates that were accepted and candidates that were rejected.

I've spent a year revising maths, statistics, and studying basic machine learning with python. But I am no closer to understanding how machine learning could be used to match consultants to assignments.

I assume what I need to look into is feature engineering and some sort of classification algorithm. It would seem that a contract assignment would have an ideal candidate and so we are matching all other candidates to the features of the ideal. Is it some sort of unsupervised learning to classify the candidates into groups and putting forward those candidates that fall in the same group?

Does anyone have an idea on how best this would best be done?

I am looking at what to study to get closer to a solution so any advice to so that I can get to a point of understanding how this could best be done would be appreciated.

$\endgroup$
0
$\begingroup$

One way to frame the problem as approximate nearest neighbors retrieval.

Given a set of features for a posting, what are the nearby candidates? Or given a set of features for posting, what are nearby candidates?

In order to find the nearest neighbors, all entities need to be in the same feature space. That features space can be a learned embedding. One implementation of learned embedding is StarSpace.

| improve this answer | |
$\endgroup$
0
$\begingroup$

Very likely, there is too much noise in the data. Meaning there are hidden pieces of information that are dominating the decision for acceptance or not, which you don't find in the data. For example, if the client finds the consultant sympathic. Or if the client had a good day when deciding about the consultant.

I doubt that the rule system is overly complicated, so my advise is to stay with it.

If you want to get started with machine learning, look for MNIST examples (a handwritten digits dataset) and I recommend to use Keras with Tensorflow as a Backend.

(by the way: I'm a machine learning ;-) )

| improve this answer | |
$\endgroup$
  • $\begingroup$ Thanks Martin. I thought as much about keeping the rules based engine because in my mind we just don't have enough data to present a normal distribution and like you say it could easily be biased. Thanks for the tips. You are the second person who has told me to look into Keras as it makes Tensorflow that bit easier.. $\endgroup$ – Wayne Thompson Nov 30 '18 at 8:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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