最强总结机器学习模型,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 是一个高效、灵活的降维工具,可广泛应用于图像、文本和基因组数据分析中。
热门推荐
健康美味,薏米红豆粥你了解吗?
月季花如何养
光照不好,还可以种月季吗?选对品种一样可以
退休不迷茫,退休生活规划指南,打造你的黄金岁月!
【7大排序算法深度对比】:选择最适合的算法提升数据结构课程设计效率
柳州鱼峰区:聚焦主导产业,加快建设三大百亿级产业集群
提升费用利润率的有效策略与实践分享
心学问心理教育,面对学业压力:家长如何帮助孩子建立健康心态?
责任范围界定是什么
算法简介:什么是算法?——定义、历史与应用详解
哪些机构提供营养护肤讲师认证?
春日氛围感穿搭:从校园风到知性风,女明星私服搭配全攻略
充电站怎么建更便民?湖北研发大数据模型来决策
基本 Git 习惯:从第一天开始要采用的 7 个最佳实践
刑事辩护中的辩护技巧研究
紫叶李可以栽在家里吗?这份家庭种植指南请收好
洗洁精能否用来清洗水果和蔬菜?
2025年黄历吉日与健康运势:传统智慧与现代科学的交汇
青藏高原南部人群生存策略3600年演变史:从农业为主到牧业为主
靶向缺氧诱导因子治疗的机遇与挑战
广谱抗炎药新靶点:NLRP3抑制剂的作用机制及人源化小鼠模型的介绍
花豹 VS 美洲豹,究竟谁才是真正的猫科三哥?
清华镇青花瓷发源地
超声波检测中扫描速度调节详解
Excel中保存每次计算数据的四种方法
动漫中又美又飒的10位御姐:奇女子来生泪,御姐始祖峰不二子
为什么要买全画幅相机 全画幅相机比半画幅相机到底强在哪
动火作业安全技术交底要点是什么?
十二羰基三钌的结构性质与化学应用
68岁大妈每天喝一杯牛奶,坚持了10多年,身体指标不输年轻人