Я выполняю кластеризацию K с использованием функции kmeans
в R
. После масштабирования моих данных. После того, как я получу кластеры, вместо того, чтобы получать индивидуальное назначение кластера, я хочу, чтобы расстояние каждой точки от центра кластера. Вот код, который я использую.Расстояние от центров кластера после K означает кластеризацию
data=read.csv("C:/Users/My_Folder/data.csv") # A data frame of 200 rows and 20 variables
traindata=data[,c(3,4)] # Features on which I want to do clustering
traindata=scale(traindata,center = T,scale=T) # Feature Scaling
km.result=rep(0,nrow(traindata))
km.cluster = kmeans(traindata, 2,iter.max=20,nstart=25)$cluster
cluster_1_num = sum(km.cluster==1)
cluster_2_num = sum(km.cluster==2)
if(cluster_1_num>cluster_2_num){
km.result[km.cluster==1]=1}
else{
km.result[km.cluster==2]=1}
data$cluster=km.result
Этот код эффективно делит мои 200 рядов на 2 кластера. Вместо меток есть способ получить расстояние от каждой точки от центра кластера. Нужно ли мне масштабировать мои данные до исходных значений.
Как насчет предоставления небольшого воспроизводимого примера для работы? –
@ RomanLuštrik, Ok. Я уже дал код, который я использую. В любом случае, где я могу предоставить CSV-файл моих данных? –
Постройте минимальный, самодостаточный пример. См. [Эту тему] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) о советах о том, как этого достичь. –