最强总结机器学习模型,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 是一个高效、灵活的降维工具,可广泛应用于图像、文本和基因组数据分析中。
热门推荐
潮州美食街:一座城市的味觉地标与经济引擎
探访潮州美食街:海鲜与工夫茶的完美邂逅
潮州古城探秘:牌坊街美食全攻略
自制圣斗士披风教程:从设计到成品的完整指南
职场新人如何摆脱“胃痛魔咒”
黛力新联合替普瑞酮治疗慢性胃炎:一项随机对照研究
胃是情绪器官,你信吗?
在高速服务区过夜真的会多收费吗?有经验的人告诉你如何避免多收费
高速超时费是什么?高速服务区待久了还要收费?这么久终于知道了
工作压力山大?这招教你轻松应对
郑州大学第五附属医院开展2024年"红会送医计划"活动
全力打造区域医疗中心建设“河南样板”
探索12星座的英文表达及起源故事:神话与性格的完美结合
什么是占星学星座?一个简单的解释
过硼酸钠:产量居全球第三的硼化学品及其应用
裸睡养生:让身体自由呼吸的睡眠革命
从多巴胺到商业价值:解析美女图片的吸引力
本吉奥和迪昂热议:AI能否拥有意识?
侧柏叶防脱效果好,四种方法让你告别脱发烦恼
侧柏叶生发功效获科学证实,多种方法改善脱发
从柴火到养生茶:侧柏叶身价暴涨背后的多重价值
农村常见侧柏叶,竟是治脱发、乌发的天然良药
三亚二月游攻略:18-27℃的温暖假期,美女导游小溪全程陪伴
二月三亚旅游攻略:十大景点游玩及省钱贴士
三亚二月游:温暖如春,玩转亚龙湾等四大景点
丰田7款车型认证违规,日本政府责令一个月内整改
长夜难明:探索人性的深处
紫金陈趣谈新作《长夜难明:双星》 这次的悬疑故事是女性复仇
巴拿马猴类已经进入石器时代?会进化成全新的人类吗?
“猴子”进化成人类的过程,为什么如此同步?