Чтобы убедиться, что я правильно понимаю проблему: каждый образец образует очень редко заполненный вектор.Пропущенные данные различаются в разных выборках, поэтому трудно использовать евклидову или другую метрику расстояния для измерения сходства выборок.
Если это такой сценарий, я уже видел эту проблему раньше в машинном обучении - вконкурс на призы Netflix, но не относится к KNN.Сценарий там был довольно похожим: у каждого профиля пользователя были оценки для некоторых фильмов, но почти никто не видел все 17 000 фильмов.Средний профиль пользователя был довольно скудным.
У разных людей были разные способы решения проблемы, но насколько я помню, они включали фиктивные значения для пропущенных значений, обычно среднее значение определенного значения для всехобразцы с данными.Затем они использовали евклидово расстояние и т. Д. Как обычно.Вы, вероятно, все еще можете найти обсуждения, связанные с этой проблемой отсутствующих ценностей, на этих форумах.Это было особенно распространенной проблемой для тех, кто пытался реализовать разложение по сингулярным числам, которое стало довольно популярным и поэтому обсуждалось совсем немного, если я правильно помню.
Вы можете начать здесь: http://www.netflixprize.com//community/viewtopic.php?id=1283
Вам придется немного покопаться.У Саймона Фанка был немного другой подход к этому, но он был более специфичным для SVD.Вы можете найти его здесь: http://www.netflixprize.com//community/viewtopic.php?id=1283 Он называет их пробелами, если вы хотите перейти к соответствующим разделам.
Удачи!