UMAP文档阅读笔记

本文仅作为UMAP文档的导读,详细可参考UMAP文档原文

一、下载安装

	pip install -r requirements.txt
	pip install umap-learn

二、基本使用

1、输入数据类型:pandas
2、构造umap对象:reducer = umap.UMAP()
3、对数据进行变换:embedding = reducer.fit_transform(data)
fit_transform会先调用fit(),然后再transform();
等价于:

	reducer.fit(data)
	embedding = reducer.transform(data)

三、UMAP基本参数

1、n_neighbors
邻点数量,默认15,提供局部与全局特征的平衡
2、min_dist
允许打包点集的紧致程度,默认0.1
3、n_components
嵌入维度,默认2维
4、metric
距离度量方式,可以用已有的,也可以自定义

四、UMAP结果绘制

1、基本使用

	mapper = umap.UMAP().fit(data)
	umap.plot.points(mapper)

也可以通过labels控制每种label的着色:

	umap.plot.points(mapper, labels=pendigits.target)

2、交互式界面:umap.plot.interactive
3、绘制链接:umap.plot.connectivity

五、UMAP可重复性

可以设置随机种子:umap.UMAP(random_state=42)

六、UMAP新数据转换

1、训练数据学到的模型可以用于测试数据

	trans = umap.UMAP().fit(X_train)
	test_embedding = trans.transform(X_test)

注意:这里是无监督学习(后面也会说使用标签信息);transform效率很高。
2、UMAP可以作为数据预处理中的一步,例:

	trans = umap.UMAP(n_components=10).fit(X_train)
	svc = SVC().fit(trans.embedding_, y_train)
	svc.score(trans.transform(X_test), y_test)

七、逆变换

UMAP允许从低维空间到高维空间的逆变换,例:

	mapper = umap.UMAP(random_state=42).fit(data)
	# 随机在低维空间取点集test_pts
	inv_transformed_points = mapper.inverse_transform(test_pts)

八、参数化(神经网络)嵌入

UMAP提供了参数化嵌入ParametricUMAP,在这里面,可以自定义模型、保存和加载模型、训练模型等。
其后端网络模型使用KerasTensorflow实现。

九、UMAP处理稀疏数据

(我感觉我一时半会用不到,就先不看了)

十、有监督降维和度量学习

可以通过y来设定标签,同时可以用于学习度量,例:

	mapper = umap.UMAP().fit(train_data, y=train_labels)
	test_embedding = mapper.transform(test_data)

十一、UMAP用于聚类

UMAP可以作为聚类的数据预处理阶段,增强数据聚类效果。

十二、UMAP用于异常点检测

在运行传统的异常检测方法(如LOF)之前,使用UMAP来降低维数,可以提高算法的运行速度和异常检测能够找到的结果的质量。
同时通过设置set_op_mix_ratio参数,也可以尽可能保持离群点的映射。

十三、组合多个UMAP模型

交:intersection_mapper = mapper1 * mapper2
并:union_mapper = mapper1 + mapper2
差:contrast_mapper = mapper1 – mapper2

十四、使用DensMAP更好地展示局部密度

densmap=True即可使用DensMap,参数dens_lambda可以控制局部密度强度,默认为2.0。例:

dens_mapper = umap.UMAP(densmap=True, dens_lambda=5.0)

(剩下的内容包括文档嵌入、非欧式空间嵌入等,我一时半会用不到就不看了,感兴趣可以去看原文)

你可能感兴趣的:(python,深度学习,开发语言)