数据挖掘(6)聚类分析

一、什么是聚类分析

1.1概述

  1. 无指导的,数据集中类别未知
  2. 类的特征:
    • 类不是事先给定的,而是根据数据的相似性、距离划分的
    • 聚类的数目和结构都没有事先假定。
  3. 挖掘有价值的客户:
    • 找到客户的黄金客户
    • ATM的安装位置

1.2区别·

二、距离和相似系数

2.1概述

  1. 原则: 组内数据有较高相似度、不同组数据不相似
  2. 相似性的度量(统计学角度):
    1. Q型聚类:对样本聚类(行聚类)
    2. R型聚类:对变量聚类(列聚类)

2.2Q型聚类(样本聚类、行聚类)

1.样本资料矩阵: 

2.定义距离的准则:

3.变量的类型

  1. 间隔尺度变量(数值型变量):可加可比
  2. 有序尺度变量(叙述型变量):不可加可比
  3. 名义尺度变量(名义型变量):不可加不可比

4.间隔尺度变量(数值型变量)

  1. 缺点:数据集中存在变量取值范围相差十分悬殊,会造成大数吃小数现象。

  2. 数值与指标量纲有关

度量值的标准化:

  • 将初始测量值转换为无单位变量。
  • 常用零均值规范化

特例:比例数值变量

 5.有序尺度变量

  1. 只可以不可加:比如各种排名、等级
  2. 步骤

6.名义尺度变量(符号变量)

  1. 两种类型

    1. 二元变量:
      • 只有两个取值变量:如男女、开关、01
    2. 名义变量:
      • 二元变量推广:如颜色变量(R,G,B)
  2. 二元变量计算:

    1. 差异矩阵法:

    2. 恒定的相似度

      1. 对称的二元变量:取值01内容同等价值、相同权值
        • 如:男女
      2. 简单匹配系数
        • d_{ij}=\frac{r+s}{q+r+s+t}
        • 取值不一样(01或10)的个数在所有变量的比重
    3. 非恒定的相似度

      1. 非对称二元变量:取值01内容重要程度不同
        • 如:病毒阴阳性
      2. Jaccard相关系数
        • d_{ij}=\frac{r+s}{q+r+s}
        • 取值不一样(01或10)的个数在所有变量(除去取值为00)的比重
    4. 相似度系数例子(小题计算):
    5. 名义变量计算(最常用):

7.混合数据类型

  1. 现实数据库中包含多类型的数据
  2. 如何计算?
    1. 将变量按类型分组,对每种类型的变量单独聚类分析,但实际中,往往不可行。
    2. 将所有的变量一起处理,只进行一次聚类分析。
  3. 相似度计算

 2.3R型聚类(变量聚类、列聚类)

  1. 相似系数:

    • 夹角余弦
    • 相关系数
  2. 夹角余弦

    • 值越大越好
  3. 变量间相似系数

  4. 相似系数

  5. 相似矩阵

三、 类的定义和类间距离

3.1类的定义

  1. 定义1:任意元素x_i,x_j,间距离d_{ij}满足:d_{ij}\leq h
    1. 适合:团簇状
  2. 定义2:任意元素x_i,x_j,间距离d_{ij}满足\frac1{k-1}\sum_{x_j\in S}d_{ij}\leq h(类内平均距离)
    1. 适合:团簇状
  3. 定义3:对于任意元素x_i\in S,存在x_j\in S使得其满足d_{ij}\leq h(不要求任意两个元素)
    1. 适合:长条状

3.2类间距离

  1. 最近距离

    1. w_kw_1最近距离为D_{kl}=min[d_{ij}]

    2. w_lw_qw_p,合并得到的D_{kl}=\min[D_{kp},D_{kq}]

    3. 实际中不多见,避免极大值影响

    4. 例子

      1. 计算类间距离,然后将最小的两个进行合并

  2. 最远距离 
    1. w_kw_1最远距离为D_{kl}=max[d_{ij}]
    2. w_lw_qw_p,合并得到的D_{kl}=\max[D_{kp},D_{kq}]
    3. 可能被极大值扭曲,删除后再聚类

    4. 例题:与上面的类似,每次选取距离最小的,合并的时候取的是max

  3. 平均距离

  4. 中间距离 
  5. 重心距离
    1. 一个类空间的位置用重心表示,两个类重心之间距离为二者的距离

    2. 对异常值不敏感,结果能稳定

四、基于划分的聚类方法

4.1划分方法

  1. 将n个对象划分成k类,且满足:
    • 每个聚类内至少包含一个对象
    • 每个对象必须属于一个类(模糊划分计划可以放宽要求)
  2. 划分方法:
    1. k-均值:每个聚类用该聚类中对象的平均值表示
    2. k-中心点:每个聚类用接近聚类重心的一个对象(真实存在的点)表示

4.2k-均值聚类算法

  1. 类均值表示

  2. 不适合处理离散型属性,适合处理连续型属性

  3. 算法流程:
    1. 选取聚类中心:随机从n个数据选择k个对象作为初始聚类中心
    2. 对剩余的每个对象,根据各个聚类中心的距离,将其赋给最近的聚类。
    3. 重新计算每个聚类的平均值(中心)
    4. 不断重复,直到准则函数收敛(减小)
  4. 收敛准则函数:误差平方和最小
  5. 缺点:

    1. 局部最优,不是全局最优

    2. 结果与k的取值有关

    3. 不适合发现大小很不相同的簇、凹状的簇
      *[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AwfktfUP-1641719199744)(/uploads/upload_98816f0f833feeb2da5536e0c31765d5.png =400x)]

    4. 只有在簇的平均值被定义的情况下才能使用,不适合有类属性的数据。

    5. 对噪声、异常点敏感。

  6. 示意图例子:

4.3k-中心点聚类算法

  1. k-中心点与k-均值算法区别
    簇中心评价准则
    k-均值簇中对象均值(可以是虚点)误差平方和
    k-中心点接近簇中心的一个对象表示(实际存在的点)

    绝对误差

  2. 基本策略
    1. 随意选择一个代表对象作为中心点,将剩余对象按最小距离划分进簇中。
    2. 重复利用非中心对象代替中心对象,若改善聚类的整体距离,则进行替代。
    3. 用代价函数进行估算质量:C_{pjo}=d(i,p)-d(j,p)
  3. 替代的四种情况
  • 如何判断非代表对象O_{random}是否能替代当前代表对象O_j,需要对每个非中心点P考虑
  • 替换的总代价:{CC}_{jo}=\sum_{j=1}^nC_{pjo}
  • 若总代价为负,则可以替代

 4.算法步骤

  1. 选取聚类中心:随机从n个数据对象选择k个
  2. 循环3-5,知道聚类不发生变化
  3. 对剩余的每个对象,根据各个聚类中心的距离,将其划分给最近的聚类。
  4. 选择任意非中心对象O_{random}计算与中心对象O_j交换的成本S。
  5. 若成本S为负,则交换中心对象。

五、基于层次的聚类方法

5.1 总述

  1. 给定的数据对象集合进行层次分解,根据层次分解的方式,层次的方法被分为凝聚、分裂。
  2. 凝聚层次法(agnes算法)
    • 自底向上
    • 一开始将每个对象作为单独的一组,然后合并相近的组,直到合为一组或到达终止条件
  3. 分裂层次法(dinan算法)
    • 自底向下
    • 所有对象置于一个簇,在迭代的每一步,一个簇被分裂为更下的簇,直到每个对象单独为一个簇或到达某个终止条件
  4. 计算距离方法

5.2agnes算法

  1. 步骤:
    1. 每个对象当做一个初始簇
    2. repeant 3-4
    3. 根据两个簇中最近数据点找到最近的两个簇
    4. 合并两个簇,生成新的簇集合
    5. until 达到定义的簇的数目
  2. 例子
  3. 特点:
    • 算法简单,合并会出现问题:一旦合并就不能撤销,可能会对后续操作产生影响。
    • 复杂度比较大O(n^2)

5.3diana算法

  1. 簇的直径:一个簇中的任意两个数据点的距离中的最大值
  2. 平均相异度(平均距离):
  3. 算法步骤
    将所有对象当做一个初始簇
    for(int i = 1; i <= k; i++){在所以簇中挑选出最大直径的簇C找出C中与其他点平近距离最大的一个点p放入splinter group,剩余点放入old partyRepeat在old party中找出到splinter group比到old party更近的点,加入splinter groupUntil 没有新的点被分到splinter groupsplinter group 与 old party 就被分解为两个新的簇
    }
    
  4. 例题

 六、 基于密度的聚类方法

6.1概述

  1. 基于密度聚类方法
    • 只要一个区域中点的密度(对象、数据点的数目)超过阈值,就将其加到与之相近的聚类中
  2. 可以过滤噪声、孤立点、发现任意形状的簇
  3. 代表算法:Dbscan、Optics、Denclue

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

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

相关文章

PyQt界面里如何加载本地视频以及调用摄像头实时检测(小白入门必看)

目录 1.PyQt介绍 2.代码实现 2.1实时调用摄像头 2.2 使用YOLOv5推理 2.3 代码中用到的主要函数 1.PyQt介绍 PyQt是一个用于创建桌面应用程序的Python绑定库&#xff0c;它基于Qt框架。Qt是一个跨平台的C应用程序开发框架&#xff0c;提供了丰富的图形界面、网络通信、数据…

LiveGBS流媒体平台GB/T28181常见问题-安全控制HTTP接口鉴权勾选流地址鉴权后401Unauthorized如何播放调用接口

LiveGBS流媒体平台GB/T28181常见问题-安全控制HTTP接口鉴权勾选流地址鉴权后401 Unauthorized如何播放调用接口&#xff1f; 1、安全控制1.1、HTTP接口鉴权1.2、流地址鉴权 2、401 Unauthorized2.1、携带token调用接口2.1.1、获取鉴权token2.1.2、调用其它接口2.1.2.1、携带 Co…

前端 js 之 代码执行的一个过程 02

嘿&#xff0c;欢迎你来 &#xff01;&#x1f495; 文章目录 前言一、运行一个 js 文件二、运行环境三、js执行代码的过程&#xff08;普通变量&#xff09;四、打印 window五、js执行代码的过程&#xff08;函数变量&#xff09;六、函数调用函数的过程注意&#xff01;&…

基于LSTM-Adaboost的电力负荷预测(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Python 网络爬虫

爬虫原理 计算机一次Request请求和服务器端的Response回应&#xff0c;即实现了网络连接。 爬虫需要做两件事&#xff1a;模拟计算机对服务器发起Request请求。 接受服务器的Response内容并解析、提取所需的信息。 多页面爬虫流程 ​​​​​​​多页面网页爬虫流程

VR航天科普主题公园模拟太空舱体验馆vr航天模拟体验设备

VR航天航空体验馆巡展是一项非常受欢迎的展览活动&#xff0c;可以让公众在现场体验到航天飞行的乐趣。 普乐蛙VR展览组织者会设计一个航天航空主题的VR体验馆&#xff0c;并在馆内设置各种航天航空相关的展示内容&#xff0c;如太空舱、火箭发射、星际航行等。 其次&#xff0…

这三个方法轻松实现Excel表格名翻译不求人

在进行大量的文件处理时&#xff0c;我们往往需要借助一些工具来提高效率。比如在需要对Excel文档名进行批量翻译时&#xff0c;一个方便快捷的工具可以让我们省去许多麻烦。这里我们介绍一款软件——固乔文件管家&#xff0c;它可以帮助我们实现Excel文档名的批量翻译&#xf…

PTE-精听学习(四)

目录 精听练习方法 精听与数量无关&#xff0c;与质量有关 听到一两个单词&#xff0c;就可以默写整句话 出现了过去时&#xff0c;有时间的指示代词 表示原本以为 精听练习方法 精听与数量无关&#xff0c;与质量有关 听到一两个单词&#xff0c;就可以默写整句话 突然…

easyexcel操作之名称匹配

简单说下需求 现在我有一个excel表格&#xff0c;里面有两张表&#xff0c;分别是a_name表&#xff0c;b_name表&#xff0c;我要在这两张表的基础上新建一张a_b_name表&#xff0c;这张表匹配a,b表的名称&#xff0c;品牌名一样则放在同一行。 示例&#xff1a; a_name表 …

Mysql高级——锁(1)

锁 1. 概述 在数据库中&#xff0c;除传统的计算资源&#xff08;如CPU、RAM、I/O等&#xff09;的争用以外&#xff0c;数据也是一种供许多用户共享的资源。为保证数据的一致性&#xff0c;需要对并发操作进行控制&#xff0c;因此产生了锁。同时锁机制也为实现MySQL的各个隔…

Windows下定时下载Linux服务器的数据库备份文件(pscp+bat脚本+定时任务)

下载传输软件pscp Download PuTTY: latest release (0.79) 创建bat执行脚本 echo 删除旧的备份文件 del D:\db_bk\*.dbecho 下载新的备份文件 D:\Programs\pscp -P 22 -pw youPassword youName192.168.1.1:/home/backup/test.db D:\db_bk\ 设置定时任务 1.使用任务计划程…

【数据结构】Java对象的比较

作者主页&#xff1a;paper jie_博客 本文作者&#xff1a;大家好&#xff0c;我是paper jie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 本文录入于《JAVA数据结构》专栏&#xff0c;本专栏是针对于大学生&#xff0c;编程小白精心打造的。笔者用重金(时间和精力…