聚類和降維有什么區別與聯系?
一、聚類和降維的區別與聯系
區別
降維就是復雜的高維數據信息簡化為更容易閱讀的低維數據信息,就像素描把三維的立體圖形繪制在二維的平面上,而我們可以通過繪制而成的二維平面來了解到三維物體本身是什么,卻不用我們到作者的繪畫現場去看畫的東西到底是什么樣。我們需要通過對單細胞轉錄組數據降維,來獲得更容易閱讀的低維數據信息。
聚類就是歸類,按照一定的標準來進行歸類就是聚類。我們得到降維后的數據后,就能根據聚類算法對細胞進行分群聚類,通過可視化圖來呈現更直觀的效果。這里,我們還是以樹葉比作細胞來方便大家理解。我們把不同年份的葉子比作不同種類的細胞來進行分類。由于上述摘葉子(降維)的方式不同,我們最終呈現出來分葉子(聚類)的可視化情況也會有所不同。
相同或相近年份的葉子會在一定程度上相似(如顏色、大小、葉脈紋路等),就好比我們同類細胞或者相近來源的細胞,他們某些基因表達量是相近的。將不同年份的葉子顏色、大小、葉脈紋路等的差異理解為不同細胞的基因的表達情況和表達量的差異。
聯系
降維和聚類是同時進行的兩個獨立過程,將兩者結果合并才是我們最終得到的可視化結果。但這個合并過程中一定會存在矛盾的地方,這也是影響了可視化圖中分群邊界與聚集遠近的最主要原因。
PCA是經典的線性降維方式,每一個維度代表了數據的一個特征信息,用越多的特征信息去描述一個數據就越接近真實;取用的維度越少,信息的丟失量越多。而在可視化中,我們只能使用“最有特色”的兩個或三個主成分去描述數據,這就使得大量的細胞無法被良好地區分開,最終呈現的結果就是不同類型的細胞類型之間的邊界不明顯。
此外,還需要提及的一點是,并不是所有聚類分出的同種細胞都會降維在一起。在可視化圖中相同的細胞類型可能也會有較遠的分布。
tSNE的算法使得高維的相近距離在低維觀測的時候有一定幾率變成較遠距離,可視化圖上就會看起來不像是同一簇細胞。而UMAP雖然能比tSNE更好地將相似細胞簇聚集,不同類細胞簇分開,但當UMAP的計算距離和聚類的計算距離差異較大時,可視化結果就也會顯示同一個細胞聚類被分了開來。
延伸閱讀:
二、搭梯子摘(tSNE)
以一個隨機的位置作為起始點,架個梯子爬上去摘,每次摘一部分就得爬到樹下放葉子,然后再爬上梯子繼續摘,那整個過程就會變得十分漫長,耗時耗力,但優點是能有效地還原一部分樹生長高度的位置信息,并能將生長在一起的葉子放在同一摞。
這種方法與之對應的降維法便是非線性降維tSNE算法,由于tSNE的計算過程較為復雜且耗時長,往往需要先通過PCA進行預降維處理。PCA降維過的數據再進行tSNE降維(降至二維或三維)實現可視化。而tSNE算法其實主要就是通過將臨近的相似點距離收縮,較遠的(非相似)點距離增大將各集群邊界分開。
以上就是關于聚類和降維有什么區別與聯系的內容希望對大家有幫助。

相關推薦HOT
更多>>
Java9和Java11區別大嗎?
一、Java9和Java11區別Java 9的新特性java模塊系統 (Java Platform Module System)。模塊系統的使用:HTTP 2 客戶端:HTTP/2標準是HTTP協議的詳情>>
2023-10-11 23:00:28
合約機和裸機有哪些區別?
一、合約機和裸機的區別1、定義不同合約機指的是運營商為了吸引用戶而推出的優惠購機的活動,它需要用戶使用特定的套餐,并且套餐時間有限制,...詳情>>
2023-10-11 22:28:38
struts2和springmvc區別?
一、struts2和springmvc區別1.框架機制Struts2采用Filter(StrutsPrepareAndExecuteFilter)實現,SpringMVC(DispatcherServ詳情>>
2023-10-11 21:59:06
Java是什么?
一、什么是Java?首先Java是一種廣泛使用的計算機編程語言,程序員用它來和計算機交流,把要求和設想Java語言表達出來,這個過程就是我們所說的...詳情>>
2023-10-11 21:33:35