Как сегментировать новые данные с помощью существующей модели K-средних?

Я построил модель сегментации, используя кластеризацию k-средних.

Кто-нибудь может описать процесс присвоения новых данных этим сегментам?

В настоящее время я применяю те же преобразования/стандартизации/выбросы, что и для построения модели, а затем вычисляю евклидово расстояние. Минимальное расстояние — это отрезок, в который попадает запись.

Но я вижу, что большинство попадают в один конкретный сегмент, и мне интересно, не пропустил ли я что-то по пути?

Спасибо


person wilsonm2    schedule 08.08.2013    source источник


Ответы (1)


Классификация нового наблюдения на основе евклидова расстояния до ближайшего среднего может работать для некоторых сценариев, однако игнорирует форму/размер исходного кластера.

Один из способов обойти это — использовать исходные данные кластера для помощи в классификации каждого нового наблюдения (например, с помощью KNN http://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm)

В качестве альтернативы вы можете рассмотреть возможность использования альтернативного метода кластеризации, такого как Mixture of Gaussian:
http://en.wikipedia.org/wiki/Mixture_model
http://home.deib.polimi.it/matteucc/Clustering/tutorial_html/mixture.html

Используя это, вы получите не только среднее значение для каждого кластера, но и дисперсию. Затем для каждого нового наблюдения вы можете вычислить вероятность того, что оно принадлежит каждому кластеру. Эта вероятность будет учитывать исходный размер/форму кластера. Также лучше работать с типовым типом «мягкого» подхода, потому что он говорит вам, насколько сильно каждое новое наблюдение принадлежит каждому кластеру, и вы можете делать такие вещи, как пометить наблюдения как выбросы, которые больше, чем некоторое количество стандартных отклонений от всех кластеров. .

person mattnedrich    schedule 06.01.2014