R语言K-中心点聚类分析

Posted 数据分析艺术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言K-中心点聚类分析相关的知识,希望对你有一定的参考价值。




K-中心点算法与K-means算法在原理上相近,不同的是,K-中心点算法在选择中心点时不取样本均值点,而是在类别内选取到其余样本距离之和最小的样本为中心点。

K-中心点算法主要是用cluster软件包中的pam()函数来实现的。该函数的基本格式为:

pam(x, k, diss = inherits(x, "dist"), metric = c("euclidean", "manhattan"), medoids = NULL, stand = FALSE, cluster.only = FALSE,    do.swap = TRUE,    keep.diss = !diss && !cluster.only && n < 100,    keep.data = !diss && !cluster.only,    pamonce = FALSE, trace.lev = 0)

其中x表示待处理数据集,k表示类别数;metric用于选择样本点间距离测算的方式,包括"euclidean",和"manhattan";medoids默认为NULL时,表示由软件选择初始中心点样本,也可手动设定k维向量来指定初始点;stand表示聚类前是否需要标准化;cluster.only默认为FALSE,为TRUE表示仅获取样本类别。

读取数据集。

Tourism_shares=read.csv("Tourism_shares.csv",head=T,encoding="utf-8")

head(Tourism_shares)

dim(Tourism_shares)

2  进行聚类分析。

library(cluster)#加载软件包

fit_pam1=pam(na.omit(Tourism_shares[,3:6]),k=3)#采用k中心点算法将数据集分为k=3类

print(fit_pam1) #输出聚类结果

结果中的Medoids指明了具体第几个样本为各类别的中心点。

R语言K-中心点聚类分析

3  保存每个样本的所属类别。

Tourism_shares["K_Medoids_cluster"]=fit_pam1$cluster

head(Tourism_shares)#查看数据

和前面的K-means聚类结果对比,可以发现不同样本点在两种算法的聚类结果是有差别的。

4  绘制散点图。

plot(Tourism_shares[,3:6],pch=fit_pam1$cluster-1)




以上是关于R语言K-中心点聚类分析的主要内容,如果未能解决你的问题,请参考以下文章

「聚类分析」16聚类分析之KMeans算法与K中心点算法

R语言应用实战-聚类分析以及k-means的优缺点

R语言生成仿真的3D高斯簇数据集使用scale函数进行数据缩放并使用KMeans进行聚类分析数据反向缩放并比较聚类生成的中心和实际数据的中心的差异预测新的数据所属的聚类簇

基于R语言的分类、聚类研究

谁能告诉我SPSS中的K聚类分析怎么人为指定初始的聚类中心呢?内有截图,求大神告诉我怎么设置。

R语言使用K-Means聚类可视化WiFi访问