无监督学习之聚类方法(K-Means、层次聚类)

一、导入

无监督学习中需要对无标记样本进行训练学习进而找到数据的内在性质和逻辑结构,聚类方法是为了为无监督学习的数据分析提供的基础学习方法。
聚类将数据集划分为若干个子集(每个子集称为类或者簇),如果一个样本只属于一个类(簇)则是硬聚类,如果某一个样本属于多个类那么就是软聚类。

二、评价指标

1、性能度量

确定了性能度量以后,可以直接将其作为聚类过程的优化目标,可以分为以下两类

外部指标

说明:需要有参考模型作为比较对象
对数据集D={X1, X2,…Xm}通过聚类得到的簇分类是C={c1, c2 …ck} ,参考模型的簇分类是C’={c1’, c2’, …ck’}
a:包含在c中属于相同簇且在c’中也属于相同簇的样本对
b:包含在c中属于相同簇且在c’中不属于相同簇的样本对
c:包含在c中不属于相同簇且在c’中属于相同簇的样本对
d:包含在c中不属于相同簇且在c’中不属于相同簇的样本对
注:由于每个样本对(Xi,Xj)(i<j)仅能出现在一个集合中,所以有a+b+c+d=m(m-1)/2

Jaccard系数\JC

JC=a(a+b+c)

FM指数

FMI=[(a(a+b))(a(a+c))]^1\2

Rand指数

RI=2(a+d)/m(m-1)
说明:以上指标取值均在0-1之间,值越大越好

内部指标

avg©:簇内样本点的平均距离,簇内所有样本点两两之间的距离求和再求均值
diam©:簇内距离最远的两个样本点间的距离
dmin属于不同簇的两个样本点,且两个样本点相比于簇内其他样本点相隔最近,该符号表示的就是满足这样的两点之间的距离
dcen:;两个簇的中心点的距离

DB指数

在这里插入图片描述

Dunn指数

在这里插入图片描述
说明:DBI越小越好;DI越大越好

2、距离计算\相似度

基本性质:非负性、同一性(当i=j时,dist(xi,xj)=0)、对称性、直递性\三角不等性。
当属性划分可以计算距离的时候是”连续属性“,例如{1,2,3};不可以直接计算距离的时候是“离散属性”,例如{飞机,汽车,火车}
对于连续属性可以用闵可夫斯基计算两个样本点的距离
对于离散属性需要DVM计算两个样本点的距离

闵可夫斯基距离

在这里插入图片描述
当p=2时为欧氏距离
当p=1时为曼哈顿距离

DVM

mu,a表示在属性u上取值为a的样本个数
mu,a,i表示在第i个样本簇中属性u上取值为a的样本数
在这里插入图片描述
闵可夫斯基可以与VDM结合处理混合属性,将两部分求和,具体可以阅读西瓜书;重要性不同时可以用加权距离计算距离

3、原型聚类

k-means

先看几张图片对该算法有一个直观的认识
在这里插入图片描述
这是一个没有标记的样本集,要对它进行聚合,K=2
在这里插入图片描述
随机生成两个中心点,也可以用样本点作为初始中心点
在这里插入图片描述
根据欧式距离公式,将样本点集合划分给两个不同的中心点。在这里插入图片描述
将中心点移动到同色样本点(同一个颜色属于同一个簇)的均值处;此时完成一轮聚合操作。
在这里插入图片描述
和最开始相比,此刻初始中心点已经更新,开始第二次迭代,将数据点全部都清楚类标记,在按照前面三步的操作,进行样本点划分
在这里插入图片描述
上图满足了样本中心点不会再更新,即迭代完毕。

通过上面几个图的说明,不难看出K-Means是一个迭代的过程,
优化目标:就是最小化某类的中心点和属于该类的样本点的距离
至于选择K(中心点)的多少,可以按照肘部法则也可以根据实际需要进行设定
肘部法则:横轴是K取值,纵轴为lost function
局部最优(由于算法是迭代的,而且初始样本点的选取不同也会造成最终结果的不同)

学习向量量化LVQ

与K-Means不同的是,LVQ的样本是带有类别标记的

高斯混合聚类

4、密度聚类

####DBSCAN

5、层次聚类

层次聚类在不同层次对数据进行划分,形成树形结构,分为自底向上(聚合)自顶向下(分裂),都需要按照一定的规则进行操作,下面主要以聚合为例进行说明
AGNES采用自底向上的操作进行层次聚类
一开始所有的样本点都是一个类,接下来进行距离相近的类融合成一个新类知道满足K的要求为止。
其中两个类合并需要考虑两个类之间的距离,共有如下三种计算方式
最小距离:属于两个不同类的两个样本点,满足两点距离最近
最大距离:属于两个不同类的两个样本点,满足两点距离最远
均链接:属于两个不同类的任意两个样本点,两两的距离之和除以两个类的样本点个数的乘积。
说明:最小距离由两个簇的最近样本决定,最大距离由两个簇的最远样本决定,平均距离则由两个簇的所有样本决定。
满足最小距离的AGNES算法称为“单链接”算法
满足最大距离的AGNES算法称为“全链接”算法
满足均链接的AGNES算法称为”均链接“算法

例题:
D表示五个样本点的欧氏距离的矩阵
在这里插入图片描述
说明:该矩阵是对称阵
首先构建五各类Gi={Xi} i=12345
其中X3和X5距离为1,其他点之间的距离大于1,所以将G3和G5合并成G6={X3,X5}
目前有四个类。接下来继续合并
最小距离是X3X1之间,距离为2
将X1 合并到G6中变成G7={X1,X3,X5}
继续判断距离,X2和X4距离为4小于其特点之间的距离,G8={X2,X4}
所以,如果K为2的话,就是G7,G8两类
最后形成一个树形结构如下图
在这里插入图片描述
下面是西瓜书的例子
在这里插入图片描述
需要自己计算各个样本之间的距离,书上说采用dmax没有太明白,具体运用在哪个步骤中,后续学习中在更新吧
在这里插入图片描述
生成了如上图所示的树形结构,从叶子节点开(k=30)始,不断合并距离最近的聚类簇,最终到达根节点(k=1)
在这里插入图片描述
最后:聚类不存在固定的标准,距离计算是很多学习任务的核心技术。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/564675.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js调用python接口_JavaScript如何调用Python后端服务

欢迎关注【无量测试之道】公众号&#xff0c;回复【领取资源】, Python编程学习资源干货、 PythonAppium框架APP的UI自动化、 PythonSelenium框架Web的UI自动化、 PythonUnittest框架API自动化、 资源和代码 免费送啦~ 文章下方有公众号二维码&#xff0c;可直接微信扫一扫关注…

详细地图_一目了然:蒙城学区划分详细地图

从明天(8月5日)起&#xff0c;小学一年级&#xff0c;初中一年级可在网上注册、报名了。根据区域内适龄学生人数、学校分布、学校规模、班额规定、交通状况等因素&#xff0c;以街道、路段、门牌号、居住小区、村组等构成要件&#xff0c;按照确保公平和免试就近入学的原则&…

奇异值分解SVD(证明全部省略)

SVD知识梳理一、引入二、SVD的定义、性质定义例题奇异值分解一定存在紧奇异值分解和截断奇异值分解几何解释三、SVD算法计算过程四、SVD与矩阵近似五、python实现六、应用一、引入 主成分分析PCA、潜在语义分析都会用到SVD 不要求A矩阵是方阵&#xff0c;SVD是线性代数中相似对…

jq 比较两个时间是否在同一天_jq: 属性-class

.aadClass() 添加class用法和前面的text方法一样&#xff0c;可以传字符串&#xff0c;可以传函数。值用空格隔开可以增加多个class<.removeClass() 移出class值<他们在一起也可以链式调用。链式调用: 取值的时候返回return结果&#xff0c;赋值返回this,表示可以继续调用…

李航《统计学习方法》之EM算法及其推广

EM算法是一种迭代方法&#xff0c;可以看作用坐标下降法来最大化对数似然估计下界的过程。 一、引入 &#xff08;一&#xff09;算法介绍 1、例题 有三枚硬币&#xff0c;ABC他们出现正面的概率分别是Π&#xff0c;p和q。进行如下投掷实验&#xff1a;先投掷A&#xff0c…

获取选中_【字节】如何实现选中复制的功能

Barnett Demesne公园中在白雪覆盖的山坡上玩耍的一家&#xff0c;北爱尔兰贝尔法斯特(© Stephen Barnes/Alamy)本题摘自于我 github 上的面试每日一题&#xff1a;https://q.shanyue.tech&#xff0c;并有大厂面经及内推信息&#xff0c;可在左下角打开本题原文链接在一些…

c语言 bool_程序的数据要放到哪里呢?|C语言第二篇

在C语言第一篇里我写到了编译器&#xff0c;在这里补充一个点&#xff0c;文本编辑器&#xff0c;编译器&#xff0c;IDE(集成开发环境)的区别。文本编辑器是用作编写普通文字的应用软件&#xff0c;如window的记事本&#xff0c;atom&#xff0c;sublime&#xff0c;它常用来编…

项目职责_项目经理的9个职责

虽说懂技术是项目经理的一个必要项&#xff0c;但事实上&#xff0c;很多技术出身的人&#xff0c;根本干不好项目经理。当项目经理之前&#xff0c;是活儿管你&#xff0c;让你干什么你就干什么&#xff0c;只对任务结果负责&#xff0c;对整体目标不负责。当项目经理之后&…

jenkins 安装插件失败_Jenkins 自动化安装插件

手工安装 Jenkins 插件的方法通常&#xff0c;我们有两种方法安装 Jenkins 插件。第一种方法是到 Jenkins 插件管理页面搜索插件&#xff0c;然后安装。第二种方法是上传 Jenkins 插件的 hpi 文件安装。这两种方法能满足大多数人的需求。第一种方法&#xff0c;如下图所示&…

anaconda下python中matplotlib画图无法显示中文

第一步&#xff1a;在自己电脑里选择喜欢的字体&#xff0c;搜索位置为C:\Windows\Fonts&#xff0c;我选择的是SimSun 第二步 查找Matplotlib默认字体目录 打开anaconda prompt,输入python&#xff0c;接下来进入查找过程 查找代码如下 import matplotlib print(matplotlib.…

Python编程及高级数据分析

一、介绍&#xff08;11月22日&#xff09; 小问题找函数 大问题找包 python数据分析常用的包 数据库实现的功能的在panda包里面找 其中M\S\P是数据可视化工具 深度学习使用的包是pytorch(facebook支持) 中文的nlp&#xff1a;Jieba、pynlpir 英文的nlp:NLTK 学python前的准…

helm安装_Helm部署和体验jenkins

运行在Kubernetes上的Jenkins下图来自rancher官方博客&#xff0c;在kubernetes环境下&#xff0c;jenkins任务被交给各个pod执行&#xff0c;这些pod在需要时被创建&#xff0c;任务结束后被销毁&#xff0c;这样既能合理利用资源&#xff0c;又能给每个任务提供一致的干净的初…

【无标题】【一周安全资讯1223】一图读懂《工业和信息化部办公厅关于组织开展网络安全保险服务试点工作的通知》;15亿条纽约房产记录泄露

要闻速览 1、一图读懂《工业和信息化部办公厅关于组织开展网络安全保险服务试点工作的通知》 2、国家数据局《“数据要素”三年行动计划 (2024—2026年)》公开征求意见 3、中国信息通信研究院发布《公共数据授权运营发展洞察 (2023年)》 4、15亿条纽约房产记录泄露&#xff0c…

自定义键盘码_无线+矮轴≤299?ikbc S200 2.4G 机械键盘测评

早在18年初&#xff0c;Cherry就发布了适用于笔记本及超薄键盘的全新轴体MX Low Profile&#xff0c;也就是为人所熟知的“矮轴”。之后Ducky、酷冷至尊、FILCO、ikbc等一众厂商也先后推出了搭载Cherry矮轴的超薄机械键盘&#xff0c;不过市场表现一直有些不温不火。在码呆看来…

simpledateformat格式_如何使用SimpleDateFormat?

SimpleDateFormat是一种比较常用的时间类&#xff0c;可以实现对时间按照一定的字符串格式进行处理。DateFormat类的作用把时间对象转化成指定格式的字符串。反之&#xff0c;把指定格式的字符串转化成时间对象。DateFormat是一个抽象类&#xff0c;一般使用它的的子类SimpleDa…

李沐老师的《动手学深度学习PyTorch》中的d2lzh_python包的安装

关于RNN章节 以及模型章节等会使用到d2l的python包 cmd下载地址&#xff1a;pip install d2l -i https://pypi.doubanio.com/simple/

人体轮廓_人体艺术:赏世界著名的女人体油画:身体轮廓

阅读本文前&#xff0c;请您先点击上面的“十点姐姐”&#xff0c;再点击“关注”&#xff0c;这样您就可以继续免费收到文章了。每天都有分享&#xff0c;完全是免费订阅&#xff0c;请放心关注。 …

c语言未声明的标识符什么意思_C语言中%d和%f是什么意思啊?

%d表示输入或输出十进制有符号数&#xff1b;%f表示输入或输出浮点数&#xff08;float&#xff0c;四字节表示&#xff09;&#xff1b;在C语言中输出不同数据时需要用到不同的格式字符&#xff0c;%d是用来输出十进制整型数据的实际长度输出&#xff0c;%f是以小数形式输出单…

李沐老师《动手学深度学习》课程总结1

数据操作 1、 创建数组&#xff1a;形状、数据类型、数据值 2、 访问元素&#xff1a;[1, 2] 访问第二行第三列 [1, :] 访问第二行 [1:3, 1:] 子区域&#xff1a;第二行至第四行前一行到第二列之后所有 [::3, ::2] 子区域&#xff1a;每三行一跳 第零、三…行拿出; 第零、二…列…

gimp 抠图_gimp抠图教程:gimp快速实现抠图效果

摘要&#xff1a;将图像中需要的部分从画面中精确地提取出来&#xff0c;我们就称为抠图&#xff0c;抠图是后续图像处理的重要基础&#xff0c;关于gimp的快速抠图技巧你们知道吗?将图像中需要的部分从画面中精确地提取出来&#xff0c;我们就称为抠图&#xff0c;抠图是后续…