日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

umap算法_Python—UMAP流形数据降维工具简介

發布時間:2023/12/20 python 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 umap算法_Python—UMAP流形数据降维工具简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

umap簡介

2018年McInnes提出了算法,UMAP(Uniform Manifold Approximation and Projection for Dimension Reduction,一致的流形逼近和投影以進行降維)。 一致的流形近似和投影(UMAP)是一種降維技術,類似于t-SNE,可用于可視化,但也可用于一般的非線性降維。 該算法基于關于數據的三個假設:數據均勻分布在黎曼流形上(Riemannian manifold);

黎曼度量是局部恒定的(或可以這樣近似);

流形是局部連接的。

根據這些假設,可以對具有模糊拓撲結構的流形進行建模。 通過搜索具有最接近的等效模糊拓撲結構的數據的低維投影來找到嵌入。

相對于t-SNE,其主要特點:降維快準狠。

論文:McInnes, L, Healy, J, UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction, ArXiv e-prints 1802.03426, 2018

同時其作者開源實現代碼。

安裝

pip install umap-learn

基本使用

以sklearn內置的Digits Data這個數字手寫識別數據庫為例。

Digits Data每個數字是64維的向量,先查看數據:

from sklearn.datasets import load_digits

import matplotlib.pyplot as plt

digits = load_digits()

fig, ax_array = plt.subplots(20, 20)

axes = ax_array.flatten()

for i, ax in enumerate(axes):

ax.imshow(digits.images[i], cmap='gray_r')

plt.setp(axes, xticks=[], yticks=[], frame_on=False)

plt.tight_layout(h_pad=0.5, w_pad=0.01)

plt.show()

使用umap降至2維并繪制散點圖:

reducer = umap.UMAP(random_state=42)

embedding = reducer.fit_transform(digits.data)

print(embedding.shape)

plt.scatter(embedding[:, 0], embedding[:, 1], c=digits.target, cmap='Spectral', s=5)

plt.gca().set_aspect('equal', 'datalim')

plt.colorbar(boundaries=np.arange(11)-0.5).set_ticks(np.arange(10))

plt.title('UMAP projection of the Digits dataset')

plt.show()

從圖上可以看出,相同的數字大多聚在一起了。

總結

以上是生活随笔為你收集整理的umap算法_Python—UMAP流形数据降维工具简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。