文章目录

  • 聚类分析
    • 概念
  • 聚类统计量
    • 距离
      • 明式距离(Minkowski)
      • 马氏距离(Mahalanobis)
      • 兰氏距离(Canberra)
      • R语言实现
    • 相似系数
      • 夹角余弦
      • 相关系数
    • 距离和相似系数之间的转换
  • 系统聚类法
    • 基本步骤
    • R实现
  • 快速聚类法
    • 主要步骤
    • 原理与计算
      • 平方误差准则
    • R实现
  • 主要参考

聚类分析

概念

聚类分析法(Cluster Analysis)是研究“物以类聚”的一种现代统计分析方法,在众多的领域中,都需要采用聚类分析作分类研究。

聚类分析方法{系统聚类法(hclust)快速聚类法(kmeans)\text{聚类分析方法} \begin{cases} \text{系统聚类法(hclust)}\\ \text{快速聚类法(kmeans)}\\ \end{cases} 聚类分析方法{系统聚类法(hclust)快速聚类法(kmeans)​

聚类分析的类型{Q型聚类:对样品的聚类R型聚类:对变量的聚类\text{聚类分析的类型} \begin{cases} \text{Q型聚类:对样品的聚类}\\ \text{R型聚类:对变量的聚类}\\ \end{cases} 聚类分析的类型{Q型聚类:对样品的聚类R型聚类:对变量的聚类​

聚类统计量

聚类统计量{距离{欧氏距离马氏距离兰氏距离相似系数{夹角余弦相关系数\text{聚类统计量} \begin{cases} \text{距离} \begin{cases} \text{欧氏距离}\\ \text{马氏距离}\\ \text{兰氏距离}\\ \end{cases} \\ \text{相似系数} \begin{cases} \text{夹角余弦}\\ \text{相关系数}\\ \end{cases} \end{cases} 聚类统计量⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧​距离⎩⎪⎨⎪⎧​欧氏距离马氏距离兰氏距离​相似系数{夹角余弦相关系数​​

距离

为了计算平面上各点之间的距离dijd_{ij}dij​,在聚类分析中对连续变量常用的距离有:

明式距离(Minkowski)

dij(q)=[∑k=1p(xik−xjk)q]1qd_{ij}(q)=\left[\sum_{k=1}^p(x_{ik}-x_{jk})^q\right]^{\frac1q} dij​(q)=[k=1∑p​(xik​−xjk​)q]q1​

{q=1时,称为绝对值距离(Manhattan)q=2时,称为欧氏距离(Euclidean)q=∞时,称为切比雪夫距离(Maximum)\begin{cases} q=1\text{时,称为绝对值距离(Manhattan)}\\ q=2\text{时,称为欧氏距离(Euclidean)}\\ q=\infty\text{时,称为切比雪夫距离(Maximum)} \end{cases} ⎩⎪⎨⎪⎧​q=1时,称为绝对值距离(Manhattan)q=2时,称为欧氏距离(Euclidean)q=∞时,称为切比雪夫距离(Maximum)​

马氏距离(Mahalanobis)

dij(M)=(xi−xj)′Σ−1(xi−xj)d_{ij}(M)=(x_i-x_j)'\Sigma^{-1}(x_i-x_j) dij​(M)=(xi​−xj​)′Σ−1(xi​−xj​)
其中,xix_ixi​为样品iii的ppp个指标组成的行向量,Σ\SigmaΣ为协方差矩阵。

兰氏距离(Canberra)

dij(LW)=1p∑k=1p∣xik−xjk∣xik+xjk,(xij>0)d_{ij}(LW)=\frac1{p}\sum_{k=1}^p\frac{|x_{ik}-x_{jk}|}{x_{ik}+x{jk}},\quad(x_{ij}>0) dij​(LW)=p1​k=1∑p​xik​+xjk∣xik​−xjk​∣​,(xij​>0)

R语言实现

使用dist(x, method="euclidean", diag=F, upper=F, p=2)函数计算距离。

相似系数

用于刻画两个变量间的相似程度。

夹角余弦

Cij(1)=∑k=1nxkixkj[(∑k=1nxki2)(∑k=1nxkj2)]12C_{ij}(1)=\frac{\sum\limits_{k=1}^nx_{ki}x_{kj}}{\left[\left(\sum\limits_{k=1}^nx_{ki}^2\right)\left(\sum\limits_{k=1}^n x_{kj}^2\right)\right]^\frac{1}{2}} Cij​(1)=[(k=1∑n​xki2​)(k=1∑n​xkj2​)]21​k=1∑n​xki​xkj​​

相关系数

Cij(2)=∑k=1n(xki−xˉi)(xkj−xˉj)∑k=1n(xki−xˉi)2∑k=1n(xkj−xˉi)2C_{ij}(2)=\frac{\sum\limits_{k=1}^n(x_{ki}-\bar{x}_i)(x_{kj}-\bar{x}_j)}{\sqrt{\sum\limits_{k=1}^n(x_{ki}-\bar{x}_i)^2\sum\limits_{k=1}^n(x_{kj}-\bar{x}_i)^2}} Cij​(2)=k=1∑n​(xki​−xˉi​)2k=1∑n​(xkj​−xˉi​)2​k=1∑n​(xki​−xˉi​)(xkj​−xˉj​)​

距离和相似系数之间的转换

一般距离越小,相似系数越大,关系越密切。

dij2=1−Cij2.d_{ij}^2=1-C_{ij}^2. dij2​=1−Cij2​.

系统聚类法

  1. 最短距离法;
  2. 最长距离法;
  3. 类平均法;
  4. 重心法;
  5. 中间距离法;
  6. 离差平方和法(Ward法)。

基本步骤

  1. 计算nnn个样品两两间的距离;
  2. 构造nnn个类,每类只包含一个样品;
  3. 合并距离最近的两类为一个新类;
  4. 计算新类与当前各类的距离;
  5. 画聚类图;
  6. 决定类的个数和类。

R实现

使用hclust(d, method="complete", ...)函数

快速聚类法

主要介绍Kmeans聚类法(K均值法)。

主要步骤

  1. 将所有样品分成kkk个初始类;
  2. 通过欧氏距离将某个样品划入离中心最近的类中,并对获得样品与失去样品的类重新计算中心坐标;
  3. 重复2,直到所有的样品都不能再分类为止。

原理与计算

平方误差准则

E=∑i=1k∑p=Ci(p−mi)2E=\sum_{i=1}^k\sum_{p=C_i}(p-m_i)^2 E=i=1∑k​p=Ci​∑​(p−mi​)2

R实现

使用kmeans(x, centers, ...)函数。

主要参考

[1] 王斌会 《多元统计分析及R语言建模(第四版)》

R语言学习笔记(九)聚类分析相关推荐

  1. R语言学习笔记之聚类分析

    感谢关注天善智能,走好数据之路↑↑↑ 欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答.求职一站式搞定! 对商业智能BI.大数据分析挖掘.机器学习, ...

  2. r语言descstats_R语言学习笔记之聚类分析

    原标题:R语言学习笔记之聚类分析 taoyan:伪码农,R语言爱好者,爱开源. 个人博客: https://ytlogos.github.io/ 使用k-means聚类所需的包: factoextra ...

  3. R语言学习笔记(1~3)

    R语言学习笔记(1~3) 一.R语言介绍 x <- rnorm(5) 创建了一个名为x的向量对象,它包含5个来自标准正态分布的随机偏差. 1.1 注释 由符号#开头. #函数c()以向量的形式输 ...

  4. r语言c函数怎么用,R语言学习笔记——C#中如何使用R语言setwd()函数

    在R语言编译器中,设置当前工作文件夹可以用setwd()函数. > setwd("e://桌面//") > setwd("e:\桌面\") > ...

  5. R语言学习笔记 07 Probit、Logistic回归

    R语言学习笔记 文章目录 R语言学习笔记 probit回归 factor()和as.factor() relevel() 案例11.4复刻 glm函数 整理变量 回归:Logistic和Probit- ...

  6. R语言学习笔记——入门篇:第一章-R语言介绍

    R语言 R语言学习笔记--入门篇:第一章-R语言介绍 文章目录 R语言 一.R语言简介 1.1.R语言的应用方向 1.2.R语言的特点 二.R软件的安装 2.1.Windows/Mac 2.2.Lin ...

  7. R语言学习笔记——高级篇:第十四章-主成分分析和因子分析

    R语言 R语言学习笔记--高级篇:第十四章-主成分分析和因子分析 文章目录 R语言 前言 一.R中的主成分和因子分析 二.主成分分析 2.1.判断主成分的个数 2.2.提取主成分 2.3.主成分旋转 ...

  8. R语言学习笔记——入门篇:第三章-图形初阶

    R语言 R语言学习笔记--入门篇:第三章-图形初阶 文章目录 R语言 一.使用图形 1.1.基础绘图函数:plot( ) 1.2.图形控制函数:dev( ) 补充--直方图函数:hist( ) 补充- ...

  9. R语言学习笔记 06 岭回归、lasso回归

    R语言学习笔记 文章目录 R语言学习笔记 比较lm.ridge和glmnet函数 画岭迹图 图6-4 <统计学习导论 基于R语言的应用>P182 图6-6<统计学习导论 基于R语言的 ...

  10. R语言学习笔记(八)--读写文件与网络爬虫

    R语言学习笔记(八) 1 工作路径 2 保存R对象 3 Scan函数 3-1 从控制台读取数据 3-2 从txt文件读取数据 3-3 从url读取数据 4 按行读写文本文件 5 读取文本文件(txt. ...

最新文章

  1. 在sqlplus中操作blob和clob
  2. python ascii转utf8_ascii 转换为 utf-8
  3. 打印出系统所有即未被assign到business transaction和IBASE component的product ID列表
  4. C++:vs2017编写代码时的光标变成了黑块,选中字时替换掉了黑块选中的字【解决办法】
  5. OpenStack 认证服务 KeyStone部署(三)
  6. Ubuntu下网络调试助手 NetAssist(实际这个我启动不了)
  7. 系统分析与设计-我爱烤鱼创新过程与UP过程对比分析之我见
  8. 2、【STM32】新建工程模板、ISP串口程序下载、JLINK程序下载与调试(在线和软件)
  9. M2Det 论文笔记
  10. JAVA我的世界怎么弄TNT大陆_《我的世界》爷爷的遗言:TNT大陆地图存档
  11. 100行代码,10分钟,详解Vue2.x响应式原理——理解Observer,Dep,Watcher
  12. HA-reshacker
  13. iomega ix2 Android,Lenovo Iomega ix2系统安装_联想 IOMEGA IX2_服务器评测与技术-中关村在线...
  14. 安卓模拟器(手机)安装抓包工具(fiddler)证书及手机设置代理后无法上网?
  15. Notes Twelfth Day-渗透攻击-红队-命令与控制
  16. 用Qt搭建图书管理系统(三)
  17. 为什么Vue组件里面data必须是个函数
  18. 40-网上商城数据库-商品类别数据操作(一)
  19. 手牵手,我们一起搭建VuePress博客
  20. 实现OPC UA publish/subscribe单次发送

热门文章

  1. 大数据阶段划分及案例单词统计
  2. MySQL.Linux.安装
  3. Windows phone 7 之ToggleSwitch
  4. Windows7修改hosts提示:您没有权限在此位置中保存文件
  5. leetcode 1217 python
  6. 嘉年华回顾丨Eygle带你领略数据库技术和生态的发展演进
  7. ACE总监侯圣文全面解析特训方法
  8. CVE-2021-3129:Laravel远程代码漏洞复现分析
  9. 一文讲述数仓组件SysCache
  10. 建设开发者生态:6项华为API管理原则落地