强大的可视化&异常检测工具

liftword10小时前技术文章1

UMAP:强大的可视化&异常检测工具

数据降维最为重要的是降低数据的维度的同时尽可能保有大量的原始信息,而其中最为大家熟知的是PCA和tSNE,但是这二者都存在一些问题,

  1. PCA的速度相对很快,但代价是数据缩减后会丢很多底层的结构信息;
  2. tSNE可以保留数据的底层结构,但速度非常慢;

UMAP是2018年被提出的降维和可视化算法,它使用Uniform流形近似和投影(UMAP),既可以获得PCA的速度优势,同时还可以保留尽可能多的数据信息,而且其可视化效果也非常美观,如下:

除此之外,UMAP在很多竞赛中也得到了广泛应用,比如在高维数据集中更快更准确的进行异常值检测。

Uniform Manifold Approximation and Projection (UMAP) 是一种降维技术,它不仅可以进行降维,而且可用于可视化,类似于t-SNE,也可用于一般非线性降维。

UMAP基于对数据的三个假设

  1. 数据均匀分布在黎曼流形上(Riemannian manifold);
  2. 黎曼度量是局部const(或可以近似为局部const);
  3. 流形是局部连接的。

根据这些假设,可以用模糊拓扑结构对流形进行建模。UMAP的优点包括:

  1. 速度很快,相较于tSNE等快了非常多;
  2. 因为保留了尽可能多的数据信息,其可视化效果更好;
  3. 还可以用于异常检测等;

但UMAP的问题在于RAM消耗可能有些大。尤其是在装配和创建连接图等图表时,UMAP会消耗大量内存。



UMAP可视化

import umap
import umap.plot   
from sklearn.impute import SimpleImputer
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import QuantileTransformer
 
pipe = 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")


和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)

涉及到数据降维,数据可视化以及异常检测等都可以考虑使用。

原文链接:

https://mp.weixin.qq.com/s/KSnOti9by2IVptzmft9_yw

相关文章

Python 和 R 数据分析/挖掘工具互查

写在前面在此总结一些在数据分析/挖掘中可能用到的功能,方便大家索引或者从一种语言迁移到另一种。当然,这篇博客还会随时更新(不会另起一篇,为了方便大家索引),请大家如果有需要收藏到书签中。如果大家已经熟...

Python 裸体检测

人脑知道如何区分穿衣服的人、穿比基尼的人和裸体的人。然后我有一个我无法立即回答的问题:一个简单的程序,几行代码就能知道照片是否裸体吗?让我们进入正题……一个可以知道你是否裸体的人工智能?Nudity...

化学方向:EI源刊实验数据写法

推荐期刊:Journal of Analytical Chemistry- 刊号:ISSN 1061-9348,CN 11-2345/O6- 影响因子:2.1(最新版)- 分区:中科院3区,JCR...

想学好Python数据分析,一定要掌握的重要模块之Statsmodels

Statsmodels是Python中一个功能强大且广泛使用的统计建模和经济计量学库。它允许用户构建各种统计模型,执行假设检验,进行预测,并对模型结果进行详细的诊断和可视化。以下是statsmodel...

「医学统计学之二」卡方检验之独立性检验:python的scipy实现

△ 概念:1 独立性检验:是对两个或两个以上因子彼此之间是否相互独立做检验时,就要用到卡方检验。2 列联表中变量独立性的卡方检验,采用python中scipy包的scipy.stats.chi2_co...

R数据分析:倾向性评分匹配实例操作

倾向性评分匹配是一种控制混杂的技巧,本文主要写操作,具体原理大家自己摸索哈。propensity score matching (PSM) is a “statistical matching tec...