大数据---聚类分析概述及聚类评估

news2025/1/14 1:06:21

聚类概述:

什么是聚类?

  • 是把数据对象集合按照相似性划分成多个子集的过程。
  • 每个子集是一个簇(cluster),分类的最终效果:使得簇中的对象彼此相似,但与其他簇中的对象相异。
  • 聚类是无监督学习,因为给的数据没有类标号信息。

分类和聚类的区别

分类

  • 有监督学习;
  • 通过带标签的样本进行学习,生成分类模型(分类器)。
    聚类
  • 无监督学习;
  • 通过观察学习,根据样本间的相似性将数据分割成多个簇。

基本聚类方法

  • 划分方法
  • 层次方法
  • 基于密度的方法

划分方法

划分方法:将有n个对象的数据集D划分成k个簇,并且k≤n,满足如下的要求:

  • 每个簇至少包含一个对象
  • 每个对象属于且仅属于一个簇
    基本思想:
  • 首先创建一个初始k划分( k为要构造的划分数,即簇的个数);
  • 然后不断迭代地计算各个簇的聚类中心,并依据新的聚类中心调整聚类情况,直至收敛。
    目标:
  • 同一个簇中的对象之间尽可能“接近”或相关;
  • 不同簇中的对象之间尽可能“远离”或不同。
    基于划分的方法实质上是一种启发式方法:
    k-均值(k-means)及其改进算法
  • 每个簇用该簇中对象的均值来表示
  • 基于质心的技术
    k-中心点(k-medoids)算法
  • 每个簇用接近簇中心的一个对象来表示
  • 基于代表对象的技术
    适用性方面:
  • 适合中小规模数据库中的球状聚类;
  • 对于大规模数据库和处理任意形状的聚类,这些算法需要进一步扩展。

K-Means算法

image.png

image.png

规定k=2,即划分为两个簇然后先随机选取两个红色的点作为聚类中心,然后通过计算其他点与中心点的距离来划分簇,当此次划分完成后通过计算均值来重新定义聚类中心,然后重复上述过程来重新划分簇.直到最后发现此次形成的簇与上一次相同,因此聚类过程到此结束。

Kmeans算法为启发式算法,遵循的寻优原则:
每次聚类保证局部最优,随后调整聚类,利用局部最优聚类的上限来不断逼近全局最优

image.png

K-Means算法优缺点

优点:

  • 聚类时间快
  • 当结果簇是密集的,而簇与簇之间区别明显时,效果较好
  • 相对可扩展和有效,能对大数据集进行高效划分
    缺点:
  • 用户必须事先指定聚类簇的个数(即k值需指定)
  • 常常终止于局部最优
  • 只适用于数值属性聚类(计算均值有意义)
  • 对噪声和异常数据也很敏感
  • 不同的初始值,结果可能不同
  • 不适合发现非凸面形状的簇
    凸面形状的簇–指圆形矩形等形状,是指当选择形状内任意两点,这两点的连线上所有点,也都在形状内。

K-Means算法还有一些改进算法:

  • K-Mode算法
  • K-Means++算法

K-Mode算法 —— 解决数据敏感的问题

在K-Means算法中只能适用于连续的数值属性的聚类,为解决离散属性的问题,K-Mode算法对其进行了改进:

  • 用众数代替均值;
  • 使用新的相异性度量方法。

K-Means++算法 —— 解决初始点选择问题

K-Means算法中初始值选择的不同也会引起不同的聚类结果,因此K-Means++算法对其做了改进。

K-Means++算法基本原理:

  • 从输入的数据点集合中随机选择一个点作为第一个聚类中心;
  • 对于数据集中的每一个点X,计算其与聚类中心的距离D(X);
  • 选择一个D(X)最大的点作为新的聚类中心;
  • 重复2和3步直到K个聚类中心被选出;
  • 利用K个初始聚类中心运行K-Means算法。
    *即尽可能选择距离远的点来作为初始种子节点

K-Mediods(K中心点算法)

K-Mediods算法可以解决K-Means算法对离群点敏感的问题。
K-中心点算法(解决对离群点敏感的问题):

  • 选用簇中位置最中心的实际对象即中心点作为参照点;
  • 基于最小化所有对象与其参照点之间的相异度之和的原则来划分(使用绝对误差标准)

image.png

K-中心点算法的基本思想:

  • 首先为每个簇随意选择一个代表对象,剩余的对象根据其与代表对象的距离分配给最近的一个簇。
  • 然后迭代地用非代表对象来替代代表对象,以改进聚类的质量(找更好的代表对象)。
  • 聚类结果的质量用一个代价函数来估算,该函数评估了对象与其参照对象之间的平均相异度。

PAM算法

PAM算法(Partitioning Around Medoids)是最早提出的K-中心点算法之一。
PAM算法的基本思想:

  • 随机选择 k 个对象作为初始的代表对象;
  • 指派每个剩余的对象给离它最近的代表对象所代表的簇;
  • 随机地选择一个非代表对象Orandom;
  • 计算用Orandom代替其中的代表对象Oj的总代价S ;
  • 如果S<0,则用Orandom替换Oj形成新的k个代表对象的集合.

image.png

image.png

image.png
总而言之就是一个不断更新中心点使得总距离不断减小的过程.

PAM算法的优缺点

优点

  • 当存在噪音和孤立点时,PAM 比K-Means算法更健壮。
    缺点
  • PAM 对于较小的数据集非常有效,但不能很好地扩展到大型数据集,原因是计算复杂度较高。
  • 每次中心点交换的时候,就要计算数据中每个点的代价

image.png

层次方法

层次方法需满足以下3个条件:

  • 对给定数据对象集进行层次的分解;
  • 使用距离矩阵作为聚类标准;
  • 不需要输入聚类数目k,但需要终止条件。
    两种层次方法:
    自底向上方法(凝聚)
  • 初始将每个对象作为单独的一个簇,然后相继的合并相近的对象或簇,直到所有的簇合并为一个,或者达到一个终止条件。
  • 代表算法:AGNES算法
    自顶向下方法(分裂)
  • 初始将所有的对象置于一个簇中,在迭代的每一步,一个簇被分裂为多个更小的簇,直到最终每个对象在一个单独的簇中,或达到一个终止条件。
  • 代表算法:DIANA算法

image.png

AGNES算法

  • 首先,将数据集中的每个样本作为一个簇;
  • 然后,根据某些准则将这些簇逐步合并;
  • 合并的过程反复进行,直至不能再合并或者达到结束条件为止
    合并准则
  • 每次找到距离最近的两个簇进行合并。
  • 两个簇之间的距离由这两个簇中距离最近的样本点之间的距离来表示。
    计算距离有以下几种方法:

AGNES算法 —— 最小距离

image.png

AGNES算法 —— 最大距离

image.png

AGNES算法 —— 平均距离

image.png

算法终止条件

(1)指定簇的数目k
(2)簇之间的距离超过一定阈值

DIANA算法

  1. 将所有的对象初始化到一个簇中。
  2. 在所有对象中找到最大距离的两个对象,对簇进行分类;
  3. 直到到达用户指定的簇数目或两个簇之间的距离超过某个阈值

image.png
即首先计算各个点到其他所有点的平均距离,选出最远的点作为新的簇,然后遍历旧的簇中所有点,计算他们分别和新旧两个簇中的最近点的距离,离谁更近就将它放入那个簇中.

层次方法的问题及改进

层次聚类存在的主要问题:

  • 合并或分裂的决定需要检查和估算大量的对象或簇
  • 一个步骤一旦完成便不能被撤销
  • 避免考虑选择不同的组合,减少计算代价
  • 不能更正错误的决定
  • 不具有很好的可伸缩性
    改进方法:
  • 将层次聚类和其他的聚类技术进行集成,形成多阶段聚类。

基于密度的方法

基于密度聚类方法:

  • 根据密度条件对邻近对象分组形成簇,簇的增长或者根据邻域密度,或者根据特定的密度函数(只要临近区域的密度超过某个阈值,就继续聚类)
    主要特点:
  • 发现任意形状的聚类
  • 处理噪音
  • 一遍扫描
  • 需要密度参数作为终止条件
    ε-邻域:
    给定对象半径ε内的邻域称为该对象的ε-邻域。
    核心对象:
    如果对象的ε-邻域至少包含最小数目MinPts个对象,则称该对象为核心对象
    直接密度可达:
    给定对象集合D,如果 p 是在 q 的ε-邻域内,而 q 是核心对象,则称对象 p 是从对象 q 关于ε和MinPts直接密度可达的。
    密度可达:
    如果存在一个对象链p1, …, pn,p1 = q, pn= p,使得pi+1是从pi直接密度可达的,则称对象p是从对象q关于ε和MinPts(间接)密度可达的。

image.png
密度相连的:
如果存在对象 o ,使得p 和q 都是从o关于ε和MinPts密度可达的,则称对象p与q关于ε和MinPts是密度相连的.

image.png

image.png

image.png

聚类评估

聚类评估的任务:

  • 估计聚类趋势:评估数据集是否存在非随机结构;
  • 确定数据集中的簇数:在聚类之前,估计簇数;
  • 测定聚类质量:聚类之后,评估结果簇的质量。

估计聚类趋势

image.png

确定数据集中的簇数

实验方法

  • 对于n个点的数据集,簇数√n/2,每个簇约有√2n个点。
    肘方法
  • 增加簇数可以降低簇内方差之和,但是如果形成太多的簇,降低簇内方差之和的边缘效应可能下降。

image.png

测定聚类质量

image.png

image.png

  • 簇的同质性
  • 簇的完全性
  • 碎布袋性
  • 小簇保持性

簇的同质性

image.png

簇的完全性

image.png

碎布袋性

image.png

小簇保持性

image.png

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

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

相关文章

ses价签墨水屏折腾-01

前言 一直想玩玩墨水屏&#xff0c;这次咸鱼找了全新的ses价签&#xff0c;而且价格还很便宜&#xff0c;于是买了一个2.66寸三色&#xff0c;和一个4.2寸三色的墨水屏幕&#xff0c;经过几天的折腾终于能正常显示了。 显示效果如下&#xff1a; 折腾来折腾去&#xff0c;发…

DMES-2023第十三届数字营销与电商峰会大会 火热报名中

2023第十三届数字营销与电商峰会将于7月6-7日在上海召开&#xff01; 本次峰会线上线下同步举行&#xff0c;将通过七大热点主题帮助品牌主突破模式能力&#xff0c;回归初心、精耕细作&#xff0c;实现可持续增长&#xff1b;提升产品能力&#xff0c;实现可持续长期增长&…

智能名片如何缓解社交商务时的尴尬场景?

2023年微信月活用户已超过13.1亿&#xff0c;而小程序也成为了一个神奇的窗口。透过这个窗口&#xff0c;越来越多的人发现了微信生态内的巨大商机&#xff0c;通过小程序也涌现出许多新颖的玩法。 智能名片小程序&#xff0c;基于微信与 AI 技术开发&#xff0c;将企业名片系…

强化学习基础篇【1】:基础知识点、马尔科夫决策过程、蒙特卡洛策略梯度定理、REINFORCE 算法

【强化学习原理+项目专栏】必看系列:单智能体、多智能体算法原理+项目实战、相关技巧(调参、画图等、趣味项目实现、学术应用项目实现 专栏详细介绍:【强化学习原理+项目专栏】必看系列:单智能体、多智能体算法原理+项目实战、相关技巧(调参、画图等、趣味项目实现、学术应…

MKS SERVO4257D 闭环步进电机_系列6 串口(RS485)通讯示例

第1部分 产品介绍 MKS SERVO 28D/35D/42D/57D 系列闭环步进电机是创客基地为满足市场需求而自主研发的一款产品。具备脉冲接口和RS485/CAN串行接口&#xff0c;支持MODBUS-RTU通讯协议&#xff0c;内置高效FOC矢量算法&#xff0c;采用高精度编码器&#xff0c;通过位置反馈&a…

CAR-T药物|疗法适应症|市场销售-上市药品前景分析

对患有癌症的人来说&#xff0c;能够幸运地度过5年大关是一种成功&#xff0c;而能够成功地度过10年大关则是一种奇迹。Emily作为全球第一个接受CAR-T治疗成功的白血病儿童患者&#xff0c;至今已成功摆脱癌症11年之久。 ①CAR-T细胞治疗&#xff08;Emily Whitehead治疗案例时…

Benewake(北醒) 中距 TF40 40m介绍以及资料整理

目录 1 前言2 产品介绍3 产品快速测试3.1 产品规格书及使用说明书3.2 通用上位机测试说明3.3 通用指令串口助手使用说明3.4 产品快速测试说明 4 基于开源硬件的运用整理4.1 在开源Arduino上的运用 1 前言 本文包含【Benewake(北醒) 】中距 TF40 40m介绍以及资料整理 详细请参考…

Arduino软件+ ESP8266 MCU开发项目之一键式配网操作(有掉电保护),可继续开发成为--WIFI放大器项目。

下载本次ESP8266 MCU开发项目之一键式配网 代码文件 (11条消息) 配网ESP8266MUC.rar资源-CSDN文库 流程图讲解 视频展示效果 配网ESP8266 项目可待 改进/升级 的地方 1&#xff1a;配网流程UI界面单调&#xff0c;可搭配复杂UI配网界面 2&#xff1a;配网流程可看作是WIFI放…

NSS周常刷密码(2)

[GWCTF 2019]babyRSA 解答过程在脚本内 from Crypto.Util.number import * import gmpy2 import sympy import z3e 0x10001 N63658514959457474690903016018269086622290925646484729178300065183722792133723789965128794359777327094438403485892529574488072710160684141…

移动云镜像配置BC-Linux --配置centos 6-7-8版本参考

移动云BC linux 也是一个非常不错的镜像站. 可以加速国内下载. 非常好用, 速度比阿里 等那些流行的镜像站快一些. 下面介绍详解操作配置, 供参考 移动云开源镜像站-Linux系统订阅服务 移动云开源镜像站&#xff0c;包含BC-Linux各版本的软件仓库&#xff0c;对外提供软件升级…

Apache Kudu入门学习

目录 一、概念 二、背景 三、特点 四、架构 五、应用场景 六、kudu的模式设计 1、列设计 2、主键设计 3、分区设计 1.范围分区Range Partitioning 2.哈希分区Hash Partitioning 3.多级分区Multilevel Partitioning 一、概念 官方概念&#xff1a; Apache Kudu i…

​细说websocket - php篇 ​

下面我画了一个图演示 client 和 server 之间建立 websocket 连接时握手部分&#xff0c;这个部分在 node 中可以十分轻松的完成&#xff0c;因为 node 提供的 net 模块已经对 socket 套接字做了封装处理&#xff0c;开发者使用的时候只需要考虑数据的交互而不用处理连接的建立…

代码随想录算法训练营day59 | 503.下一个更大元素II,42. 接雨水

代码随想录算法训练营day59 | 503.下一个更大元素II&#xff0c;42. 接雨水 503.下一个更大元素II解法一&#xff1a;单调栈&#xff08;两次遍历解决环状问题&#xff09; 42. 接雨水解法一&#xff1a;单调栈&#xff08;横向累计&#xff09;解法二&#xff1a;暴力解法解法…

听说今年 “金9银10” 变成 金七银八 了...

眼下虽然才6月份&#xff0c;但真正的金9银10已经悄然开始。从认识的HR那得知&#xff0c;有些公司甚至在6月就开始布局了。。而年前偃旗息鼓的&#xff0c;年后也势必加速进入这波抢人大战&#xff01; 因此&#xff0c;真的要等到9、10月份再做准备的话&#xff0c;就晚了。…

6-TET, SE,6-TET, SE 6-(4,6-二氯三嗪基)氨基荧光素,一种流行的氨基反应荧光探针

文章关键词&#xff1a;荧光反应探针 中文名称&#xff1a;6-TET, SE 6-(4,6-二氯三嗪基)氨基荧光素 英文名称&#xff1a;6-TET, SE 规格标准&#xff1a;10mg&#xff0c;25mg&#xff0c;50mg CAS&#xff1a;N/A 分子式&#xff1a;C25H11Cl4NO9 分子量&#xff1a;611.17 …

win命令窗口的常用命令

文章目录 一、端口号1、查看所有端口netstat -ano2、查看指定端口情况3、终止改端口4、 二、硬盘操作2.0、进入磁盘管理2.1、 查看磁盘2.2、 选择磁盘2.3、 查看分区2.4、 选择分区2.5、 进入分区删除分区 参考文章 一、端口号 1、查看所有端口netstat -ano netstat -ano 2、查…

【ZLM】ZLM源码阅读一

目录 初始化 RTP RTSP RTMP TCPServer的初始化 参考文档 初始化 RTP RTSP RTMP TCPServer的初始化 参考文档 本文参考&#xff1a; (17条消息) 《ZLToolKit源码学习笔记》&#xff08;20&#xff09;网络模块之TcpServer_秦时小的博客-CSDN博客 RTP https://blog.csdn.…

在嵌入式linux板子上搭建NFS服务器

使用portmapnfs-utils的工具在hi3536的linux系统上搭建nfs服务器&#xff0c;使用VM虚拟机中的ubuntu作为客户端挂载&#xff0c;进行文件的读写。 编译能够支持nfs server的内核 1.首先对linux内核进行修改&#xff0c;让linux内核支持nfs服务器的功能&#xff0c;修改方式是…

通过yum:mysql5.6-msyql5.7-mysql8.0升级之路

一 前言 mysql的yum源 https://dev.mysql.com/downloads/repo/yum/ https://dev.mysql.com/get/mysq57-community-release-el7-7.noarch.rpm服务器信息 2c2g40GB [rootlocalhost ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [rootlocalhost ~]# una…

如何进行测试优先级划分

一般测试的优先级是从这三种情况进行划分&#xff1a;新模块测试、回归测试和特殊功能测试。 1、新单元模块的测试优先级 新模块单元&#xff0c;内部业务逻辑测试&#xff0c;优先级第一。新模块单元与其他模块的集成测试优先级第二。 对于新模块的测试&#xff0c;应以完成单…