如何画lda投影结果_机器学习100天-Day1901降维(投影&流形学习)

37b5926b64a21434584c6a158887a4cd.png

说明:本文依据《Sklearn 与 TensorFlow 机器学习实用指南》完成,所有版权和解释权均归作者和翻译成员所有,我只是搬运和做注解。

第八章降维

到达第一部分机器学习的最终章,降维,最早也是在这里开始应用的,当时是使用Sklearn中LDA模型完成主题抽取,现在又回到这里,另外可能看帖的童鞋也发现了,最近的状态有问题,一直在往前推,但是对代码的分析变得很少。我只是想尽快搞定,然后转到NLP上去。

很多机器学习的问题都会涉及到有着几千甚至数百万维的特征的训练实例。这不仅让训练过程变得非常缓慢,同时还很难找到一个很好的解,这种问题通常被称为维数灾难(curse of dimentionality)。

降维会让项目更复杂因而更难维护。所有应该先尝试使用原始的数据训练,如果训练速度太慢的话再考虑使用降维。在某些情况下,降低训练集数据的维度可能会筛选掉一些噪音和不必要的细节,这可能会让你的结果比降维之前更好。

 源代码已经同步在github中 https://github.com/jwc19890114/-02-learning-file-100days

1.维数灾难

训练集的维度越高,过拟合的风险就越大

理论上解决维数爆炸可以通过增加训练集的大小从而达到拥有足够密度的训练集。但是在实践中,达到给定密度所需的训练实例的数量随着维度的数量呈指数增长。如果只有 100 个特征(比 MNIST 问题要少得多)并且假设它们均匀分布在所有维度上,那么如果想要各个临近的训练实例之间的距离在 0.1 以内,需要比宇宙中的原子还要多的训练实例。

2.降维的主要方法

投影和流形学习

投影(projection)

教程先展示了一个三维向二维投影后生成的环形降维结果,进一步提出投影可能不是降维的最佳方法,因为如果遇到一个卷曲数据集,如果简单使用投影会发现降维结果并不理想,给出的例子是瑞士卷数据集(是sklearn中的一类数据集,)。

流行学习(manifold learning)

瑞士卷一个是二维流形的例子,是一种二维形状,它可以在更高维空间中弯曲或扭曲。更一般地,一个d维流形是类似于d维超平面的n维空间(其中d < n)的一部分。在我们瑞士卷这个例子中,d = 2,n = 3:它有些像 2D 平面,但是它实际上是在第三维中卷曲。

许多降维算法通过对训练实例所在的流形进行建模从而达到降维目的;这叫做流形学习。它依赖于流形猜想(manifold assumption),也被称为流形假设(manifold hypothesis),它认为大多数现实世界的高维数据集大都靠近一个更低维的流形。

流形假设通常包含着另一个隐含的假设:你现在的手上的工作(例如分类或回归)如果在流形的较低维空间中表示,那么它们会变得更简单。但是教程中又提出数据集不同,展开后的二维图形也不同,不一定会得到更简单的流行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值