A program to recognize and reward our most engaged community members
// finding next k neighbours and their distancesCollection<Tupel<Double, Integer>> neighbours = samples.getNearestValueDistances(k, values);for (Tupel<Double, Integer> tupel: neighbours) { totalDistance += tupel.getFirst();}double totalSimilarity = 0.0d;if (totalDistance == 0) { totalDistance = 1; totalSimilarity = k;} else { totalSimilarity = Math.max(k - 1, 1);}// counting frequency of labelsfor (Tupel<Double, Integer> tupel : neighbours) { counter[tupel.getSecond()] += (1d - tupel.getFirst() / totalDistance) / totalSimilarity;}