背景知識(shí)與原理
1. PCA(Principal Component Analysis, 主成分分析)
背景:
PCA 是一種經(jīng)典的線性降維技術(shù),起源于統(tǒng)計(jì)學(xué)和信號(hào)處理領(lǐng)域。它的目標(biāo)是通過將高維數(shù)據(jù)投影到低維空間上,找出數(shù)據(jù)中方差最大的方向,即主成分。這些主成分可以幫助簡(jiǎn)化數(shù)據(jù),去除冗余,同時(shí)保留盡可能多的信息。
原理:
- PCA 的核心思想是通過尋找數(shù)據(jù)協(xié)方差矩陣的特征值和特征向量來實(shí)現(xiàn)降維。
-
給定一個(gè)數(shù)據(jù)矩陣image.png
其中 n是樣本數(shù),p是維度,PCA 首先通過中心化數(shù)據(jù),然后計(jì)算數(shù)據(jù)的協(xié)方差矩陣image.png - 接著,PCA 通過求解該協(xié)方差矩陣的特征值和特征向量,將數(shù)據(jù)投影到特征向量所定義的新坐標(biāo)系中,其中特征值大的方向?qū)?yīng)的數(shù)據(jù)方差最大,即主成分。
- PCA 通過保留前幾個(gè)主成分來達(dá)到降維的目的。這種方法具有全局性,即它假定數(shù)據(jù)在整個(gè)高維空間中的分布是線性的。
優(yōu)點(diǎn):
- 線性、全局性,適用于線性結(jié)構(gòu)的數(shù)據(jù)。
- 計(jì)算速度快,適合大數(shù)據(jù)集。
- 可以解釋降維后的每個(gè)主成分的含義。
缺點(diǎn):
- 只能捕捉線性關(guān)系,對(duì)于復(fù)雜的非線性結(jié)構(gòu)效果不佳?!舅訮CA是“線性的”】
應(yīng)用場(chǎng)景:
- 數(shù)據(jù)預(yù)處理和去噪。
- 高維數(shù)據(jù)可視化。
- 特征選擇。
2. UMAP(Uniform Manifold Approximation and Projection)
背景:
UMAP 是一種基于拓?fù)鋵W(xué)和流形學(xué)習(xí)的非線性降維算法,于2018年由 McInnes 和 Healy 提出。它在處理高維復(fù)雜數(shù)據(jù)時(shí)表現(xiàn)優(yōu)異,特別適用于保持?jǐn)?shù)據(jù)的全局和局部結(jié)構(gòu)。
原理:
- UMAP 假設(shè)數(shù)據(jù)分布在某個(gè)隱含的低維流形上,它通過構(gòu)建 k 近鄰圖來捕捉數(shù)據(jù)的局部結(jié)構(gòu),假定數(shù)據(jù)在局部是線性的。
- 它使用 Riemann 度量來構(gòu)建近鄰圖,然后通過優(yōu)化兩個(gè)低維空間中點(diǎn)的距離,使得原高維空間中的鄰近關(guān)系盡可能保留。
- UMAP 的目標(biāo)是最大化近鄰點(diǎn)的相似性,同時(shí)盡量將不相鄰的點(diǎn)分離開。與 t-SNE 相比,UMAP 在大規(guī)模數(shù)據(jù)集上計(jì)算速度更快,并且能夠更好地保留數(shù)據(jù)的全局結(jié)構(gòu)。
優(yōu)點(diǎn):
- 能夠捕捉復(fù)雜的非線性結(jié)構(gòu)。
- 比** t-SNE 更快,更適合大規(guī)模數(shù)據(jù)集**。
- 能夠保留局部和全局結(jié)構(gòu),適用于高維數(shù)據(jù)降維。
缺點(diǎn):
- 調(diào)參相對(duì)復(fù)雜,主要參數(shù)包括
n_neighbors和min_dist,這會(huì)影響結(jié)果的局部與全局平衡。 - 對(duì)于某些數(shù)據(jù)集可能不如 t-SNE 保留局部細(xì)節(jié)。
應(yīng)用場(chǎng)景:
- 大規(guī)模、高維數(shù)據(jù)的降維和可視化(如基因表達(dá)數(shù)據(jù)、圖像數(shù)據(jù)等)。
- 特別適用于保留數(shù)據(jù)的局部和全局結(jié)構(gòu)。
3. t-SNE(t-distributed Stochastic Neighbor Embedding)
背景:
t-SNE 是一種由 Laurens van der Maaten 和 Geoffrey Hinton 于 2008 年提出的非線性降維算法,廣泛應(yīng)用于高維數(shù)據(jù)的可視化,尤其是在處理非線性數(shù)據(jù)時(shí)效果較好。
原理:
- t-SNE 首先將高維數(shù)據(jù)中每個(gè)數(shù)據(jù)點(diǎn)的近鄰關(guān)系轉(zhuǎn)換為概率分布。在高維空間中,給定數(shù)據(jù)點(diǎn)的近鄰點(diǎn)具有較高的相似性概率。
- t-SNE 然后在低維空間中構(gòu)建一個(gè)類似的概率分布,通過優(yōu)化兩者之間的 Kullback-Leibler 散度來最小化低維空間與高維空間的近鄰關(guān)系差異。
- t-SNE 使用 t 分布來增強(qiáng)低維空間中遠(yuǎn)離的點(diǎn),使得不同類的數(shù)據(jù)點(diǎn)更加分散。這個(gè)機(jī)制有效地增強(qiáng)了局部結(jié)構(gòu)的保留,但會(huì)導(dǎo)致全局結(jié)構(gòu)失真。
優(yōu)點(diǎn):
- 在捕捉局部非線性結(jié)構(gòu)方面表現(xiàn)優(yōu)異。
- 通常用于數(shù)據(jù)的二維或三維可視化,能夠?qū)⒏呔S數(shù)據(jù)的復(fù)雜結(jié)構(gòu)很好地展現(xiàn)。
缺點(diǎn):
- 對(duì)于大數(shù)據(jù)集來說計(jì)算開銷大。
- 全局結(jié)構(gòu)保留較差,局部細(xì)節(jié)容易失真。
- 參數(shù)(如
perplexity和學(xué)習(xí)率)的調(diào)整較為復(fù)雜。
應(yīng)用場(chǎng)景:
- 高維復(fù)雜數(shù)據(jù)的可視化,如圖像、基因表達(dá)、文檔表示等。
- 主要用于探索數(shù)據(jù)中的局部結(jié)構(gòu)模式。
比較
| 特性 | PCA | UMAP | t-SNE |
|---|---|---|---|
| 類型 | 線性 | 非線性,基于流形學(xué)習(xí) | 非線性,基于概率嵌入 |
| 全局/局部 | 全局 | 局部和全局平衡 | 局部為主 |
| 復(fù)雜度 | 低(快,適合大數(shù)據(jù)集) | 中等(更快,更適合大數(shù)據(jù)集) | 高(慢,計(jì)算量大) |
| 可解釋性 | 高(主成分可解釋) | 中等 | 低(結(jié)果不易解釋) |
| 保留結(jié)構(gòu) | 線性結(jié)構(gòu) | 全局和局部 | 局部(全局失真) |
| 調(diào)參難度 | 低 | 中(需調(diào)整鄰居數(shù)和距離參數(shù)) | 高(perplexity 和學(xué)習(xí)率較難調(diào)) |
| 適用場(chǎng)景 | 特征提取、數(shù)據(jù)預(yù)處理 | 大規(guī)模數(shù)據(jù)的降維和可視化 | 小規(guī)模數(shù)據(jù)的精細(xì)局部結(jié)構(gòu)探索 |
具體應(yīng)用場(chǎng)景
- PCA:用于線性數(shù)據(jù)的降維、去噪和特征提取。適用于初步分析、處理大規(guī)模數(shù)據(jù)以及作為其他復(fù)雜分析的前置步驟。
- UMAP:適合處理高維、大規(guī)模數(shù)據(jù),特別是基因表達(dá)分析、單細(xì)胞 RNA-seq、圖像處理和嵌入式學(xué)習(xí)等領(lǐng)域。UMAP 能很好地平衡局部和全局結(jié)構(gòu)。
- t-SNE:通常用于探索數(shù)據(jù)中的局部復(fù)雜結(jié)構(gòu),廣泛用于數(shù)據(jù)可視化,例如基因表達(dá)數(shù)據(jù)、神經(jīng)網(wǎng)絡(luò)特征嵌入等。但它計(jì)算速度慢,適合小規(guī)模數(shù)據(jù)集。
如何運(yùn)用
-
PCA:
- 使用
sklearn.decomposition.PCA進(jìn)行實(shí)現(xiàn):from sklearn.decomposition import PCA pca = PCA(n_components=2) reduced_data = pca.fit_transform(data) - 常用于特征提取、去噪、降維等。
- 使用
-
UMAP:
- 使用
umap-learn庫:import umap reducer = umap.UMAP(n_neighbors=15, min_dist=0.1) reduced_data = reducer.fit_transform(data) - 可根據(jù)數(shù)據(jù)集的特性調(diào)整參數(shù),探索不同的局部與全局結(jié)構(gòu)。
- 使用
-
t-SNE:
- 使用
sklearn.manifold.TSNE或openTSNE:from sklearn.manifold import TSNE tsne = TSNE(n_components=2, perplexity=30) reduced_data = tsne.fit_transform(data) - t-SNE 適用于探索局部聚類的可視化。
- 使用
參考文獻(xiàn)
- Hotelling, H. (1933). Analysis of a complex of statistical variables into principal components. Journal of Educational Psychology, 24(6), 417–441.
- Pearson, K. (1901). On Lines and Planes of Closest Fit to Systems of Points in Space. Philosophical Magazine, 2(11), 559-572.
- McInnes, L., Healy, J., & Melville, J. (2018). UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction. arXiv preprint arXiv:1802.03426.
- van der Maaten, L., & Hinton, G. (2008). Visualizing Data using t-SNE.

