聚类分析评估 上|学习笔记

简介: 快速学习聚类分析评估 上

开发者学堂课程【高校精品课-华东师范大学 - Python 数据科学基础与实践聚类分析评估 上】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/1067/detail/15536


聚类分析评估 上

 

内容介绍

一、评估原因

二、有效性度量

三、内部指标

 

一、评估原因

1、确定一组数据的距离趋势,即区分数据中是否存在非随机结构。看数据中是否存在聚类。

2、评估序列分析的结果如何与数据匹配,而不涉及到外部信息。也就是说,使用序列是无监督的。基本上不用太依赖于外部的专业知识或背景知识。

3、聚类算法评估可以比较两组不同的距离分析结果,哪一个距离效果更好。

4、可以比较簇,例如在一个聚类的结果当中有几个簇,也可以比较两个簇之间的优劣。

5、可以确定正确的聚类数量。利用评估可以确定正确的具体数量,例如k-means算法中的k要设成多大就可以通过评估算法来帮助决策。

下图最左边是原始样本,右边第一个是k-means算法,第二个是层次聚类的全链,第三个是密度聚类的dbscan算法。这三个算法的聚类结果并不相同。要辨别优劣,就需要使用聚类算法评估的方法。

image.png

 

二、有效性度量

1、外部指标,即用有监督的方法提供标签,然后来进行评估。聚类是无监督的,但是为了验证优劣,可以事先在样本上面提供标签,知道样本属于哪一类,用样本属性数据适应聚类算法。对比聚类算法聚成的类和真实的类之间的相似和差异,以此来判断距聚类算法的优劣,这个方法很好,但是工作量巨大,事先还要打好样本的标签。

在实际应用里面,在非常重要的场合可以用这种方法,但是大多数时候不用,因为需要额外的工作量。

2、内部指标,即完全用无监督的内部评价,如前面学过的sse就是一个内部指标。

3、相对指标,它综合了外部指标和内部指标。例如可以使用外部指标的标签代表信息,然后再结合内部指标的SsE进行综合。

这个是比较学术性的学说探讨。但在实际的工作中,用的比较多的还是内部指标,因为本身就是无监督的数据挖掘方法。

 

三、内部指标

1、sse,即误差平方和,全称为sum of squares for error,误差平方和也叫做残差平方和,反映每个样本各观测值的离散状况即中心 值的离散状况,又称为组内平方和或者是误差项平方和。

 image.png 

它可以用于确定聚类的数目,例如上图里有十个自燃簇,真实样本就是十个。如何判断出聚成几类,看下图,有一个sse曲线的拐点,也叫做弯形的判据,肘部的法则。

横坐标是聚类数量k,纵坐标是误差平方和sse。当聚类的数目比较少时,sse比较大。当聚类数量增加的时候,sse就会变小,变得比较平滑,在图中10是曲线的拐点,这个拐点就是聚类最好的数目,所以可以确定聚类的数目。这就是sse这个指标本身的含义和价值。

2、凝聚度与分离度。凝聚度用来衡量簇中的对象有多密切相关,越凝聚越密切相关。而分离度用来衡量一个簇与其它簇有多独特或完全分离。

凝聚度和分离度可以用这两个指标来表示,wss和bss。

image.png(1)公式:wss是Within,内部的,即一个簇内部的对象有多密切。如图,设对象的样本为x与平均值中心的误差平方以后求和,再在外面求类的和。

一个类最好是每个样本都在中心,那误差就是零,每个样本都在中心的聚类效果最好,但是真实样本中不可能出现。

bss公式是类和类之间的误差,即类的中心和类的中心之间的差值平方,然后再求和。其中的Ci是某一个簇的大小。

(2)直观理解

左图表示的是凝聚度,是看一个簇里面的对象如何相似,如果都集中在簇中心效果最好。

右图是分离度,要综合考虑几个簇所有样本之间的距离,也可以用两个簇的中心之间的距离来表示。

相关文章
|
设计模式 数据可视化 测试技术
实践中的面向对象的例子
【7月更文挑战第1天】本文介绍面向对象编程注重代码的可理解性、重用和维护。例如,设计一个显示时间、温度等的设备,用户无需关心内部工作,这就是封装;如果需要多个设备,可通过多态创建不同实例;而继承则允许共享通用功能,如所有时钟都继承自计时器基类。
496 0
实践中的面向对象的例子
|
前端开发 人机交互
langchain 入门指南 - ReAct 模式
langchain 入门指南 - ReAct 模式
714 1
|
存储 缓存 安全
从原理到实践:掌握DPDK内存池技术(下)
从原理到实践:掌握DPDK内存池技术
基于VMD的小波软阈值的局方信号降噪方法研究
基于VMD的小波软阈值的局方信号降噪方法研究
244 1
|
小程序 JavaScript
微信小程序中的页面跳转(通过点击按钮、调用方法的形式)
这篇文章讲解了微信小程序中页面跳转的方法,包括使用按钮点击事件和调用方法实现跳转,以及推荐使用`this.pageRouter.navigateTo`代替`wx.navigateTo`的方式。
微信小程序中的页面跳转(通过点击按钮、调用方法的形式)
|
缓存 小程序
微信小程序解决wx.getUserProfile is not a function 问题
微信小程序解决wx.getUserProfile is not a function 问题
469 4
【Echarts】Echarts 柱形图实现从右向左滚动
【Echarts】Echarts 柱形图实现从右向左滚动
489 0
|
并行计算 PyTorch Docker
LLaMA-Factory 基于docker的大模型多卡分布式微调
LLaMA-Factory是微调工具,包含Dockerfile和train.sh脚本,适用于多卡训练。Dockerfile基于nvidia/cuda:12.1.0镜像,安装Python 3.10、PyTorch 2.2.0、transformers等库。train.sh运行Docker容器,使用accelerate launch进行训练,参数包括模型路径、学习率、优化器设置等。注意使用--shm-size 32G --gpus all,并可选启用unsloth加速。默认配置文件设定了分布式训练和混合精度BF16。
3983 1
|
存储 关系型数据库 MySQL
CentOS上安装MySQL 8.0的详细教程
CentOS上安装MySQL 8.0的详细教程
5953 0
|
SQL API Apache
Dinky是一个基于Apache Flink的数据集成工具
Dinky是一个基于Apache Flink的数据集成工具
930 1