В алгоритме кластеризации K-Means (sklearn), как переопределить евклидово расстояние на некоторое расстояние

У меня есть набор документов, я просто хочу сгруппировать связанные документы. В настоящее время я использую векторный файл новостей Google (GoogleNews-vectors-negative300.bin), и с помощью этого векторного файла я получаю вектор, и я использую алгоритм WMD (Word Mover Distance), чтобы получить расстояние между двумя документами. Теперь я хочу интегрировать это с кластеризацией K-средних. По сути, я хочу переопределить функцию расчета расстояния в KMeans. Как я могу это сделать? Любое предложение приветствуется. Заранее спасибо.


person kathir raja    schedule 03.12.2018    source источник


Ответы (1)


Хотя теоретически возможно реализовать k-средние с другими мерами расстояния, это не рекомендуется — ваш алгоритм может перестать сходиться. Более подробное обсуждение можно найти, например. на StackExchange. Вот почему в scikit-learn нет других показателей расстояния.

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

person Lukasz Tracewski    schedule 03.12.2018