At each iteration calculate MAE for all of the items (pick next item randomly)
Profiling
May add enhancement that uses only top n neighbors. Might implement by using group by and count (neighbor that has the most items in common should be seleted).
Could select best on two criterions:
1) the users have rated the most items in common
[optional]
2) the user have rated the most test items (if use this criteria for all of the methods, it is a fair one)
unexpected results for Random (MAE does not decrease)
Double check that correlation is calculated correctly
double check MAE calculation etc.