CDC模型

引言

聚類是一種強大的機器學習方法,用于根據特征空間中元素的接近程度發現相似的模式。它廣泛用于計算機科學、生物科學、地球科學和經濟學。盡管已經開發了最先進的基于分區和基于連接的聚類方法,但數據中的弱連接性和異構密度阻礙了其有效性。在這項工作中,我們提出了一種使用局部方向中心性(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=k1?i=1k?(αi??k2π?)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(k?1)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(k?1)n2k?i=1k?(αi??k2π?)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=1n?m?d(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)+10??5?log2?(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=1V?deg(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=1V?deg(vi?)=3F+B
F 和 B 分別表示三角形和邊界點的總數。

二維歐拉公式:
V + F ? E = 1 V+F-E=1 V+F?E=1
通過結合這些公式,我們可以推斷出 B 的解如下:
B = 2 V ? F ? 2 B=2V-F-2 B=2V?F?2

但是,整個 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=1m?Bi?=2i=1m?Vi??i=1m?Fi??2C
B = 2 V ? F ? 2 C B=2V-F-2C B=2V?F?2C
其中 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=13?j=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?vj?KNN(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.pswp.cn/web/39111.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/39111.shtml
英文地址,請注明出處:http://en.pswp.cn/web/39111.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux 下的性能監控與分析技巧

在日常的服務器管理和問題診斷過程中&#xff0c;Linux 命令行工具提供了強大的支持。本文通過幾個常用的示例&#xff0c;介紹如何快速定位問題、監控服務器性能。 無論你是編程新手還是有一定經驗的開發者&#xff0c;理解和掌握這些命令&#xff0c;都將在你的工作中大放異…

第四篇——作戰篇:戰爭里的激勵與成本

目錄 一、背景介紹二、思路&方案三、過程1.思維導圖2.文章中經典的句子理解3.學習之后對于投資市場的理解4.通過這篇文章結合我知道的東西我能想到什么&#xff1f; 四、總結五、升華 一、背景介紹 前面進行了分析之后&#xff0c;這篇顯然又從經濟的角度進行了介紹和分析…

STELLA系統動態模擬技術及在農業、生態及環境等科學領域中的應用技術

STELLA是一種用戶友好的計算機軟件。通過繪畫出一個系統的形象圖形&#xff0c;并給這個系統提供數學公式和輸入數據&#xff0c;從而建立模型。依據專業興趣&#xff0c;STELLA可以用來建立各種各樣的農業、生態、環境等方面的系統動態模型&#xff0c;為科研、教學、管理服務…

用例子和代碼了解詞嵌入和位置編碼

1.嵌入&#xff08;Input Embedding&#xff09; 讓我用一個更具體的例子來解釋輸入嵌入&#xff08;Input Embedding&#xff09;。 背景 假設我們有一個非常小的詞匯表&#xff0c;其中包含以下 5 個詞&#xff1a; "I""love""machine"&qu…

10 Posix API與網絡協議棧

POSIX概念 POSIX是由IEEE指定的一系列標準,用于澄清和統一Unix-y操作系統提供的應用程序編程接口(以及輔助問題,如命令行shell實用程序),當您編寫程序以依賴POSIX標準時,您可以非常肯定能夠輕松地將它們移植到大量的Unix衍生產品系列中(包括Linux,但不限于此!)。 如…

DeepFaceLive----AI換臉簡單使用

非常強大的軟件,官方github https://github.com/iperov/DeepFaceLive 百度云鏈接: 鏈接&#xff1a;https://pan.baidu.com/s/1VHY-wxqJXSh5lCn1c4whZg 提取碼&#xff1a;nhev 1下載解壓軟件 下載完成后雙擊.exe文件進行解壓.完成后雙擊.bat文件打開軟件 2 視頻使用圖片換…

k8s部署單機版mysql8

一、創建命名空間 # cat mysql8-namespace.yaml apiVersion: v1 kind: Namespace metadata:name: mysql8labels:name: mysql8# kubectl apply -f mysql8-namespace.yaml namespace/mysql8 created# kubectl get ns|grep mysql8 mysql8 Active 8s二、創建mysql配…

Ubuntu環境下Graphics drawString 中文亂碼解決方法

問題描述 以下代碼在,在本地測試時 ,可以正常輸出中文字符的圖片,但部署到線上時中文亂碼 // 獲取Graphics2D對象以支持更多繪圖功能 Graphics2D g2d combined.createGraphics(); // 示例字體、樣式和大小 Font font new Font("微軟雅黑", Font.PLAI…

Swagger:swagger和knife4j

Swagger 一個規范完整的框架 用以生成,描述,調用和可視化 主要作用為 自動生成接口文檔 方便后端開發進行接口調試 Knife4j 為Java MVC框架集成 依賴引入: <!-- knife4j版接口文檔 訪問/doc.html--> <dependency><groupId>com.github.xiaoymin<…

SSM學習4:spring整合mybatis、spring整合Junit

spring整合mybatis 之前的內容是有service層&#xff08;業務實現層&#xff09;、dao層&#xff08;操作數據庫&#xff09;&#xff0c;現在新添加一個domain&#xff08;與業務相關的實體類&#xff09; 依賴配置 pom.xml <?xml version"1.0" encoding&quo…

解決ScaleBox來實現大屏自適應時,頁面的餅圖會變形的問題

封裝一個公用組件pieChartAdaptation.vue 代碼如下&#xff1a; <template><div :style"styleObject" class"pie-chart-adaptation"><slot></slot></div> </template><script setup lang"ts"> impo…

2.2.3 C#中顯示控件BDPictureBox 的實現----控件實現

2.2.3 C#中顯示控件BDPictureBox 的實現----控件實現 1 界面控件布局 2圖片內存Mat類說明 原始圖片&#xff1a;m_raw_mat ,Display_Mat()調用時更新或者InitDisplay_Mat時更新局部放大顯示圖片&#xff1a;m_extract_zoom_mat&#xff0c;更新scale和scroll信息后更新overla…

2024年精選100道軟件測試面試題(內含文檔)

測試技術面試題 1、我現在有個程序&#xff0c;發現在 Windows 上運行得很慢&#xff0c;怎么判別是程序存在問題還是軟硬件系統存在問題&#xff1f; 2、什么是兼容性測試&#xff1f;兼容性測試側重哪些方面&#xff1f; 3、測試的策略有哪些&#xff1f; 4、正交表測試用…

Eureka與Spring Cloud Bus的協同:打造智能服務發現新篇章

Eureka與Spring Cloud Bus的協同&#xff1a;打造智能服務發現新篇章 在微服務架構中&#xff0c;服務發現是實現服務間通信的關鍵機制。Eureka作為Netflix開源的服務發現框架&#xff0c;與Spring Cloud Bus的集成&#xff0c;提供了一種動態、響應式的服務治理解決方案。本文…

市場規模5萬億,護理員缺口550萬,商業護理企業如何解決服務供給難題?

干貨搶先看 1. 據統計&#xff0c;我國失能、半失能老人數量約4400萬&#xff0c;商業護理服務市場規模達5萬億。然而&#xff0c;當前養老護理員缺口巨大&#xff0c;人員的供需不匹配是很多養老服務企業需要克服的難題。 2. 當前居家護理服務的主要市場參與者分為兩類&…

利用GPT 將 matlab 內置 bwlookup 函數轉C

最近業務需要將 matlab中bwlookup 的轉C 這個函數沒有現成的m文件參考&#xff0c;內置已經打成庫了&#xff0c;所以沒有參考源代碼 但是它的解釋還是很清楚的&#xff0c;可以根據這個來寫 Nonlinear filtering using lookup tables - MATLAB bwlookup - MathWorks 中國 A…

python請求報錯::requests.exceptions.ProxyError: HTTPSConnectionPool

在發送網頁請求時&#xff0c;發現很久未響應&#xff0c;最后報錯&#xff1a; requests.exceptions.ProxyError: HTTPSConnectionPool(hostsvr-6-9009.share.51env.net, port443): Max retries exceeded with url: /prod-api/getInfo (Caused by ProxyError(Unable to conne…

秒懂設計模式--學習筆記(5)【創建篇-抽象工廠】

目錄 4、抽象工廠4.1 介紹4.2 品牌與系列&#xff08;針對工廠泛濫&#xff09;(**分類**)4.3 產品規劃&#xff08;**數據模型**&#xff09;4.4 生產線規劃&#xff08;**工廠類**&#xff09;4.5 分而治之4.6 抽象工廠模式的各角色定義如下4.7 基于此抽象工廠模式以品牌與系…

vue啟動時的錯誤

解決辦法一&#xff1a;在vue.config.js中直接添加一行代碼 lintOnSave:false 關閉該項目重新運行就可啟動 解決辦法二&#xff1a; 修改組件名稱

Python容器 之 通用功能

1.切片 1.格式&#xff1a; 數據[起始索引:結束索引:步長 2.適用類型&#xff1a; 字符串(str)、列表(list)、元組(tuple) 3.說明&#xff1a; 通過切片操作, 可以獲取數據中指定部分的內容 4.注意 : 結束索引對應的數據不會被截取到 支持正向索引和逆向索引 步長用于設置截取…