Я знаю, что есть алгоритм кластеризации k-средних и k-медиана. Один использует среднее в качестве центра кластера, а другой использует медиану. Мой вопрос: когда и где использовать что?
clustering
k-means
Джек Твен
источник
источник
Ответы:
k-means минимизирует дисперсию внутри кластера, которая равна квадрату евклидовых расстояний.
В общем, среднее арифметическое делает это. Он не оптимизирует расстояния, а возводит в квадрат отклонения от среднего.
k-медианы сводит к минимуму абсолютные отклонения, что равно расстоянию до Манхэттена.
В общем, медиана на ось должна делать это. Это хорошая оценка для среднего значения, если вы хотите минимизировать сумму абсолютных отклонений (то есть sum_i abs (x_i-y_i)) вместо квадратов.
Это не вопрос точности. Это вопрос правильности. ;-)
Итак, вот ваше дерево решений:
Некоторые исключения: насколько я могу судить, максимизация косинусного сходства связана с минимизацией квадрата евклидова расстояния на L2-нормализованных данных. Так что если ваши данные L2 нормализованы; и вы l2 нормализуете свои средства каждую итерацию, затем вы можете снова использовать k-средства.
источник
Если вы хотите провести анализ, не касающийся возможного влияния экстремальных значений, используйте k средних, но если вы хотите быть более точным, используйте k медианы
источник