# Which Machine Learning technique for simple f(x, y) = z?

Hi guys,

I'm looking for best way to predict on which part of the screen the user is looking at (output) based on eye to markers position (input). I've managed to describe input as two doubles X, Y and working on calibration method that will connect this pair with Z (area ID, at which the user is looking for particular X, Y pair) - that will be my "training data". So, it's basically f(X, Y) = Z.

My initial idea was to use machine learning provided by OpenCV. I've read some articles, mainly on SVM and ANN (MLP), but I kinda feel like that's too much of weaponery for such a trivial task. The most important aspect for me is fast learning and prediction, as it's suppose to work nearly real-time.

My question is, which method of ML should I choose for this purpose? Maybe there's even more trivial way of achieving my goal?

edit retag close merge delete

Sort by ยป oldest newest most voted

It's likely that K-Nearest neighbors will solve your problem neatly. Take a look at the different techniques, and look them up on wikipedia to see which one matches the assumptions of your domain the best. If the same Z applies to most X,Y pairs in one location, KNN is good. If your system is described by Gaussian distributions over X and Y, then look at EM.

But based on your description, I expect KNN to work well.

more

I'll check it out (maybe even today) and let you know how it works. Thanks for your input!

( 2016-04-05 06:46:57 -0500 )edit
1

Or if you want a very simple binary classifier, you could investigate the naive bayes classifier, which is easy fast to train and works perfectly fine in clear separable data cases!

( 2016-04-05 07:07:43 -0500 )edit
1

In case of fake data KNN works like a charm :) I've decided to use it for my final solution then :) Maybe I'll have to do some tweaks but it's so elegantly simple (you only manipulate k param for the amount of closest points returned) that I believe I won't have much work with it. Thank you Tetragramm for your answer! I'm glad I haven't dived into SVM and MLP :) I'm accepting your answer :)

( 2016-04-06 05:14:58 -0500 )edit