k均值聚类中的Gower距离和余弦距离

k均值聚类中的Gower距离和余弦距离,r,cluster-analysis,R,Cluster Analysis,我正在努力理解R语言的一些基础知识。昨天,我为自己做了一个小练习: R中的聚类 到目前为止,我设法对欧几里德和曼哈顿方法进行了一些计算 resultEuclidean <- Kmeans(myData, 6, method = "euclidean"); resultManhattan <- Kmeans(myData, 6, method = "manhattan"); ResulteCliedean k-均值最小化方差,而不是距离 k-means最小化距离是一个相当常见的误解,

我正在努力理解R语言的一些基础知识。昨天,我为自己做了一个小练习:

R中的聚类

到目前为止,我设法对欧几里德和曼哈顿方法进行了一些计算

resultEuclidean <- Kmeans(myData, 6, method = "euclidean");
resultManhattan <- Kmeans(myData, 6, method = "manhattan");
ResulteCliedean k-均值最小化方差,而不是距离
k-means最小化距离是一个相当常见的误解,因为它“将每个点指定给最近的质心”。但这只是k-means的一半。K-均值然后重新计算中心,这不会使其他距离最小化,但只会使很少的距离最小化

平均值是一个最小二乘估计值,它最小化了
和d(x[d]-中心[d])^2
。也就是说,它最小化平方欧几里德

如果在将点指定给中心时也使用平方欧几里得,则该方法将可靠地工作并收敛

这严重限制了k-均值(Bregman发散)可以使用的距离。对于其他距离,例如PAM(围绕medoid的分区),其中medoid是到所有其他集群成员的距离最小(使用任何度量)的对象。通过将平均值替换为medoid,可以将medoid概念转换为k-means。然后您将获得k-medoid。

帮助我们使用dput(head(myData,n=20))、20位或更多的数据位,以便我们可以与您一起从头开始。复制会话中的dput结果并将其编辑到问题中。总的来说,这是一个与众不同的世界。
resultGower <- Kmeans(myData, 6, method="gower");
resultCosine <- Kmeans(myData, 6, method="cosine");
# libraries
library(factoextra);
library(cluster);

install.packages("amap");
library(amap);

# dataset
data("multishapes", package = "factoextra");
myData <- multishapes;
myData$shape <- NULL;

# algorithm
resultEuclidean <- Kmeans(myData, 6, method = "euclidean");
resultManhattan <- Kmeans(myData, 6, method = "manhattan");
resultGower <- Kmeans(myData, 6, method="gower");
resultCosine <- Kmeans(myData, 6, method="cosine");