Advertisement

r语言聚类分析_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表示仅获取样本类别。

1 读取数据集。

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

head(Tourism_shares)

dim(Tourism_shares)
f08d99c820e2b45d40005995b7545277.png

2 进行聚类分析。

library(cluster)#加载软件包

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

print(fit_pam1) #输出聚类结果

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

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

Tourism_shares["K_Medoids_cluster"]=fit_pam1$cluster

head(Tourism_shares)#查看数据

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

4 绘制散点图。

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

全部评论 (0)

还没有任何评论哟~