聚类就是按照某个特定标准把一个数据集分割成不同的类或簇,最后的结果是希望同类之间的差异性尽可能小,不同类之间的差异性尽可能大。不同的类具有能够表达异于其他类的指标,这样针对不同的类,后续就能采取不一样的处理手段。聚类的应用场景的比较多,比如建立客户画像、商品聚类、离群值检验等等;与分类算法不一样,聚类属于非监督学习算法,其算法类型也很多,系统聚类是相对其他较简单的一种了,下面就了解其大概:

(一)系统聚类也称为层次聚类,因为其结果会呈现显著的层次结构,通常分为自底向上和自顶向下,两种方法的原理是相同的,区别在于计算的方向是相反的。

  • 自低向下:又称为合并法,这种方法是先将每个样本分别作为一个独立的类,然后通过距离计算,将距离相近的两个样本合并为一类,其他样本仍然各自为一类,重复上面的过程直至达到设定的聚类数。
  • 自顶向下:又称为分解法,与自低向下相反,会将所有样本看出一类,通过各样本间的距离,选出距离最远的两个样本,各自为一个类别,其余样本根据就近原则分配到两个类别中,重复上面的过程直至达到设定的聚类数。

(二)聚类的方法我们知道之后,接下来就是关键问题定义距离。在聚类时常见的距离定义方法有绝对值距离、欧式距离、闵可夫距离、切比雪夫距离等等,最常用的就是欧式距离(这个之前在说近邻算法的有介绍过)

(三)距离定义的问题解决之后,就轮到怎么样确定两个类之间的距离是多少,通常确定的方法有最短距离法、最长距离法、中间距离法、类平均法、重心法和离差平方法。

  • 最短距离法:将类中的样本间最短距离作为这类之间的距离,下面是简单的计算过程
  • 最长距离法:将类中的样本间最长距离作为这类之间的距离,计算过程如下
  • 中间距离法:由于最短距离法和最长距离法都是考虑极端情况,容易受异常值影响,使用折中的方法,比如类别A是由两个小类别A1和A2组成,那类别A和类别B的距离计算可以定义为下面的公式
  • 类平均法:可以将两个类别中的样本点连线,两类别之间的距离平方就是所有连线距离平方值的平均值,下面是简单的例子
  • 重心法:类各自重心间的距离为类之间的距离
  • 离差平方法:又叫ward最小方差法,如果分类合理,则同类样本间离差平法和应该较小,类与类之间离差平法和应该较大,每次合并类别是,离差平法和会增大,选择使得增加值最小的两类进行合并。

在R语言中,hclust函数能够实现系统聚类,输入项为距离矩阵(可以由dist函数计算所得),设置method可实现不同算法:

  • method默认为最长距离法
  • single为最短距离法
  • average为类平均法
  • centroid为重心法
  • median为中间距离法
  • ward为离差平法法

我们还是以iris数据集为例,简单说一下我们在R语言中如何实现系统聚类:

#最长距离法
dt = dist(iris[,1:3])
clr = hclust(dt)
# 绘制系谱图
plot(clr, hang = -1)
#具体的分类明细/3个类别
kind <- rect.hclust(clr, k = 3)

系谱图
将数据集划分为3个类别

k均值聚类算法案例 r语言iris_聚类分析—系统聚类相关推荐

  1. k均值聚类算法案例 r语言iris_K-means算法原理

    聚类的基本思想 俗话说"物以类聚,人以群分" 聚类(Clustering)是一种无监督学习(unsupervised learning),简单地说就是把相似的对象归到同一簇中.簇内 ...

  2. 机器学习之K均值(K-Means)算法

    1.K-Means简介 K均值(K-Means)算法是无监督的聚类方法,实现起来比较简单,聚类效果也比较好,因此应用很广泛.K-Means算法针对不同应用场景,有不同方面的改进.我们从最传统的K-Me ...

  3. k means聚类算法_一文读懂K-means聚类算法

    1.引言 什么是聚类?我们通常说,机器学习任务可以分为两类,一类是监督学习,一类是无监督学习.监督学习:训练集有明确标签,监督学习就是寻找问题(又称输入.特征.自变量)与标签(又称输出.目标.因变量) ...

  4. 人工晶状体计算——人工智能算法(R语言)

    人工晶状体计算--人工智能算法(R语言) 1. 准备数据 2. 建立模型 2.1 方法1 2.2 方法2 1. 准备数据 准备数据Data.xlsx,示例如图 Age AL ACD K1 K2 WTW ...

  5. R语言ggplot2可视化可视化聚类图、使用geom_encircle函数绘制多边形标定属于同一聚类簇的数据点、并自定义每个聚类簇数据点的颜色、多边形框的颜色(Cluster Plot)、主副标题题注

    R语言ggplot2可视化可视化聚类图.使用geom_encircle函数绘制多边形标定属于同一聚类簇的数据点.并自定义每个聚类簇数据点的颜色.多边形框的颜色(Cluster Plot).主副标题题注 ...

  6. R语言KMeans聚类分析确定最优聚类簇数实战:间隙统计Gap Statistic(确定最优聚类簇数)

    R语言KMeans聚类分析确定最优聚类簇数实战:间隙统计Gap Statistic(确定最优聚类簇数) 目录

  7. R语言KMeans聚类分析确定最优聚类簇数实战:NbClust包(确定最优聚类簇数)

    R语言KMeans聚类分析确定最优聚类簇数实战:NbClust包(确定最优聚类簇数) 目录

  8. R语言KMeans聚类分析确定最优聚类簇数实战:期望最大化expectation-maximization准则(确定最优聚类簇数)

    R语言KMeans聚类分析确定最优聚类簇数实战:期望最大化expectation-maximization准则(确定最优聚类簇数) 目录

  9. R语言KMeans聚类分析确定最优聚类簇数实战:Calinski-Harabasz准则(确定最优聚类簇数)

    R语言KMeans聚类分析确定最优聚类簇数实战:Calinski-Harabasz准则(确定最优聚类簇数) 目录

最新文章

  1. python基础之常用模块
  2. 策略模式(Strategy)
  3. [音乐欣赏]Craigie Hill
  4. 矩阵的特征值、特征向量及其代码求解实现
  5. 加点自已内容的新内核下L7-FILTER的应用实例!
  6. 简单的群体测试方案C++代码(Group testing against Covid-19)
  7. 一招彻底破除数据孤岛!这家企业用数据集市整合了30套系统
  8. 记录学习——算法时间复杂度求法
  9. 跨域总结(jquery,php)
  10. ROS机器人操作系统——ROS介绍
  11. matlab封闭曲线拟合 (针对一些列离散点)
  12. 鸽笼原理 c语言,抽屉原理的三个公式,抽屉问题经典例题10道
  13. PAT 1010 月饼
  14. STM32F103_study62_The punctual atoms(Clock system initialization function analysis)
  15. r730 raid5 linux 驱动,DELL R720安装REDHAT5.1 RAID驱动问题
  16. 第二次信奥考试试题及题解(部分)
  17. Matlab GUI界面表格中数据导出到excel文件带标题
  18. R语言——read.table;read.csv(读取外部数据)
  19. 短视频推广应该怎么做?实体商家如何通过小魔推在流量风口站稳脚跟?
  20. dp主机_HDMI和DP是什么?一文看懂两种接口的区别

热门文章

  1. 大数据可视化平台优点在哪
  2. 企业数字化转型需注意什么
  3. python报表自动化系列 - 按照文件名筛选文件
  4. Java回调网址_极光短信- 回调接口 - 极光文档
  5. easypoi 大数据 百万_scrapy 解决爬虫IP代理池,百万大数据轻松爬取。
  6. Linux网络编程复习笔记
  7. Mysql8.0.12解压版安装亲测(步骤超级简单)
  8. 广播模块加继电器怎么接线_时间继电器怎么看图接线?
  9. elasticsearch6.0、jdk1.8、IK、kibana集群配置
  10. 使用java反射写一个通用的jdbc查询