python庫umap有效地揭示高維數(shù)據(jù)的結(jié)構(gòu)和模式初探
python 庫umap
今天給大家分享一個超強的 python 庫,umap
https://github.com/lmcinnes/umap
UMAP 是一種用于降維的算法,可用于類似于 t-SNE 的可視化。UMAP 基于流形學習的概念,旨在更有效地揭示高維數(shù)據(jù)中的結(jié)構(gòu)和模式。
該算法基于關(guān)于數(shù)據(jù)的三個假設。
數(shù)據(jù)均勻分布在黎曼流形上
黎曼度量是局部常數(shù)(或者可以近似為局部常數(shù))
流形是局部連接的

優(yōu)點
UMAP 作為一種現(xiàn)代的降維技術(shù),具有如下優(yōu)點。
速度快:UMAP 通常比其他降維技術(shù),如 t-SNE,更快,尤其是在處理大型數(shù)據(jù)集時。
良好的可擴展性:UMAP能夠處理相當大的數(shù)據(jù)集,同時保持較低的計算和內(nèi)存要求。
保持全局結(jié)構(gòu):相比于 t-SNE,UMAP 在保持局部結(jié)構(gòu)的同時,還能較好地保留全局數(shù)據(jù)結(jié)構(gòu)。
參數(shù)少且具有解釋性:UMAP的參數(shù)較少,而且相對直觀易懂,如鄰域大小和最小距離。
交互式可視化:其低維表示適合進行交互式數(shù)據(jù)探索和可視化。
兼容性:UMAP可以與 scikit-learn 等 Python 機器學習庫無縫集成。
數(shù)學原理
構(gòu)建高維空間的鄰域圖:對于每個點,UMAP 在高維空間中尋找其近鄰,并基于距離或相似性構(gòu)建一個加權(quán)圖。這種加權(quán)是通過局部距離度量(如歐氏距離)來實現(xiàn)的。
優(yōu)化過程:UMAP 嘗試找到一個低維表示,其中的點保持著類似于高維數(shù)據(jù)的局部和全局關(guān)系。這是通過最小化高維空間和低維空間之間的交叉熵損失來實現(xiàn)的。
流形假設:UMAP 假設數(shù)據(jù)分布在某種低維流形上。這意味著即使數(shù)據(jù)原本存在于高維空間,也可以在更低維的空間中找到其近似表示。
相關(guān)公式
高維空間中的距離度量:對于每個點 ,UMAP定義了一個局部距離度量,通常為歐氏距離或其他度量。
交叉熵最小化:UMAP最小化的目標函數(shù)基于交叉熵,形式上為:
其中, 是高維空間中點 和 之間的連接概率,而 是低維表示中對應點的相似性度量。
概率分布匹配:UMAP 嘗試匹配高維和低維空間中的兩個概率分布 和
優(yōu)化算法:通常使用隨機梯度下降或類似方法來最小化交叉熵損失。
初體驗
庫的安裝
我們可以直接使用 pip 來進行安裝,umap 依賴于 scikit-learn 和 numba,確保你已經(jīng)安裝了它們。
pip install umap-learn
如果你想使用繪圖功能,可以使用。
pip install umap-learn[plot]
一個案例
這里,我們使用 MNIST 數(shù)據(jù)集來作為演示。
import umap from sklearn.datasets import load_digits digits = load_digits() mapper = umap.UMAP(n_neighbors=10,min_dist=0.001).fit(digits.data) umap.plot.points(mapper, labels=digits.target)

以上就是python庫umap有效地揭示高維數(shù)據(jù)的結(jié)構(gòu)和模式初探的詳細內(nèi)容,更多關(guān)于python庫umap高維數(shù)據(jù)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python實現(xiàn)優(yōu)雅的打印json格式文本
這篇文章主要介紹了python實現(xiàn)優(yōu)雅的打印json格式文本方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08
python argparse 模塊命令行參數(shù)用法及說明
這篇文章主要介紹了python argparse 模塊命令行參數(shù)用法及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11
python GUI庫圖形界面開發(fā)之PyQt5多行文本框控件QTextEdit詳細使用方法實例
這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5多行文本框控件QTextEdit詳細使用方法實例,需要的朋友可以參考下2020-02-02

