码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 层次聚类分析及代码实现


    层次聚类分析及代码实现

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

    层次聚类

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

    作图代码及结果

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

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

    #要是没有这个包的话,首先需要安装一下
    #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          
    )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

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

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

    这样就放平了:

    请添加图片描述
    当然还有更多美化方式,具体可以参考最全的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语言聚类分析

  • 相关阅读:
    计算机视觉系列之1-图片读取
    【算法篇-数论】线性筛法(欧拉筛法)筛 n 以内的质数
    以梦为马,不负韶华|电巢科技&延安大学飞鹰计划实习班精彩回顾
    在R语言中进行缺失值填充:估算缺失值
    服务断路器_Resilience4j限流
    堆叠、集群技术
    kubeadm安装k8s集群
    Haproxy实现负载均衡
    [算法1-排序](.NET源码学习)& LINQ & Lambda
    OSPF NSSA区域配置
  • 原文地址:https://blog.csdn.net/weixin_46605479/article/details/127446849
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号