1
$\begingroup$

I am working on a problem(non competition) from hacker rank https://www.hackerrank.com/challenges/predict-missing-grade

Basically you're given test data of a bunch of students of their scores in other subjects but math and you are to predict their score in math based off all their other test scores. Say you were passed data of

{"SerialNumber":1,"English":1,"Physics":2,"Chemistry":3,"ComputerScience":2}

How would you go about generating that student's score in mathematics or coming up with a prediction engine to generate the math score? I know that's the whole point of this question but can someone give me a hint or a resource to go to so I can have a chance of figuring this out and actually get started? I really want to learn.

$\endgroup$

2 Answers 2

1
$\begingroup$

What you are looking for is a machine learning algorithm. Although the easiest way would be to take the average scores and use that, there are much more accurate ways to make predictive models.

This was the first data science tutorial I did. It's perfect for getting started. Here is it in R and in Python.

If you're looking for a short answer, something you can just look up how to implement, I'd check out Random Forests.

$\endgroup$
2
  • $\begingroup$ You know one for Java? I am not familiar with python and R that well. $\endgroup$ Commented Feb 19, 2015 at 7:20
  • $\begingroup$ Check out Weka. I'm not familiar with Java though. Seems like a good question to ask here if it hasn't been asked already $\endgroup$ Commented Feb 19, 2015 at 18:07
1
$\begingroup$

I would actually try out regression. Also, don't make the mistake of using the serial number in your machine learning algorithms! The reason why I'm suggesting regression as opposed to 'better' machine learning algorithms is because you said you wanted to learn, and it's important to understand the algorithms (for the long run, and to truly be good at this stuff) that you're using. Regression is the easiest tool in the book that works quite well! Weka is so easy to use that you'll be able to plug and play different machine learning algorithms just for the sake of it. Another pointer that's won me several competitions is to do some feature selection before using regression/machine learning. For example, in your case, it is reasonable to assume that a student who scores high in Physics probably has a better chance of scoring high in Math as opposed to someone who scores high in English (but not necessarily Physics). If you have enough data, the algorithm itself will be able to deduce these positive/negative correlations and train the model accordingly. Sometimes, there isn't enough data, and you have to do some feature selection. Good luck! I'm a regular participant on Kaggle myself, and I think it's great that you're taking the 'hacker' route to learn more. It's the best way to get your hands dirty on real data and engineering problems.

$\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.