当前位置: 首页 > news >正文

层次聚类分析及代码实现

层次聚类分析及代码实现

  • 层次聚类
  • 作图代码及结果
    • 距离矩阵和聚类算法小结
  • 参考链接

层次聚类

层次聚类将个体间的关系进行分层次展示,可以人为设定分为几类。

作图代码及结果

###生成层次聚类,dist距离矩阵默认计算方式为欧氏距离method = "euclidean",聚类方法默认为complete
hc = hclust(dist(mtcars))
plot(hc)

作图结果如下:
请添加图片描述
根据上述图,我们可以初步确定聚为几类更为合适:

#要是没有这个包的话,首先需要安装一下
#install.packages("factoextra")
#载入包
library(factoextra)
fviz_dend(hc, k = 4, 
          cex = 0.7, 
          k_colors = c("#2E9FDF", "#00AFBB", "#E7B800", "#FC4E07"),
          color_labels_by_k = TRUE, 
          rect = TRUE          
)

结果如下:
请添加图片描述
如果想放平,可以这样画:

fviz_dend(hc, k = 4, 
          cex = 0.7, 
          k_colors = c("#2E9FDF", "#00AFBB", "#E7B800", "#FC4E07"),
          color_labels_by_k = TRUE, 
          rect = TRUE,
          horiz = T)

这样就放平了:

请添加图片描述
当然还有更多美化方式,具体可以参考最全的R语言聚类树形图画法。

距离矩阵和聚类算法小结

如果对计算距离矩阵和聚类的算法有特定要求,可以参考下面的参数介绍。

在聚类中求两点的距离有:

1,绝对距离:manhattan

2,欧氏距离:euclidean 默认

3,闵科夫斯基距离:minkowski

4,切比雪夫距离:chebyshev

5,马氏距离:mahalanobis

6,蓝氏距离:canberra

用默认的算法求出距离如下

算出距离后就可以进行聚类啦!

out.hclust=hclust(out.dist,method=“complete”) #根据距离聚类

聚类也有多种方法:

1,类平均法:average

2,重心法:centroid

3,中间距离法:median

4,最长距离法:complete 默认

5,最短距离法:single

6,离差平方和法:ward

7,密度估计法:density

参考链接

基于R语言的聚类分析(k-means,层次聚类)
最全的R语言聚类树形图画法
R语言用hclust进行聚类分析
R语言可视化(二十九):聚类树图绘制
R语言之系统聚类(层次)分析之图谱形式完整版
99-非监督学习之hclust分层聚类
R语言绘图——给树状图的标签赋予不同颜色
R语言聚类分析

相关文章:

  • 学生选课系统 前后端分离 vue springboot
  • 网络安全比赛A模块任务书
  • IP报文在阿里云上的神奇之旅:同地域内云上通信
  • 基于网络安全的Docker逃逸
  • Android——一个简单的音乐APP(二)
  • 在Eclipse 中使用 Maven 创建雅加达 EE 应用程序
  • 112-JavaSE基础进阶:XML的创建、文档约束、文件的解析技术-Dom4J、解析案例、文件的数据检索技术-XPath
  • 计算机网络 第3 章 数据链路层
  • 如何让不给听得ge乖乖听话?python教你如何做...
  • C# Winform跨线程更新UI控件的方法
  • Linux学习 -- shell工具的复习(cut/sed/awk/sort)
  • C语言百日刷题第四天
  • C生万物 | 初识C语言【1024,从0开始】
  • 计算机网络-物理层(数据交换方式(电报交换,报文交换,分组交换),数据报,虚电路,传输介质,物理层设备(中继器,集线器))
  • 【趣学算法】第二章 算法之美(下)
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • 10个最佳ES6特性 ES7与ES8的特性
  • Angular Elements 及其运作原理
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • Javascript 原型链
  • JavaScript设计模式系列一:工厂模式
  • Java读取Properties文件的六种方法
  • jquery cookie
  • Js基础知识(四) - js运行原理与机制
  • Mocha测试初探
  • redis学习笔记(三):列表、集合、有序集合
  • swift基础之_对象 实例方法 对象方法。
  • vue脚手架vue-cli
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • ------- 计算机网络基础
  • 聊聊flink的TableFactory
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 如何用vue打造一个移动端音乐播放器
  • 深度学习在携程攻略社区的应用
  • 树莓派 - 使用须知
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 一个完整Java Web项目背后的密码
  • 智能网联汽车信息安全
  • Android开发者必备:推荐一款助力开发的开源APP
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • ​queue --- 一个同步的队列类​
  • # centos7下FFmpeg环境部署记录
  • # Java NIO(一)FileChannel
  • #Linux(权限管理)
  • #pragma multi_compile #pragma shader_feature
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • (6)添加vue-cookie
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (剑指Offer)面试题34:丑数
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)为C# Windows服务添加安装程序
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • .gitignore文件_Git:.gitignore