Присвоение меток классов кластерам k-средних

10

У меня есть очень простой вопрос о кластеризации. После того, как я нашел k кластеров с их центроидами, как мне интерпретировать классы точек данных, которые я кластеризовал (назначая значимые метки классов каждому кластеру). Я не говорю о проверке найденных кластеров.

Можно ли это сделать с помощью небольшого набора точек данных, вычислить, к какому кластеру принадлежат эти маркированные точки и на основании типа и количества точек, которые получает каждый кластер, определить метку? Это кажется довольно очевидным, но я не знаю, насколько стандартно назначать метки кластерам таким образом.

Чтобы было ясно, я хочу выполнить кластеризацию без контроля, которая не использует никаких меток, чтобы сначала найти мои кластеры. Затем, найдя кластеры, я хочу назначить значимые метки классов кластерам на основе свойств нескольких примеров точек данных.

Riyaz
источник
Я не уверен, что понимаю ваш вопрос: обычно любой алгоритм k-средних должен возвращать информацию о членстве в классе для каждой точки данных. Вы говорите о реальных точках данных или новых наблюдениях?
chl
@chi Я подозреваю, что Рияз заинтересован в поиске имен для маркировки кластеров и говорит об априорном именовании некоторых точек, а затем использует некоторый алгоритм, который учитывает преобладание именованных точек в кластерах, чтобы затем называть эти кластеры.
Glen_b
2
@Riyaz, можем ли мы использовать следующую аналогию с Факторным анализом, чтобы понять ваш вопрос? Часто кто-то анализирует набор переменных, чтобы объединить их в группы переменных, которые, кажется, «слипаются», но тогда аналитику необходимо подумать о природе переменных, составляющих каждый кластер, с именем / способ мышления о том , что каждый кластер (фактор) является . Это по сути то, что вы получаете здесь?
gung - Восстановить Монику

Ответы:

4

Да. То, что вы предлагаете, является полностью стандартным, и именно так стандартное программное обеспечение k-means работает автоматически. В случае k-средних вы вычисляете евклидово расстояние между каждым наблюдением (точкой данных) и средним значением каждого кластера (центроид) и назначаете наблюдения наиболее похожему кластеру. Затем метка кластера определяется путем изучения того, что средние характеристики наблюдений классифицированы для кластера относительно средних значений тех, которые относятся к другим кластерам.

Тим
источник
3

Если вы посмотрите на имена в вашем объекте kmeans, вы заметите, что существует объект «кластера». Он содержит метки классов, упорядоченные так же, как ваши входные данные. Вот простой пример, который привязывает метки кластера к вашим данным.

x <- data.frame(X=rnorm(100, sd=0.3), Y=rnorm(100, mean=1, sd=0.3))

k <- kmeans(x, 2) 
names(k)
x <- data.frame(x, K=k$cluster)

# You can also directly return the clusters
x <- data.frame(x, K=kmeans(x, 2)$cluster)
Джеффри Эванс
источник
0

Метки для кластера могут основываться на классе основных выборок в кластере. Но это верно только в том случае, если количество кластеров равно количеству классов.

user101780
источник