最强总结机器学习模型,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 是一个高效、灵活的降维工具,可广泛应用于图像、文本和基因组数据分析中。
热门推荐
《沧浪之水》:现实之镜映照人性挣扎
什么是反向工程
如何打造独一无二的头像创意:5个必备技巧
高尔夫汽车的通病:车主分享使用体验与检测报告
健身运动应遵守的五大原则
香港楼市回顾与展望:2024楼价整体跌6.8% 今年会否继续“量升价跌”?
爱吃核桃的人注意,医生:对身体有4种好处,但不适合这3类人
如何评价一场PPT演讲的质量?
旱柳的绿化效果和繁殖方法
企业房产税征收全攻略:计算方法、申报要求与税务筹划指南
反映肾功能好坏的金指标--肾小球滤过率,每个关心肾脏的人都值得了解它!
什么是“幸存者偏差”?为什么我们总是看不到失败者?
泉州“市井十洲宴”正式发布!
GitHub新建仓库新手教程
GitHub新建仓库新手教程
MySQL 5.7.21数据库安装与配置完全指南
职称申报网站如何验证是否官方认证
写论文找数据,这些“数据宝库”你必须知道!
意识流是什么意思有什么作用(意识流概念综述)
在使用胰岛素长期治疗的过程中有哪些注意事项
从故事里读懂"青春之城":东莞的青年发展密码
红海中的蓝海:被忽视的老年车市场!
什么是黑关、灰关、白关?灰关和白关的区别
好莱坞与鸡尾酒:天生绝配
在Excel中计算税后价的详细教程
认识我们的器官——肾脏篇
上海市劳动仲裁申请全流程指南
如何正确使用热水器泄压阀放水(掌握正确的放水方法)
江苏省哪个行业和地区工资最高?江苏省各行业和地区平均工资排名
洗衣机排水排不尽怎么办?全方位故障排查与维修指南