CDC模型

news2024/11/19 17:40:38

引言

聚类是一种强大的机器学习方法,用于根据特征空间中元素的接近程度发现相似的模式。它广泛用于计算机科学、生物科学、地球科学和经济学。尽管已经开发了最先进的基于分区和基于连接的聚类方法,但数据中的弱连接性和异构密度阻碍了其有效性。在这项工作中,我们提出了一种使用局部方向中心性(CDC)的边界搜索聚类算法。它采用基于 K 最近邻 (KNN) 分布的密度无关度量来区分内部点和边界点。边界点生成封闭的笼子来绑定内部点的连接,从而防止跨聚类连接并分离弱连接的聚类。我们通过在具有挑战性的合成数据集中检测复杂的结构簇,从单细胞RNA测序(scRNA-seq)和质谱细胞术(CyTOF)数据中识别细胞类型,识别语音语料库上的说话者,并在各种类型的真实世界基准上作证,来证明CDC的有效性。

TDCM(或ratio)是通过二维空间中三角不规则网络 (TIN) 的图论分析来估计的。通常,边界点往往比内部点具有较低的中心性(即较高的 DCM)。因此,我们按降序对所有 DCM 进行排序,如果给定边界点数,则可以搜索最佳 TDCM(或ratio)。

聚类算法的过程

请添加图片描述

CDC的核心思想是根据KNN的分布来区分集群的边界点和内部点。边界点勾勒出簇的形状,并生成笼子以绑定内部点的连接。簇的内部点趋向于在各个方向上都被相邻点包围,而边界点仅包括一定方向范围内的相邻点。为了测量方向分布的这种差异,我们将 KNN 在 2D 空间中形成的角度方差定义为局部方向中心度量 (DCM):
D C M = 1 k ∑ i = 1 k ( α i − 2 π k ) 2 DCM =\frac{1}{k}\sum\limits_{i=1}^{k}(\alpha_i-\frac{2\pi}{k})^2 DCM=k1i=1k(αik2π)2
中心点的 KNNs 可以形成 k 个角 α1、α2…αk(图a)。对于二维角,条件 ∑ i = 1 k α i = 2 π \sum_{i=1}^{k}\alpha_i=2\pi i=1kαi=2π成立。当且仅当所有角度相等时,DCM 达到最小值 0。这种情况意味着中心点的 KNN 在所有方向上均匀分布。当其中一个角度为 2π 而其余角度为 0 时,它可以最大化为 4 ( k − 1 ) n 2 k 2 \frac{4(k-1)n^2}{k^2} k24(k1)n2。当 KNN 沿同一方向分布时,就会发生这种极端情况。根据极值,DCM 可以归一化为 [0, 1] 范围,如下所示:
D C M = k 4 ( k − 1 ) n 2 ∑ i = 1 k ( α i − 2 π k ) 2 DCM =\frac{k}{4(k-1)n^2}\sum\limits_{i=1}^{k}(\alpha_i-\frac{2\pi}{k})^2 DCM=4(k1)n2ki=1k(αik2π)2

DCM计算结果表明,团簇内部点的DCM值相对较低,边界点的DCM值较高(图b)。因此,内部点和边界点可以用阈值TDCM划分。DS5 和 DS7 两个合成数据集的划分结果验证了其有效性(图c、d)。为了保证内部点 p1, p2, …,pm 在周围边界点 q1, q2, …, qn−m 限制的区域内相互连接,我们将内部点 pi 与所有边界点之间的最小距离定义为其可到达距离:
r i = m i n j = 1 n − m d ( p i , q j ) r_i=min_{j=1}^{n-m}d(p_i,q_j) ri=minj=1nmd(pi,qj)
其中 d(pi,qj) 是两点 pi 和 qj 之间的距离(图 e)。如果保证以下关联规则,则两个内部点可以连接为同一簇:
d ( p i , p j ) ≤ r i + r j d(p_i,p_j) \leq{r_i+r_j} d(pi,pj)ri+rj
其中 ri 和 rj 分别是内部点 pi 和 pj 的可达距离(图f)。在正确识别边界点的前提下(边界点识别不完全的极端情况除外),内部点的连接被限制在边界点定义的区域内。如果两个内部点之间存在跨聚类连接,则边界点将包含在由其可到达距离定义的范围内,这与可到达距离的定义相冲突。因此,同一聚类的内部点可以被困在由边界点组成的同一外部轮廓中,并且基于此关联规则将避免跨聚类连接。DS5 和 DS7 的连接结果是通过将规则应用于除法结果而生成的(图 g、h)。虽然DS5和DS7中的簇对连接较弱,DS7中的三个簇的密度差异很大,但所有簇都被准确识别。

在计算 DCM 并连接内部点后,我们通过将每个边界点分配给其最近的内部点所属的集群来完成该过程。CDC 包含两个可控参数,k 和 TDCM。k 调整最近邻的数量,TDCM 确定内部点和边界点的划分。CDC的伪代码详见附注2。在实践中,考虑到 TDCM 随数据分布而变化,我们采用内部点的百分位数比率ratio来确定 TDCM 作为按降序排序的[n∙(1–ratio)]的 DCM。参数ratio具有直观的物理含义和更好的稳定性,这使得它比TDCM更容易指定。根据我们的实验,70%~99%的内点是建议的默认参数比率范围,以获得有希望的聚类结果。然而,当聚类相互混合时,需要更多的边界点(较低的比率)来分离闭合的聚类。

k的经验估计方法

通过对参数敏感度的分析和已有的研究,我们知道k是一个不敏感的参数,与数据集中的点数n有关。因此,我们提出了一种经验方法,将 k 和 n 之间的关系形式化为:
k = { ⌈ π 50 ⌉ − ⌈ π 20 ⌉ if  100 ≤ n ≤ 1000 ⌈ l o g 2 ( n ) + 10 ⌉ − 5 ⌈ l o g 2 ( n ) ⌉ if  n ≥ 1000 k=\begin{cases} \lceil\frac{\pi}{50}\rceil- \lceil\frac{\pi}{20}\rceil&\text{if }100\leq n\le1000 \\ \lceil log_2(n)+10\rceil-5\lceil log_2(n)\rceil &\text{if } n\geq1000 \end{cases} k={50π20πlog2(n)+105log2(n)⌉if 100n1000if n1000
⌈ ⌉ \lceil \quad \rceil 表示向上取整。

估计用于确定TDCM的边界点数:

请添加图片描述

构建了一个三角不规则网络(TIN)(图a)来连接所有点。在图论中,顶点的度数定义为入射到顶点的边数,每条边连接两个顶点。基于这一定律
∑ i = 1 V d e g ( v i ) = 2 E \sum_{i=1}^{V}deg(v_i)=2E i=1Vdeg(vi)=2E
deg(vi) 表示顶点 vi 的度数,V 表示顶点总数,E 表示边的总数。

对于具有单个连接分量的 TIN,边界点的总数等于最外边的总数。
∑ i = 1 V d e g ( v i ) = 3 F + B \sum_{i=1}^{V}deg(v_i)=3F+B i=1Vdeg(vi)=3F+B
F 和 B 分别表示三角形和边界点的总数。

二维欧拉公式:
V + F − E = 1 V+F-E=1 V+FE=1
通过结合这些公式,我们可以推断出 B 的解如下:
B = 2 V − F − 2 B=2V-F-2 B=2VF2

但是,整个 TIN 中的初始边界点数不等于分离聚类中的边界点总数。为了进行准确的估计,应将整个 TIN 视为多个子网(图 b)。给定 C 簇,簇中的边界点数可以求解如下:
∑ i = 1 m B i = 2 ∑ i = 1 m V i − ∑ i = 1 m F i − 2 C \sum_{i=1}^{m}B_i=2\sum_{i=1}^{m}V_i-\sum_{i=1}^{m}F_i-2C i=1mBi=2i=1mVii=1mFi2C
B = 2 V − F − 2 C B=2V-F-2C B=2VF2C
其中 F 是多个分离网络中簇内三角形的总数。V 在给定数据集(即 n)中是已知的,但 F 和 C 不是。初始F是整个TIN中三角形的总数,其中包括连接不同聚类的三角形,即三个顶点不都在同一聚类中的跨聚类三角形(否则为聚类内三角形)。使用过多的三角形会使边界点 B 的数量小于真实值。为了识别跨聚类三角形,我们设置了一个判断规则:
∑ i = 1 3 ∑ j = 1 , j ≠ i 3 σ ( v i , v j ) < 3 \sum_{i=1}^{3}\sum_{j=1,j\ne i}^{3}\sigma(v_i,v_j)<3 i=13j=1,j=i3σ(vi,vj)<3
其中 v1、v2、v3 是三角形的三个顶点,σ(vi, vj)isan 指标函数:
σ ( v i , v j ) = { 0 , if  v j ∉ KNN ( v i ) 1 , if  v j ∈ KNN ( v i ) \sigma(v_i,v_j)=\begin{cases} 0, &\text{if }v_{j}\notin \text {KNN}(v_i) \\ 1, &\text{if }v_{j}\in \text {KNN}(v_i) \end{cases} σ(vi,vj)={0,1,if vj/KNN(vi)if vjKNN(vi)
考虑聚类内三角形中顶点的邻近性。最终的F可以计算为初始F减去满足方程(16)的跨聚类三角形的数量(图c)。就簇C的数量而言,通常远小于V和F,这对B的估计有微不足道的影响,此外,CDC对DCM阈值的鲁棒性如讨论所述。因此,当 C 模糊或难以确定时,可以将其视为 1。

Code availability
The code of CDC in MATLAB, R and Python, and the toolkit with six applications can be downloaded at https://github.com/ZPGuiGroupWhu/ClusteringDirectionCentrality and https://zenodo.org/record/7029720#.YwuFsuxByZw. Digital Object Identifier https:// doi.org/10.5281/zenodo.7029720.

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

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

相关文章

基于Java英语学习网站设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;…

玩玩快速冥(LeetCode50题与70题以及联系斐波那契)

一.算法快速幂 今天刷到两个题,比较有意思,还是记录一下. 先来讲讲50题. LeetCode50(Pow(x,n)) 实现 pow(x, n) &#xff0c;即计算 x 的整数 n 次幂函数&#xff08;即&#xff0c;xn &#xff09;。 这道题一看很平常啊,不就一直乘嘛,循环走一次就够了.但是很抱歉,单纯的想…

计算机网络知识普及之四元组

在涉及到TCP/UDP等IP类通信协议时&#xff0c;存在四元组概念 这里只是普及使用 先来一些前置知识&#xff0c;什么是IP协议&#xff1f; IP协议全称为互联网协议&#xff0c;处于网络层中&#xff0c;主要作用是标识网络中的设备&#xff0c;每个设备的IP地址是唯一的。 在网…

ASO优化:如何提高应用的可见性

在竞争激烈的应用市场中ASO优化成为了提高应用可见性的重要手段。以下是一些提高应用可见性的方法&#xff1a; 1. 选择合适的关键词 找出和您应用高度相关并且具有一定搜索量的关键词&#xff0c;确保关键词与应用的核心功能和用户搜索意图匹配。比如&#xff1a;当您的应用是…

【Rust入门】生成随机数

文章目录 前言随机数库rand添加rand库到我们的工程生成一个随机数示例代码 总结 前言 在编程中&#xff0c;生成随机数是一种常见的需求&#xff0c;无论是用于数据分析、游戏开发还是模拟实验。Rust提供了强大的库来帮助我们生成随机数。在这篇文章中&#xff0c;我们将通过一…

1.4 ROS2集成开发环境搭建

1.4.1 安装VSCode VSCode全称Visual Studio Code&#xff0c;是微软推出的一款轻量级代码编辑器&#xff0c;免费、开源而且功能强大。它支持几乎所有主流的程序语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比Diff、GIT 等特性&#xff0c;支持插件…

谈谈浏览器的事件机制:捕获、冒泡

浏览器事件的传播有三个阶段&#xff1a;捕获阶段&#xff0c;目标阶段&#xff0c;冒泡阶段 第一部分称为捕获阶段&#xff0c;该阶段包括从舞台到目标节点的父节点范围内的所有节点。第二部分称为目标阶段&#xff0c;该阶段仅包括目标节点。第三部分称为冒泡阶段。冒泡阶段包…

安装Gitlab+Jenkins

GItlab概述 GitLab概述&#xff1a; 是一个利用 Ruby on Rails 开发的开源应用程序&#xff0c;实现一个自托管的Git项目仓库&#xff0c;可通过Web界面进行访问公开的或者私人项目。 Ruby on Rails 是一个可以使你开发、部署、维护 web 应用程序变得简单的框架。 GitLab拥有与…

工业一体机根据软件应用需求灵活选配

在当今工业领域&#xff0c;数字化、智能化的发展趋势愈发明显&#xff0c;工业一体机作为关键的设备&#xff0c;其重要性日益凸显。而能够根据软件应用需求进行灵活选配的工业一体机&#xff0c;更是为企业提供了高效、定制化的解决方案。 一、工业一体机的全封闭无风扇散热功…

【软件测试】性能测试 | 概念 | 常见术语 | 性能指标 | 分类 | 流程

性能测试 文章目录 性能测试一、什么是性能测试1.生活中遇到的软件的性能问题2.性能测试定义3.性能测试和功能测试有什么区别4.什么样的表现属于软件性能好、什么样的表现不好5.影响一个软件性能因素有哪些 二、为什么进行性能测试三、性能测试的常见术语以及性能测试的衡量指标…

深入了解自动化:聊聊什么项目适合做自动化测试?

自动化测试 什么是自动化测 什么是自动化测试&#xff1f; 随着软件产业的不断发展&#xff0c;市场对软件周期的要求越来越高&#xff0c;于是催生了各种开发模式&#xff0c;如大家熟知的敏捷开发&#xff0c;从而对测试提出了更高的要求。此时&#xff0c;产生了自动化测试…

双指针系列第 8 篇:盛水最多的容器。几句话讲明白!

Leetcode 题目链接 思路 取首尾双指针和水量如下所示&#xff0c;设高度函数为 h ( i ) h(i) h(i)&#xff0c;在下图中 h ( l ) < h ( r ) h(l) < h(r) h(l)<h(r)。 观察以 l l l 为左边界所能构成的其他水量&#xff0c;与矮的右边界搭配结果如下。 与高的…

LLM大模型中LoRA是什么?面试经验回答汇总(2024.7月最新)

目录 1 什么是 LoRA&#xff1f; 2 LoRA 的思路是什么&#xff1f; 3 LoRA 的特点是什么&#xff1f; 4 简单描述一下 LoRA? 5 QLoRA 的思路是怎么样的&#xff1f; 6 QLoRA 的特点是什么&#xff1f; 7 AdaLoRA 的思路是怎么样的&#xff1f; 8 LoRA权重是否可以合入…

乘用车副水箱浮球式液位计传感器

浮球式液位计概述 浮球式液位计是一种利用浮球在液体中浮动的原理来测量液位的设备&#xff0c;广泛应用于各种工业自动化控制系统中&#xff0c;如石油化工、水处理、食品饮料等行业。它通过浮球的上下运动来测量液位的高低&#xff0c;具有结构简单、安装方便、测量范围广、…

02:vim的使用和权限管控

vim的使用 1、vim基础使用1.1、vim pathname 2、vim高级用法2.1、查找2.2、设置显示行号2.3、快速切换行2.4、 行删除2.5、行复制粘贴 3、权限管理3.1、普通用户和特权用户3.2、文件权限表示 vim是Linux中的一种编辑器&#xff0c;类似于window中的记事本&#xff0c;可以对创建…

[工业网络] 模型建立

普渡大学ICS参考模型 普渡企业参考架构&#xff08;PERA&#xff09;是由西奥多J威廉姆斯&#xff08;Theodore J. Williams&#xff09;和普渡大学计算机集成制造工业大学联盟的成员在1990年代开发的企业架构参考模型。该模型被ISA-99&#xff08;现为ISA/IEC 62443&#xff…

开发者聊科学作息时间表

非常有幸对科学作息时间表app的开发者做一次采访。 问&#xff1a;你对科学作息时间表app满意么&#xff1f; 答&#xff1a;非常不满意&#xff0c;我们的设想是让他更智能&#xff0c;更多的提醒方式&#xff0c;更好的交互体验。如果作为一个闹钟他是非常不合格的&#xff0…

自然语言处理学习(2)基本知识 文本预处理+文本数据分析+文本增强

conda activate DL conda deactivate课程链接 一 一些包的安装 1 stanfordcorenlp 在anoconda prompt 里面&#xff1a;进入自己的conda环境&#xff0c;pip install stanfordcorenlp 进入方式 相关包下载&#xff0c;Jar包我没有下载下来&#xff0c;太慢了&#xff0c;这个…

昇思25天学习打卡营第6天|数据变换 Transforms

学习目标&#xff1a;熟练掌握数据变换操作 熟悉mindspore.dataset.transforms接口 实践掌握常用变换 昇思大模型平台学习心得记录&#xff1a; 一、关于mindspore.dataset.transforms 1.1 变换 mindspore.dataset.transforms.Compose将多个数据增强操作组合使用。 mindspo…

AIGC之后,AI Agent又要颠覆设计?

随着AIGC&#xff08;AI Generated Content&#xff09;技术的兴起&#xff0c;我们已经见证了内容创作领域的巨大变革。AI能够高效地生成文字、图像、视频等多种形式的内容&#xff0c;极大地提高了内容生产的效率和多样性。然而&#xff0c;当我们认为这已经足够令人惊叹时&a…