最强总结机器学习模型,UMAP !!
创作时间:
作者:
@小白创作中心
最强总结机器学习模型,UMAP !!
引用
CSDN
1.
https://m.blog.csdn.net/2201_75910862/article/details/145705705
UMAP(Uniform Manifold Approximation and Projection)是一种用于降维和数据可视化的非线性方法。它通过建立高维空间中的最近邻图,并使用优化算法将高维数据投影到低维空间,同时尽量保留数据的局部拓扑结构。
UMAP 理论
UMAP(Uniform Manifold Approximation and Projection)是一种用于降维和数据可视化的非线性方法。它通过建立高维空间中的最近邻图,并使用优化算法将高维数据投影到低维空间,同时尽量保留数据的局部拓扑结构。UMAP 提供了比 t-SNE 更快的计算速度和更清晰的全局结构表现。
完整案例
咱们通过 Python 展示 UMAP 在降维与数据分析中的应用。以下代码包括数据生成、降维、绘图和分析。
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs, make_swiss_roll
import umap
# 设置随机种子
np.random.seed(42)
# 生成数据:高维分类数据 + 瑞士卷数据
n_samples = 3000
X_blob, y_blob = make_blobs(n_samples=n_samples, centers=4, n_features=6, cluster_std=5.0)
X_swiss, y_swiss = make_swiss_roll(n_samples=n_samples, noise=0.1)
# 初始化 UMAP
umap_blob = umap.UMAP(n_neighbors=15, min_dist=0.1, n_components=2, random_state=42)
umap_swiss = umap.UMAP(n_neighbors=10, min_dist=0.05, n_components=2, random_state=42)
# 执行降维
X_blob_2d = umap_blob.fit_transform(X_blob)
X_swiss_2d = umap_swiss.fit_transform(X_swiss)
# 创建绘图函数
def plot_umap(title, X_2d, labels, cmap, xlabel='UMAP1', ylabel='UMAP2'):
plt.figure(figsize=(10, 8))
scatter = plt.scatter(X_2d[:, 0], X_2d[:, 1], c=labels, cmap=cmap, s=10, alpha=0.8)
plt.colorbar(scatter, label='Labels')
plt.title(title, fontsize=16)
plt.xlabel(xlabel, fontsize=14)
plt.ylabel(ylabel, fontsize=14)
plt.grid(True, linestyle='--', alpha=0.5)
plt.show()
# 分类数据降维
plot_umap("UMAP Projection of Blob Data", X_blob_2d, y_blob, cmap="viridis")
# 瑞士卷数据降维
plot_umap("UMAP Projection of Swiss Roll Data", X_swiss_2d, y_swiss, cmap="Spectral")
Blob 数据的 UMAP 降维图
每个颜色代表一个类别。图中可以观察到,UMAP 有效地将高维空间的类群划分映射到二维空间,显示了良好的类间分离。
瑞士卷数据的 UMAP 降维图
每个颜色表示样本的距离顺序。降维结果显示,UMAP 成功地将瑞士卷从三维展开到二维,同时保持了样本的连续性。
案例扩展
Blob 数据的分析
Blob 数据是一个高维分类数据集,UMAP 的降维过程帮助我们:
- 发现不同类别在二维空间中的分布结构。
- 为聚类算法提供可视化验证。
通过调整 n_neighbors 和 min_dist 参数,可以进一步优化类间分离度。
瑞士卷数据的分析
瑞士卷数据属于流形学习的经典问题。UMAP 的降维展示了:
- 样本的局部邻近关系(颜色连续性)。
- 数据的全局结构未被破坏。
这表明 UMAP 适用于具有流形结构的数据降维任务。
参数调节与分析
UMAP 的主要参数包括:
- n_neighbors:控制每个点的局部邻域大小。
- 较小的值保留局部细节,适用于聚类。
- 较大的值强调全局结构。
- min_dist:控制低维空间中的压缩程度。
- 较小的值使数据点更紧密。
- 较大的值保持点之间的距离。
- n_components:指定降维后的维度。
参数调整实验
以下是一个调整参数的实验。
# 不同参数的 UMAP
umap_params = [
(5, 0.1), (15, 0.3), (30, 0.5)
]
plt.figure(figsize=(15, 10))
for i, (n_neighbors, min_dist) in enumerate(umap_params):
umap_model = umap.UMAP(n_neighbors=n_neighbors, min_dist=min_dist, random_state=42)
X_blob_adjusted = umap_model.fit_transform(X_blob)
plt.subplot(2, 2, i + 1)
scatter = plt.scatter(X_blob_adjusted[:, 0], X_blob_adjusted[:, 1], c=y_blob, cmap="viridis", s=10, alpha=0.8)
plt.colorbar(scatter, label='Labels')
plt.title(f"n_neighbors={n_neighbors}, min_dist={min_dist}", fontsize=12)
plt.grid(True, linestyle='--', alpha=0.5)
plt.tight_layout()
plt.show()
- 高维数据分类:UMAP 能够以低维形式展现高维分类数据的类别分布,为聚类和分类任务提供支持。
- 流形学习:UMAP 在复杂流形结构数据的降维中展示了优异性能,保持了样本邻近关系。
- 参数调节的影响:UMAP 的参数对降维结果有显著影响,需根据任务需求调整。
- UMAP 是一个高效、灵活的降维工具,可广泛应用于图像、文本和基因组数据分析中。
热门推荐
金银花施肥全攻略(掌握关键,让金银花生长更健康)
小米盘后开启配售!先旧后新的快速解读
钉钉如何下载云盘视频
糖尿病与干疽坏死:病因、症状、诊断与预防
相机曝光调节完全指南:15种实用技巧详解
养鳄龟幼崽完全指南:从环境到市场的全方位养护攻略
微波:无形的桥梁,编织现代通信的经纬
看指甲,辨健康丨从指甲形态、颜色、质地看身体潜在问题
@所有人:行人、非机动车、机动车,如何正确过斑马线?
一分钟看完看懂电机的接线方法
听说每天要至少吃12种食物,能简单点吗?
沃辛瘤是什么?症状、病因及治疗全解析
瑶里古镇:千年古镇的历史文化传承
数字赋能 赤壁青砖茶踏上“标准化”之旅
为什么3D会成为未来UI的趋势?沉浸感是2D无法比拟的
西安景点分布图详细图?(西安所有景点分布图高清)?
自闭症专项评估量表:PEP-3、VB-MAPP和WEEFIM
低碳饮食怎么吃才能瘦?营养师告诉你不复胖的秘诀
南川金佛山中医院是真是假?怎么判断一家医院靠不靠谱
社工考证复习攻略,小白也能轻松上岸!
社工证考试,到底几分才能过关?
业务级别上调一年后,丁健该怎么把“闲鱼”养成大鱼?
海参煮多久才好吃?这份详细指南让你秒变大厨
备用钥匙“藏”在这里,住楼房的朋友再不怕忘带钥匙了,早知早好
出厂6个月算新车吗?库存车选购全攻略
智能电表的精度能有多高
2025年570分考生如何选择专业
2024探索墨西哥城文化的6种新方式
乌兰布和沙漠“锁边”治理:难点与对策
一周仅一针 全球首个胰岛素周制剂获准进入巴西市场