t-SNE算法入门介绍及对手写数字降维可视化demo

本文介绍了t-SNE作为流型学习中的非线性降维方法,详细阐述了其原理和在高维数据可视化中的应用。t-SNE在降维后能帮助观察数据的分布和可分性,尽管计算复杂度高,但Barnes-Hut t-SNE提供了速度优化。同时,文章提到了sklearn库中t-SNE的参数设置,并展示了在手写数字数据上的降维可视化案例。
摘要由CSDN通过智能技术生成

流型学习

流形学习方法(Manifold Learning),简称流形学习,简单的讲,流形学习方法可以用来对高维数据降维,如果将维度降到2维或3维,我们就能将原始数据可视化,从而对数据的分布有直观的了解,发现一些可能存在的规律。

流型学习分类

在这里插入图片描述
目前,我们可以将流形学习方法分为线性的和非线性的两种。

  • 线性的流形学习方法,如我们熟知的主成份分析(PCA)
  • 非线性的流形学习方法,如等距映射(Isomap),拉普拉斯特征映射(Laplacian eigenmaps,LE),局部线性嵌入(Locally-linear embedding,LLE)。

t-SNE(t-distributed Stochastic Neighbor Embedding)

  1. t-SNE 是目前来说效果最好的数据降维与可视化方法。
  2. 应用场景:当我们想要对高维数据进行分类,又不清楚这个数据集有没有很好的可分性(即同类之间间隔小,异类之间间隔大),可以通过 t-SNE 投影到 2 维或者 3 维的空间中观察一下。如果在低维空间中具有可分性,则数据是可分的;如果在高维空间中不具有可分性,可能是数据不可分,也可能仅仅是因为不能投影到低维空间。
  3. 缺点:
    • t-SNE 的计算复杂度很高,在数百万个样本数据集中可能需要几个小时,而 PCA 可以在几秒钟或几分钟内完成;
    • Barnes-Hut t-SNE 方法(下面讲)限于二维或三维嵌入。
      算法是随机的,具有不同种子的多次实验可以产生不同的结果。虽然选择 loss 最小的结果就行,但可能需要多次实验以选择超参数;
    • 全局结构未明确保留。这个问题可以通过 PCA 初始化点(使用init ='pca')来缓解。
  4. Barnes-Hut t-SNE
    Barnes-Hut t-SNE 主要是对传统 t-SNE 在速度上做了优化,是现在最流行的 t-SNE 方法,同时它与传统 t-SNE 还有一些不同:
    • Barnes-Hut 仅在目标维度为 3 或更小时才起作用。以 2D 可视化为主。
    • Barnes-Hut 仅适用于密集的输入数据。稀疏数据矩阵只能用特定的方法嵌入,或者可以通过投影近似,例如使用sklearn.decomposition.TruncatedSVD
      Barnes-Hut 是一个近似值。使用 angle 参数对近似进行控制,因此当参数method="exact"时,TSNE()使用传统方法,此时 angle 参数不能使用。
    • Barnes-Hut 可以处理更多的数据。 Barnes-Hut 可用于嵌入数十万个数据点。
      为了可视化的目的(这是 t-SNE 的主要用处),强烈建议使用 Barnes-Hut 方法。method="exact"时,传统的 t-SNE 方法尽管可以达到该算法的理论极限,效果更好,但受制于计算约束,只能对小数据集的可视化。

sklearn TSNE参数

函数参数表:

parameters 描述
n_components 嵌入空间的维度
perpexity 混乱度,表示t-SNE优化过程中
  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值