evaluate matching using Normalized Discounted Cumulated Gain
fix missing categories
compute NDCG faster by using scipy.cdist instead of kNN
perfect_score should never be zero
evaluate random matching as baseline