Алгоритм поиска схожих объектов?

Здравствуйте!


Предполагаем, что схожесть некоторых объектов мы можем вычислить путем вычисления метрики относительно классификации объектов разными классификаторами.


Т.е. у каждого объекта для каждого классификатора имеем своё соответствие.


Вопрос:


как быстро найти n наиболее (или наименее) схожих объектов для объекта X, когда порядок объектов исчисляется десятками миллионов, а классификаторов десятками тысяч?
  • Вопрос задан
  • 3601 просмотр
Пригласить эксперта
Ответы на вопрос 4
vgrichina
@vgrichina
Если нужно сгруппировать очень большое количество объектов то стоит попробовать создать хеш-функцию для результатов классификатора (такую чтоб она обязательно выдавала одинаковые хешы для объектов предположительно одной группы, но не гарантировала что объекты с одинаковым хешем были в одной группе).

Имея хеш функцию мы уже спокойно можем отсортировать объекты по ее значению даже если все значения хешей не помещаются в оперативную память (можно использовать B-tree например).

А вот уже после сортировки на группы с одинаковыми хешами можно применять более точные алгоритмы чтоб разбить эти группы на искомы подгруппы, так как область поиска будет уже значительно меньше.
Ответ написан
Комментировать
Vas3K
@Vas3K
Отсортировать и сгруппировать по критериям. MapReduce.
Ответ написан
mastedm
@mastedm
Может попробовать использовать самоорганизующуюся карту Кохонена?
Ответ написан
alexeygrigorev
@alexeygrigorev
Переворачиватель пингвинов
Я бы использовал кластерный анализ для этого. Алгоритм ФОРЕЛЬ работает достаточно быстро, можно посмотреть в его сторону.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы