【机器学习】UMAP:强大的可视化降维工具
作者:杰少
UMAP:強大的可視化&異常檢測工具
簡介
數據降維最為重要的是降低數據的維度的同時盡可能保有大量的原始信息,而其中最為大家熟知的是PCA和tSNE,但是這二者都存在一些問題,
PCA的速度相對很快,但代價是數據縮減后會丟很多底層的結構信息;
tSNE可以保留數據的底層結構,但速度非常慢;
UMAP是2018年被提出的降維和可視化算法,它使用Uniform流形近似和投影(UMAP),既可以獲得PCA的速度優勢,同時還可以保留盡可能多的數據信息,而且其可視化效果也非常美觀,如下:
除此之外,UMAP在很多競賽中也得到了廣泛應用,比如在高維數據集中更快更準確的進行異常值檢測。
UMAP
Uniform Manifold Approximation and Projection (UMAP) 是一種降維技術,它不僅可以進行降維,而且可用于可視化,類似于t-SNE,也可用于一般非線性降維。UMAP基于對數據的三個假設
數據均勻分布在黎曼流形上(Riemannian manifold);
黎曼度量是局部const(或可以近似為局部const);
流形是局部連接的。
根據這些假設,可以用模糊拓撲結構對流形進行建模。UMAP的優點包括:
速度很快,相較于tSNE等快了非常多;
因為保留了盡可能多的數據信息,其可視化效果更好;
還可以用于異常檢測等;
但UMAP的問題在于RAM消耗可能有些大。尤其是在裝配和創建連接圖等圖表時,UMAP會消耗大量內存。
代碼
01
UMAP可視化
import?umap import?umap.plot??? from?sklearn.impute?import?SimpleImputer from?sklearn.pipeline?import?make_pipeline from?sklearn.preprocessing?import?QuantileTransformerpipe?=?make_pipeline(SimpleImputer(),?QuantileTransformer()) X_processed?=?pipe.fit_transform(X)? manifold?=?umap.UMAP().fit(X_processed,?y) umap.plot.points(manifold,?labels=y,?theme="fire")02
和IsolationForest一起做異常檢測
from?sklearn.ensemble?import?IsolationForest pipe?=?make_pipeline(SimpleImputer(),?QuantileTransformer(),?umap.UMAP(n_components=5)) X_processed?=?pipe.fit_transform(X)#?Fit?IsolationForest?and?predict?labels iso?=?IsolationForest(n_estimators=500,?n_jobs=9) labels?=?iso.fit_predict(X_processed)適用問題
涉及到數據降維,數據可視化以及異常檢測等都可以考慮使用。
參考文獻
8 Booming Data Science Libraries You Must Watch Out For in 2022
https://umap-learn.readthedocs.io/en/latest/
How to Analyze 100-Dimensional Data with UMAP in Breathtakingly Beautiful Ways
總結
以上是生活随笔為你收集整理的【机器学习】UMAP:强大的可视化降维工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何拉取公网RTSP/RTMP流在内网多
- 下一篇: 直播系统中使用SEI传输用户自定义数据方