数据挖掘(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.rhkb.cn/news/163979.html

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

相关文章

Linux实用指令-指定运行级别、帮助指令

一、 指定运行级别 1.运行级别说明&#xff1a; 0:关机 1:单用户[找回丢失密码] 2:多用户状态没有网络服务 3:多用户状态有网络服务 4:系统未使用保留给用户 5:图形界面 6:系统重启 常用运行级别是3和5&#xff0c;要修改默认的运行级别。可改文件/etc/inittab 的id:5:initd…

Spring学习笔记(2)

Spring学习笔记&#xff08;2&#xff09; 一、Spring配置非定义Bean1.1 DruidDataSource1.2、Connection1.3、Date1.4、SqlSessionFactory 二、Bean实例化的基本流程2.1 BeanDefinition2.2 单例池和流程总结 三、Spring的bean工厂后处理器3.1 bean工厂后处理器入门3.2、注册Be…

Dreambooth工作原理

什么是Dreambooth 中文名&#xff1a;梦想亭。 Dreambooth 由 Google 研究团队于 2022 年发布&#xff0c;是一种通过向模型注入自定义主题来微调扩散模型&#xff08;如稳定扩散&#xff09;的技术。 所谓自定义主体&#xff0c;就是一张照片&#xff0c;但是照片主体要鲜明…

idea启动vue项目:Error:0308010C:digital envelope routines::unsupported

此问题是因为Node.js的版本原因&#xff0c;此处安装的Node.js是最新长期维护版: 18.16.0 (includes npm 9.5.1) 有两种解决办法&#xff1a; #1、方法一 重新安装低版本的node.js#2、方法二 在package.json文件中进行配置【此种方法较简单】介绍一下第二种方法&#xff1a; …

win32汇编-使用子程序

当程序中相同功能的一段代码用得比较频繁时&#xff0c;可以将它分离出来写成一个子程序&#xff0c;在主程序中用call指令来调用它。这样可以不用重复写相同的代码&#xff0c; 仅仅用call指令就可以完成多次同样的工作了。Win 32汇编中的子程序也采用堆栈来传递参数&#xff…

Python学习-----Day09

一、利用装饰器来获取函数运行的时间、 #导入time模块 import timedef decorated(fn):def inner():#time.time获取函数执行的时间a time.time() # func开始的时间fn()b time.time() # func结束的时间print(f"{fn.__name__}程序运行的总数时间:{b - a}秒")return…

Win系统VMware虚拟机安装配置(二)

系统的安装得分两个步骤&#xff0c;第一步得配置一台电脑&#xff0c;选配 cpu&#xff0c;内存&#xff0c;磁盘&#xff0c;网卡等硬 件。第二步才是安装系统。 一、配置电脑 1、 进入 VMware 双击 VMware 图标&#xff0c;看到如下界面。 2、 自定义新的虚拟机 3、…

地铁大数据客流分析系统 设计与实现 计算机竞赛

文章目录 1 前言1.1 实现目的 2 数据集2.2 数据集概况2.3 数据字段 3 实现效果3.1 地铁数据整体概况3.2 平均指标3.3 地铁2018年9月开通运营的线路3.4 客流量相关统计3.4.1 线路客流量排行3.4.2 站点客流量排行3.4.3 入站客流排行3.4.4 整体客流随时间变化趋势3.4.5 不同线路客…

SNAP对Sentinel-1预处理

SNAP对Sentinel-1预处理 一、导入数据 二、轨道校正 点击run开始处理 三、噪声去除 打开S-1 Thermal Noise Removal工具 如果选中了VH&#xff0c;就只会输出一个VH极化结果 四、辐射定标 Run 五、滤波处理 六、地形校正 这边的dem需要自己下载 dem下载地址 如果一格…

跨境电子商城源代码定制网站搭建(商品采集,多货币,多语言)

欢迎来到全新的跨境电子商城源代码定制网站搭建!这是一个集商品采集、多币种和多语言于一身的创新平台&#xff0c;为您的跨境电商事业提供了前所未有的便利和机会! 一、精选全球商品&#xff0c;一站式采集 在跨境电子商务的时代&#xff0c;我们深谙选择高质量商品的重要性。…

Python 框架学习 Django篇 (三) 链接数据库

只要你是做后端开发的&#xff0c;那么就离不开各种数据库&#xff0c;Django框架对各种数据库都非常友好&#xff0c;比如常见的PostgreSQL、MySQL、SQLite、Oracle&#xff0c;django都对他们提供了统一调用api&#xff0c;我们这里主要使用mysql数据库作为演示 一、ORM机制 …

【开源分享】基于Html开发的房贷计算器,模仿新浪财经

房贷计算器是一种房贷计算的在线计算Web应用&#xff0c;按用户选择的贷款类型、贷款金额、期限、利率可计算得出每月月供参考、支付利息、还款总额这些信息。本文模仿新浪财经开发的房贷计算器。 作品预览 https://fangdai.gitapp.cn 源码地址 https://github.com/geeeeeee…

5、使用 pgAdmin4 图形化创建和管理 PostgreSQL 数据库

通过上几篇文章我们讲解了如何安装 PostgreSQL 数据库软件和 pgAdmin4 图形化管理工具。 今天我们继续学习如何通过 pgAdmin4 管理工具图形化创建和管理 PostgreSQL 数据库。 一、PostgreSQL的基本工作方式 在学习如何使用PostgreSQL创建数据库之前&#xff0c;我们需要了解一…

vue3+element-plus 封装高度搜索组件,支持多种类型

目录 一、应用场景 二、开发流程 三、详细开发流程 1.新建文件 2.开始步骤 3.详细代码 (1).index.vue (2).搜索组件 (3).单个搜索组件 总结 一、应用场景 一般很多网站&#xff0c;有很多数据列表&#xff0c;基本都要做搜索的功能&#xff0c;如果涉及很多页面&…

【CMN】Components组件汇总

CMN 700由各种类型的设备组成&#xff0c;包括路由器模块、CHI节点和网桥。所需要的组件取决于系统的需求&#xff0c;有些组件是可选的&#xff0c;或者只有在满足某些需求时才会使用。CMN 700可以集成到一个完整的SoC系统中&#xff0c;该系统还包括其他这里未描述到的设备。…

金融机器学习方法:K-均值算法

目录 1.算法介绍 2.算法原理 3.python实现示例 1.算法介绍 K均值聚类算法是机器学习和数据分析中常用的无监督学习方法之一&#xff0c;主要用于数据的分类。它的目标是将数据划分为几个独特的、互不重叠的子集或“集群”&#xff0c;以使得同一集群内的数据点彼此相似&…

Leetcode刷题详解——四数之和

1. 题目链接&#xff1a;四数之和 2. 题目描述&#xff1a; 给你一个由 n 个整数组成的数组 nums &#xff0c;和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] &#xff08;若两个四元组元素一一对应&#xff0…

stm32 cubeide 闪退 显示self upgrade failed

更新或安装新版cubeide时&#xff0c;可能会出现打开后一段时间直接闪退&#xff0c;显示如下图。此时怎么折腾cubeide都是没用的。应该去升级stm32 cubemx。记得打开cubemx时选择用管理员身份打开&#xff0c;升级完成后重新开打。然后尝试打开cubdeide&#xff0c;如果继续报…

接口测试面试题整理​​​​​​​

HTTP, HTTPS协议 什么是DNSHTTP协议怎么抓取HTTPS协议说出请求接口中常见的返回状态码http协议请求方式HTTP和HTTPS协议区别HTTP和HTTPS实现机有什么不同POST和GET的区别HTTP请求报文与响应报文格式什么是Http协议无状态协议?怎么解决HTTP协议无状态协议常见的POST提交数据方…

《向量数据库指南》——向量数据库是小题大作的方案?

假设大语言模型需要 10 秒钟才能生成一条结果,即需要存储的单条新记忆。那么我们获得 10 万条记忆的时间周期将为:100000 x 10 秒 = 1000000 秒——约等于 11.57 天。而即使我们用最简单的暴力算法(Numpy 的点查询),整个过程也只需要几秒钟时间,完全不值得进行优化!也就…