原文链接:http://tecdat.cn/?p=7275

最近咱们被客户要求撰写对于聚类的钻研报告,包含一些图形和统计输入。

确定数据集中最佳的簇数是分区聚类(例如k均值聚类)中的一个根本问题,它要求用户指定要生成的簇数k。

一个简略且风行的解决方案包含查看应用分层聚类生成的树状图,以查看其是否暗示特定数量的聚类。可怜的是,这种办法也是主观的。

 咱们将介绍用于确定k均值,k medoids(PAM)和档次聚类的最佳聚类数的不同办法。

这些办法包含间接办法和统计测试方法:

  1. 间接办法:包含优化准则,例如簇内平方和或均匀轮廓之和。相应的办法别离称为弯头办法和轮廓办法。
  2. 统计测验办法:包含将证据与无效假设进行比拟。**

除了肘部轮廓间隙统计办法外,还有三十多种其余指标和办法曾经公布,用于辨认最佳簇数。咱们将提供用于计算所有这30个索引的R代码,以便应用“少数规定”确定最佳聚类数。

对于以下每种办法:

  • 咱们将形容根本思维和算法
  • 咱们将提供易于应用的R代码,并提供许多示例,用于确定最佳簇数并可视化输入。

 


点击题目查阅往期内容

R语言文本开掘:kmeans聚类分析上海玛雅水公园景区五一假期评论词云可视化

左右滑动查看更多

01

02

03

04

肘法

回忆一下,诸如k-均值聚类之类的分区办法背地的根本思维是定义聚类,以使总集群内变动[或总集群内平方和(WSS)]最小化。总的WSS掂量了群集的紧凑性,咱们心愿它尽可能小。

Elbow办法将总WSS视为群集数量的函数:应该抉择多个群集,以便增加另一个群集不会改善总WSS。

最佳群集数能够定义如下:

  1. 针对k的不同值计算聚类算法(例如,k均值聚类)。例如,通过将k从1个群集更改为10个群集。
  2. 对于每个k,计算群集内的总平方和(wss)。
  3. 依据聚类数k绘制wss曲线。
  4. 曲线中拐点(膝盖)的地位通常被视为适当簇数的指标。

 

均匀轮廓法

 

均匀轮廓法计算不同k值的观测值的均匀轮廓。聚类的最佳数目k是在k的可能值范畴内最大化均匀轮廓的数目(Kaufman和Rousseeuw 1990)。

 

差距统计法

 该办法能够利用于任何聚类办法。

间隙统计量将k的不同值在集群外部变动中的总和与数据空援用散布下的期望值进行比拟。最佳聚类的预计将是使差距统计最大化的值(即,产生最大差距统计的值)。 

 

材料筹备

咱们将应用USArrests数据作为演示数据集。咱们首先将数据标准化以使变量具备可比性。

rhead(df)##            Murder Assault UrbanPop     Rape## Alabama    1.2426   0.783   -0.521 -0.00342## Alaska     0.5079   1.107   -1.212  2.48420## Arizona    0.0716   1.479    0.999  1.04288## Arkansas   0.2323   0.231   -1.074 -0.18492## California 0.2783   1.263    1.759  2.06782## Colorado   0.0257   0.399    0.861  1.86497

  Silhouhette和Gap统计办法

简化格局如下:****

上面的R代码确定k均值聚类的最佳聚类数:

r# Elbow methodfviz_nbclust(df, kmeans, method = "wss") +    geom_vline(xintercept = 4, linetype = 2)+  labs(subtitle = "Elbow method")# Silhouette method# Gap statistic

<!---->

## Clustering k = 1,2,..., K.max (= 10): .. done## Bootstrapping, b = 1,2,..., B (= 50)  [one "." per sample]:## .................................................. 50

 

 


点击题目查阅往期内容

PYTHON链家租房数据分析:岭回归、LASSO、随机森林、XGBOOST、KERAS神经网络、KMEANS聚类、天文可视化

左右滑动查看更多

01

02

03

04

  •  

依据这些察看,有可能将k = 4定义为数据中的最佳簇数。

30个索引,用于抉择最佳数目的群集

数据:矩阵

  • diss:要应用的相异矩阵。默认状况下,diss = NULL,然而如果将其替换为差别矩阵,则间隔应为“ NULL”
  • distance:用于计算差别矩阵的间隔度量。可能的值包含“ euclidean”,“ manhattan”或“ NULL”。
  • min.nc,max.nc:别离为最小和最大簇数
  • 要为kmeans 计算NbClust(),请应用method =“ kmeans”。
  • 要计算用于档次聚类的NbClust(),办法应为c(“ ward.D”,“ ward.D2”,“ single”,“ complete”,“ average”)之一。

上面的R代码为k均值计算 **:

 

## Among all indices: ## ===================## * 2 proposed  0 as the best number of clusters## * 10 proposed  2 as the best number of clusters## * 2 proposed  3 as the best number of clusters## * 8 proposed  4 as the best number of clusters## * 1 proposed  5 as the best number of clusters## * 1 proposed  8 as the best number of clusters## * 2 proposed  10 as the best number of clusters## ## Conclusion## =========================## * According to the majority rule, the best number of clusters is  2 .

 

依据少数规定,最佳群集数为2。

 


点击文末 “浏览原文”

获取全文残缺代码数据资料。

本文选自《R语言确定聚类的最佳簇数:3种聚类优化办法》。

点击题目查阅往期内容

PYTHON链家租房数据分析:岭回归、LASSO、随机森林、XGBOOST、KERAS神经网络、KMEANS聚类、天文可视化\
【视频】简单网络分析CNA简介与R语言对婚礼数据聚类社区检测和可视化|数据分享\
数据分享|R语言剖析上海空气质量指数数据:kmean聚类、档次聚类、工夫序列剖析:arima模型、指数平滑法\
R语言文本开掘:kmeans聚类分析上海玛雅水公园景区五一假期评论词云可视化\
R语言k-Shape工夫序列聚类办法对股票价格工夫序列聚类\
K-means和档次聚类分析癌细胞系微阵列数据和树状图可视化比拟\
KMEANS均值聚类和档次聚类:亚洲国家地区生存幸福品质异同可视化剖析和抉择最佳聚类数\
PYTHON实现谱聚类算法和扭转聚类簇数后果可视化比拟\
无限混合模型聚类FMM、狭义线性回归模型GLM混合利用剖析威士忌市场和钻研专利申请数据\
R语言多维数据档次聚类散点图矩阵、配对图、平行坐标图、树状图可视化城市宏观经济指标数据\
r语言无限正态混合模型EM算法的分层聚类、分类和密度估计及可视化\
Python Monte Carlo K-Means聚类实战钻研\
R语言k-Shape工夫序列聚类办法对股票价格工夫序列聚类\
R语言对用电负荷工夫序列数据进行K-medoids聚类建模和GAM回归\
R语言谱聚类、K-MEANS聚类分析非线性环状数据比拟\
R语言实现k-means聚类优化的分层抽样(Stratified Sampling)剖析各市镇的人口\
R语言聚类有效性:确定最优聚类数剖析IRIS鸢尾花数据和可视化Python、R对小说进行文本开掘和档次聚类可视化剖析案例\
R语言k-means聚类、档次聚类、主成分(PCA)降维及可视化剖析鸢尾花iris数据集\
R语言无限混合模型(FMM,finite mixture model)EM算法聚类分析间歇泉喷发工夫\
R语言用温度对城市档次聚类、kmean聚类、主成分剖析和Voronoi图可视化\
R语言k-Shape工夫序列聚类办法对股票价格工夫序列聚类\
R语言中的SOM(自组织映射神经网络)对NBA球员聚类分析\
R语言简单网络分析:聚类(社区检测)和可视化\
R语言中的划分聚类模型\
基于模型的聚类和R语言中的高斯混合模型\
r语言聚类分析:k-means和档次聚类\
SAS用K-Means 聚类最优k值的选取和剖析\
用R语言进行网站评论文本开掘聚类\
基于LDA主题模型聚类的商品评论文本开掘\
R语言鸢尾花iris数据集的档次聚类分析\
R语言对用电负荷工夫序列数据进行K-medoids聚类建模和GAM回归\
R语言聚类算法的利用实例