共计 3555 个字符,预计需要花费 9 分钟才能阅读完成。
原文链接:http://tecdat.cn/?p=7275
最近咱们被客户要求撰写对于聚类的钻研报告,包含一些图形和统计输入。
确定数据集中最佳的簇数是分区聚类(例如 k 均值聚类)中的一个根本问题,它要求用户指定要生成的簇数 k。
一个简略且风行的解决方案包含查看应用分层聚类生成的树状图,以查看其是否暗示特定数量的聚类。可怜的是,这种办法也是主观的。
咱们将介绍用于确定 k 均值,k medoids(PAM)和档次聚类的最佳聚类数的不同办法。
这些办法包含间接办法和统计测试方法:
- 间接办法:包含优化准则,例如簇内平方和或均匀轮廓之和。相应的办法别离称为 弯头 办法和 轮廓 办法。
- 统计测验办法:包含将证据与无效假设进行比拟。**
除了 肘部 , 轮廓 和间隙统计 办法外,还有三十多种其余指标和办法曾经公布,用于辨认最佳簇数。咱们将提供用于计算所有这 30 个索引的 R 代码,以便应用“少数规定”确定最佳聚类数。
对于以下每种办法:
- 咱们将形容根本思维和算法
- 咱们将提供易于应用的 R 代码,并提供许多示例,用于确定最佳簇数并可视化输入。
点击题目查阅往期内容
R 语言文本开掘:kmeans 聚类分析上海玛雅水公园景区五一假期评论词云可视化
左右滑动查看更多
01
02
03
04
肘法
回忆一下,诸如 k - 均值聚类之类的分区办法背地的根本思维是定义聚类,以使总集群内变动 [或总集群内平方和(WSS)] 最小化。总的 WSS 掂量了群集的紧凑性,咱们心愿它尽可能小。
Elbow 办法将总 WSS 视为群集数量的函数:应该抉择多个群集,以便增加另一个群集不会改善总 WSS。
最佳群集数能够定义如下:
- 针对 k 的不同值计算聚类算法(例如,k 均值聚类)。例如,通过将 k 从 1 个群集更改为 10 个群集。
- 对于每个 k,计算群集内的总平方和(wss)。
- 依据聚类数 k 绘制 wss 曲线。
- 曲线中拐点(膝盖)的地位通常被视为适当簇数的指标。
均匀轮廓法
均匀轮廓法计算不同 k 值的观测值的均匀轮廓。聚类的最佳数目 k 是在 k 的可能值范畴内最大化均匀轮廓的数目(Kaufman 和 Rousseeuw 1990)。
差距统计法
该办法能够利用于任何聚类办法。
间隙统计量将 k 的不同值在集群外部变动中的总和与数据空援用散布下的期望值进行比拟。最佳聚类的预计将是使差距统计最大化的值(即,产生最大差距统计的值)。
材料筹备
咱们将应用 USArrests 数据作为演示数据集。咱们首先将数据标准化以使变量具备可比性。
r
head(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 method
fviz_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 语言聚类算法的利用实例