python库umap有效地揭示高维数据的结构和模式初探

 更新时间:2024年01月22日 10:46:59   作者:小寒聊python  
这篇文章主要介绍了python库umap有效地揭示高维数据的结构和模式初探,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

python 库umap

今天给大家分享一个超强的 python 库,umap

https://github.com/lmcinnes/umap 

UMAP 是一种用于降维的算法,可用于类似于 t-SNE 的可视化。UMAP 基于流形学习的概念,旨在更有效地揭示高维数据中的结构和模式。

该算法基于关于数据的三个假设

  • 数据均匀分布在黎曼流形上

  • 黎曼度量是局部常数(或者可以近似为局部常数)

  • 流形是局部连接的

优点

UMAP 作为一种现代的降维技术,具有如下优点。

  • 速度快:UMAP 通常比其他降维技术,如 t-SNE,更快,尤其是在处理大型数据集时。

  • 良好的可扩展性:UMAP能够处理相当大的数据集,同时保持较低的计算和内存要求。

  • 保持全局结构:相比于 t-SNE,UMAP 在保持局部结构的同时,还能较好地保留全局数据结构。

  • 参数少且具有解释性:UMAP的参数较少,而且相对直观易懂,如邻域大小和最小距离。

  • 交互式可视化:其低维表示适合进行交互式数据探索和可视化。

  • 兼容性:UMAP可以与 scikit-learn 等 Python 机器学习库无缝集成。

数学原理

  • 构建高维空间的邻域图:对于每个点,UMAP 在高维空间中寻找其近邻,并基于距离或相似性构建一个加权图。这种加权是通过局部距离度量(如欧氏距离)来实现的。

  • 优化过程:UMAP 尝试找到一个低维表示,其中的点保持着类似于高维数据的局部和全局关系。这是通过最小化高维空间和低维空间之间的交叉熵损失来实现的。

  • 流形假设:UMAP 假设数据分布在某种低维流形上。这意味着即使数据原本存在于高维空间,也可以在更低维的空间中找到其近似表示。

相关公式

高维空间中的距离度量:对于每个点 ,UMAP定义了一个局部距离度量,通常为欧氏距离或其他度量。

交叉熵最小化:UMAP最小化的目标函数基于交叉熵,形式上为:

其中, 是高维空间中点  和  之间的连接概率,而  是低维表示中对应点的相似性度量。

概率分布匹配:UMAP 尝试匹配高维和低维空间中的两个概率分布  和 

优化算法:通常使用随机梯度下降或类似方法来最小化交叉熵损失。

初体验

库的安装

我们可以直接使用 pip 来进行安装,umap 依赖于 scikit-learn 和 numba,确保你已经安装了它们。

pip install umap-learn

如果你想使用绘图功能,可以使用。

pip install umap-learn[plot]

一个案例

这里,我们使用 MNIST 数据集来作为演示。

import umap
from sklearn.datasets import load_digits

digits = load_digits()

mapper = umap.UMAP(n_neighbors=10,min_dist=0.001).fit(digits.data)
umap.plot.points(mapper, labels=digits.target)

以上就是python库umap有效地揭示高维数据的结构和模式初探的详细内容,更多关于python库umap高维数据的资料请关注脚本之家其它相关文章!

相关文章

  • 详解Python中对Excel的处理操作

    详解Python中对Excel的处理操作

    Excel是一种常见的电子表格文件格式,广泛用于数据记录和处理,Python提供了多个第三方库,可以方便地对Excel操作,下面就来和大家详细讲讲吧
    2023-07-07
  • python感知机实现代码

    python感知机实现代码

    这篇文章主要为大家详细介绍了python感知机实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • opencv python 图像轮廓/检测轮廓/绘制轮廓的方法

    opencv python 图像轮廓/检测轮廓/绘制轮廓的方法

    这篇文章主要介绍了opencv python 图像轮廓/检测轮廓/绘制轮廓的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • python分布式编程实现过程解析

    python分布式编程实现过程解析

    这篇文章主要介绍了python分布式编程实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Zookeeper接口kazoo实例解析

    Zookeeper接口kazoo实例解析

    这篇文章主要介绍了Zookeeper接口kazoo实例解析,简单介绍了Zookeeper接口接口的开发,然后分享了相关实例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • 跟老齐学Python之使用Python操作数据库(1)

    跟老齐学Python之使用Python操作数据库(1)

    本文详细讲述了使用python操作数据库所需要了解的知识以及准备工作,十分的详尽,这里推荐给想学习python的小伙伴。
    2014-11-11
  • matplotlib绘制符合论文要求的图片实例(必看篇)

    matplotlib绘制符合论文要求的图片实例(必看篇)

    下面小编就为大家带来一篇matplotlib绘制符合论文要求的图片实例(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • Python OpenCV实现基本图形绘制

    Python OpenCV实现基本图形绘制

    这篇文章主要介绍了Python OpenCV实现基本图形绘制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Python中实现输入超时及如何通过变量获取变量名

    Python中实现输入超时及如何通过变量获取变量名

    这篇文章主要介绍了Python中实现输入超时以及通过变量获取变量的名字,本文给大家分享了解决思路主要是通过多线程法实现,需要的朋友可以参考下
    2020-01-01
  • 在Python的Django框架中更新数据库数据的方法

    在Python的Django框架中更新数据库数据的方法

    这篇文章主要介绍了在Python的Django框架中更新数据库数据,对此Django框架中提供了便利的插入和更新方法,需要的朋友可以参考下
    2015-07-07

最新评论