层次聚类:BIRCH 聚类、Lance–Williams equation

news2024/11/25 13:52:54

前言

如果你对这篇文章感兴趣,可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接。


BIRCH 聚类

要求数据为向量形式,则通过构建 CF-tree (Clustering Feature Tree) 实现可扩展地高效聚类,具体来说,每个簇存储一个三元组:
C F = ( N , LS , SS ) , CF=(N,\text{LS},\text{SS}), CF=(N,LS,SS),

其中 N N N 表示簇中点的数量,矢量 LS \text{LS} LS 表示各点线性求和,标量 SS \text{SS} SS 表示各点平方和。假设某簇中有 N N N D D D 维数据点,则矢量 LS \text{LS} LS 是个各点的线性求和:
LS = ∑ n = 1 N x n . \text{LS}=\sum_{n=1}^N \boldsymbol{x}_n. LS=n=1Nxn.

标量 SS \text{SS} SS 是各数据点的平方和:
SS = ∑ n = 1 N x n T x n . \text{SS}=\sum_{n=1}^N \boldsymbol{x}_n^T \boldsymbol{x}_n. SS=n=1NxnTxn.

有了 CF 特征后,两个簇合并,新的 CF 特征可以直接相加,即:
CF 1 + CF 2 = ( N 1 + N 2 , LS 1 + LS 2 , SS 1 + SS 2 ) . \text{CF}_1+\text{CF}_2=(N_1+N_2,\text{LS}_1+\text{LS}_2,\text{SS}_1+\text{SS}_2). CF1+CF2=(N1+N2,LS1+LS2,SS1+SS2).

由于 CF 很容易地可以合并,CF-tree 可以实现增量式聚类,不断插入新节点。另外,由于数据为向量形式,得到了各点向量求和后,可以方便地计算「簇质心」、「簇半径」、「簇直径」以及各类簇间距离。详细内容可参考「数据挖掘入门笔记 —— BIRCH 聚类」。


Lance–Williams equation

层次聚类中有两种常见形式:

  • 分裂式层次聚类 (Divisive Hierarchical Clustering):自顶向下,大簇不断分裂为小簇;
  • 凝聚式层次聚类 (Agglomerative Hierarchical Clustering):自底向上,小簇不断合并为大簇。

在实际应用中,凝聚式层次聚类由于不用事先指定簇个数,因此更为常见,其通常采用下述方式进行:

在这里插入图片描述
可以看出,其主要思路是定义簇间距离 d i , j d_{i,j} di,j,每次将簇间距离最小的两个簇 i , j i,j i,j 合并为一个新的簇 i + j i+j i+j,并更新其它簇到新簇的距离 d k , i + j d_{k,i+j} dk,i+j

由于每次重新计算簇间距离非常低效,因此存在 Lance–Williams equation,其定义了一种每次合并后,递归更新簇间距离的范式,如下所示:
d k , i + j = α i d k , i + α j d k , j + β d i , j + γ ∣ d k , i − d k , j ∣ . d_{k,i+j}=\alpha_i d_{k,i}+\alpha_j d_{k,j}+\beta d_{i,j}+\gamma|d_{k,i}-d_{k,j}|. dk,i+j=αidk,i+αjdk,j+βdi,j+γdk,idk,j∣.

满足上式的 merge 准则通常较为高效,此处列举一些常见的方式:
 Method  α i α i β γ  Single linkage  0.5 0.5 0 − 0.5  Complete linkage  0.5 0.5 0 0.5  Group average  n i n i + n j n j n i + n j 0 0  Weighted group average  0.5 0.5 0 0  Centroid  n i n i + n j n j n i + n j − n i ⋅ n j ( n i + n j ) 2 0  Ward  n i + n k ( n i + n j + n k ) n j + n k ( n i + n j + n k ) − n k ( n i + n j + n k ) 0 \begin{array}{|l|c|c|c|c|} \hline \text { Method } & \alpha_i & \alpha_i & \beta & \gamma \\ \hline \text { Single linkage } & 0.5 & 0.5 & 0 & -0.5 \\ \text { Complete linkage } & 0.5 & 0.5 & 0 & 0.5 \\ \text { Group average } & \frac{n_i}{n_i+n_j} & \frac{n_j}{n_i+n_j} & 0 & 0 \\ \text { Weighted group average } & 0.5 & 0.5 & 0 & 0 \\ \text { Centroid } & \frac{n_i}{n_i+n_j} & \frac{n_j}{n_i+n_j} & \frac{-n_i \cdot n_j}{\left(n_i+n_j\right)^2} & 0 \\ \text { Ward } & \frac{n_i+n_k}{\left(n_i+n_j+n_k\right)} & \frac{n_j+n_k}{\left(n_i+n_j+n_k\right)} & \frac{-n_k}{\left(n_i+n_j+n_k\right)} & 0 \\ \hline \end{array}  Method  Single linkage  Complete linkage  Group average  Weighted group average  Centroid  Ward αi0.50.5ni+njni0.5ni+njni(ni+nj+nk)ni+nkαi0.50.5ni+njnj0.5ni+njnj(ni+nj+nk)nj+nkβ0000(ni+nj)2ninj(ni+nj+nk)nkγ0.50.50000


参考资料

  • 数据挖掘入门笔记 —— BIRCH 聚类
  • Ward’s method
  • Hierarchical Clustering 4: the Lance-Williams algorithm

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

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

相关文章

嵌入式linux物联网毕业设计项目智能语音识别基于stm32mp157开发板

stm32mp157开发板FS-MP1A是华清远见自主研发的一款高品质、高性价比的Linux单片机二合一的嵌入式教学级开发板。开发板搭载ST的STM32MP157高性能微处理器,集成2个Cortex-A7核和1个Cortex-M4 核,A7核上可以跑Linux操作系统,M4核上可以跑FreeRT…

数据结构之二叉树(上)

文章目录前言一、二叉树的定义二、二叉树的几种情况三、特殊的二叉树1. 满二叉树2. 完全二叉树四、二叉树的存储结构1. 顺序存储2. 链式存储五、二叉树的性质总结前言 本文主要介绍了二叉树的基本概念以及二叉树的存储结构 一、二叉树的定义 一棵二叉树是结点的一个有限集合&…

Fortinet 发布《2022下半年度全球威胁态势研究报告》,七大发现值得关注!

全球网络与安全融合领域领导者Fortinet(NASDAQ:FTNT),近日发布《2022 下半年度全球威胁态势研究报告》。报告指出,相对于组织攻击面的不断扩大以及全球威胁态势的持续演进,网络犯罪分子设计、优化技术与战术…

助你加速开发效率!告别IDEA卡顿困扰的性能优化技巧

在现代软件开发中,IDE(集成开发环境)是一个必不可少的工具。IntelliJ IDEA是一个广受欢迎的IDE,但有时候IDE的性能可能会受到影响,导致开发人员的工作效率降低。本文将介绍一些可以提高IDE性能的技巧,帮助开…

yii2项目使用frp https2http插件问题

yii2内网项目,使用frp进行内网穿透,使用 https2http插件把内网服务器http流量转成https,会存在一个问题:当使用 $this->redirect(...) 或 $this->goHome() (其实用的也是前者)等重定向时,…

JavaScript 高级3 :函数进阶

JavaScript 高级3 :函数进阶 Date: January 19, 2023 Text: 函数的定义和调用、this、严格模式、高阶函数、闭包、递归 目标: 能够说出函数的多种定义和调用方式 能够说出和改变函数内部 this 的指向 能够说出严格模式的特点 能够把函数作为参数和返…

Spring Boo集成RocketMQ

一、介绍 Producer:生产者,用来发送消息Consumer:消费者,用来消费消息NameServer:服务注册中心,用于注册生产者、消费者,存储Broker路由 并提供给生产者和消费者Broker:用于存储消息…

【源码】Java版云HIS系统:公立二甲医院应用三年 系统运行稳定、功能齐全

SaaS模式Java版云HIS系统源码,拥有自主知识产权,采用前后端分离架构,前端由Angular语言、JavaScript开发;后端使用Java语言开发。具有强大的可扩展性,二次开发方便快捷。 文末卡片获取联系! SaaS模式Java版…

Python 开发-批量 FofaSRC 提取POC 验证

数据来源 学习内容和目的: ---Request 爬虫技术,lxml 数据提取,异常护理,Fofa 等使用说明---掌握利用公开或 0day 漏洞进行批量化的收集及验证脚本开发Python 开发-某漏洞 POC 验证批量脚本---glassfish存在任意文件读取在默认4…

canal admin管理端配置(二)

下载安装 下载地址: 下载解压即可 配置 修改canal.admin-1.1.5\conf\application.yml server:port: 8089 #端口根据是否冲突修改 spring:jackson:date-format: yyyy-MM-dd HH:mm:sstime-zone: GMT8spring.datasource:address: 192.0.16.12:3306#数据库ip和端口…

Day09-网页布局实战定位

文章目录网页布局实战一 表格案例1-单元格的合并案例2-随堂练习二 定位1 文档流2 position 共有四个属性值:3 固定定位案例1-右下角广告案例2-头部固定案例3-div居中4 相对定位案例1-基础案例案例2-文字居于水平线中间5 绝对定位案例1-基础案例6 定位的层次关系 z-index案例1踩…

免费下载丨一看即会,Serverless 技术进阶必读百宝书

过去一年,全球正在加速推进云计算的 Serverless 化进程。Serverless 架构已经逐渐从“被接受”走向了“被学习”和“被应用”。云的产品体系正在 Serverless 化,从计算、存储、数据库到中间件,越来越多的云产品采用了 Serverless 模式。服务器…

筑基九层 —— 指针详解

目录 前言: 指针详解 前言: 1.CSDN由于我的排版不怎么好看,我的有道云笔记比较美观,请移步有道云笔记 2.修炼必备 1)入门必备:VS2019社区版,下载地址:Visual Studio 较旧的下载 -…

现代卷积神经网络(GoogleNet),并使用GoogleNet进行实战CIFAR10分类

专栏:神经网络复现目录 本章介绍的是现代神经网络的结构和复现,包括深度卷积神经网络(AlexNet),VGG,NiN,GoogleNet,残差网络(ResNet),稠密连接网络…

【Hello Linux】进程控制 (内含思维导图)

作者:小萌新 专栏:Linux 作者简介:大二学生 希望能和大家一起进步! 本篇博客简介:简单介绍下进程的控制 包括进程启动 进程终止 进程等待 进程替换等概念 进程控制介绍进程创建fork函数fork函数的返回值fork函数的使用…

利用Cookie劫持+HTML注入进行钓鱼攻击

目录 HTML注入和cookie劫持: 发现漏洞 实际利用 来源 HTML注入和cookie劫持: HTML注入漏洞一般是由于在用户能够控制的输入点上,由于缺乏安全过滤,导致攻击者能将任意HTML代码注入网页。此类漏洞可能会引起许多后续攻击&#…

高德地图绘制图层

效果图: //初始数据 data(){return{//地图map:{address:,map:null,//当前鼠标绘制mouseTool:null,//当前编辑polyEditor:null,//覆盖物的绘制点【用于编辑】mouseToolArr:[],//覆盖物的poly对象polyArr:[],//地图右侧功能按钮signNumber:0,//保存提交的覆盖物的点数…

win10添加右键菜单打开VSCode

当进入一个文件夹后,想右键直接打开我的工程,用发现没有vscode项。 我了方便,把 VSCode添加到右键菜单吧。 1. 在桌面新建一个txt文档,用文本编辑器打开 2. 查看vscode所在位置 在桌面找到vscode快捷键图标,右键--&g…

2023年考PMP真的有用吗?含备考资料分享~

对于项目管理者来说,是真的有用,前提是你真的学进去了,是为了学习而考,而不是为了考证而考,考试的作用不是为了让你得到证书,而是考校你的水平,知识是知识,经验是经验,缺…

【浅学Java】MySQL索引七连炮

MySQL索引面试七连炮0. 谈一下你对索引的理解1. MySQL索引原理和数据结构能介绍一下吗2. B树和B树的区别3. MySQL聚簇索引和非聚簇索引的区别4. 使用MySQL索引都有什么原则4.1 回表4.2 索引覆盖4.3 最左匹配4.4 索引下推5. 不同的存储引擎是如何进行数据的存储的6. MySQL组合索…