Я хочу сгруппировать различные распределения вероятностей в виде гистограмм. У меня есть набор данных с> 10 млн наблюдений. Одно наблюдение имеет 5 различных гистограмм (> 100 признаков). Целью кластеризации является сокращение данных путем создания кодовой книги/прототипов, с помощью которых я могу представлять распределения исходного набора данных.
Теперь я не уверен, что это лучший способ сделать это. Идеи:
- Использование нормального алгоритма k-средних искрового мл с евклидовыми расстояниями.
- Попробуйте реализовать другую меру расстояния для k-средних на искре (например, Кульбак Лейблер, Дженнсен Шеннон) (https://github.com/derrickburns/generalized-kmeans-clustering или http://www.scalaformachinelearning.com/2015/12/kullback-leibler-divergence-on-apache.html)
- Внедрите SOM в Spark для кластеризации распределений с использованием пользовательских функций расстояния (не уверен, что это возможно для такого большого набора данных. Можно ли создать собственный алгоритм в Spark, который будет работать поэтапно, но требует объединения результатов в каждый шаг?)
Как бы вы оценили идеи? Осуществимы ли они? Я упускаю из виду явно более эффективное/простое решение? Любые подсказки будут очень признательны!