0
点赞
收藏
分享

微信扫一扫

R语言书籍学习02 《R语言数据分析、挖掘建模与可视化》-第十五章 Kmeans聚类分析

TiaNa_na 2022-02-18 阅读 55

Kmeans聚类

该算法可以将数据划分为指定的K个簇,中心点是各簇样本均值计算所得。

#普通kmeans算法
kmeans(x,centers,iter.max=1-,nstart=1,trace=FALSE, algorithm=c("Hartigan-Wong","Lloyd","Forgy","MacQueen")
# centers: 指定聚类的个数或者认为设定初始簇中心
#iter.max: 最大迭代次数

#kmeans++算法
kmeanspp(data,k=2,start="random",iter.max=100,nstart=10,...)
#k 指定聚类个数

诚然,关于聚类分析,特别是Kmeans聚类分析众多读者已经熟知, 我们暂且不去了解其核心的原理的数学表达,而是思考如克确定最佳的K值,即如何评价K值。

最佳K值的确定

书中介绍了三种评估方法,分别是簇内离差平方和拐点法、轮廓系数法和间隔统计量法。

拐点法

在不同的k值下计算簇内离差平方和。

轮廓系数法

目标为S接近1

其中 b(i)表示的是簇间离散度 a(i)是密集性。

可以直接h2使用bios2mds包中的sil.score函数。

sil.score(mat,nb.clus=c(2:13),nb.run=100,iter.max=1000,method="euclidean
#nb.clus 指定聚类个数的范围,默认为2~13个

Gap Statistic

在R语言里面具有现成的函数计算聚类的间隔统计量,那就是cluster包中的clusGap函数,可以返回不同k值下的Gap值和sk值。

clusGap(x,FUNcluster,K.max,B=100)
#K.max 指定聚类的最大数量

 

举报

相关推荐

0 条评论