【发布时间】:2015-01-21 07:13:17
【问题描述】:
我想找到一种可以规避 k-Means 一些缺点的算法:
给定:
x<- c(4,4,5,5,6,7,8,9,9,10,2,3,3,4,5,6,6,7,8,8)
y<- c(2,3,3,4,4,5,5,7,6,8,4,5,6,5,7,8,9,9,9,10)
matrix<-cbind(x,y)# defining matrix
Kmeans<-kmeans(matrix,centers=2) # with 3 centroids
plot(x,y,col=Kmeans$cluster,pch=19,cex=2)
points(Kmeans$centers,col=1:3,pch=3,cex=3,lwd=3)
在这里我想要一个算法将数据聚类成两个簇,从左角到右角被对角线划分。
【问题讨论】:
-
这不会最大程度地减少组内惰性,对吗?因此,我认为您正在寻找不聚类的东西。你有没有想过拟合两条线?或者尝试拟合高斯混合?真正的问题是:为什么你认为你的团队应该是这样的?
-
嗯,这似乎是一个自然的选择。我的意思是显然有一些线性。但是我想找到一个集群算法,它可能接近我对这两个集群的感觉。
-
我认为在这种情况下混合高斯可能会很好。该算法将自动选择您需要的集群数量(此处为 2)及其相关结构(此处为 45° 拉伸)。我还不知道你需要什么包,但应该不难找到。
标签: r cluster-analysis k-means