Исходя из вашего описания, не думайте, что тесты являются последовательностями.Находятся ли тесты в определенном порядке, и порядок важен для ответа на ваш вопрос?
Предполагая, что они не упорядочены или порядок не важен, вы можете рассматривать каждый тест как измерение в векторном пространстве, например:
test1 test2 test3 class
person1 3 0 1 A
person2 5 7 9 C
Для задачи классификации вы можете попробовать контролируемые модели обучения, такие как линейная регрессия или случайный лес.
Чтобы найти ближайшего соседа, просто вычислите косинусное сходство между каждой парой людей,Счет 1 - similarity
можно использовать для поиска самого дальнего человека.Альтернативы косинусному подобию включают евклидово расстояние.
Вот простой код Python для вычисления косинусного сходства:
def dot(v1, v2):
return sum([x1*x2 for x1, x2 in zip(v1, v2)])
p1 = [3, 0, 1]
p2 = [5, 7, 9]
cosine = dot(p1, p2) / ((dot(p1, p1) ** 0.5) * (dot(p2, p2) ** 0.5))