机器学习实战课后习题(八)

机器学习实战课后习题第八章答案

课本:handson-ml2

1.减少数据集维度的主要动机是什么?主要缺点是什么?

1.降维的主要动机是:

  • 为了加速后续的训练算法(在某些情况下,也可能为了消除噪声和冗余特征,使训
    练算法性能更好)。
  • 为了将数据可视化,并从中获得洞见,了解最重要的特征。
  • 为了节省空间(压缩)。主要的弊端是:
  • 丢失部分信息,可能使后续训练算法的性能降低。
  • 可能是计算密集型的。
  • 为机器学习流水线增添了些许复杂度。
  • 转换后的特征往往难以解释。
2.维度的诅咒是什么?

答:维度的诅咒是指许多在低维空间中不存在的问题,在高维空间中发生。在机器学习领域,一个常见的现象是随机抽样的高维向量通常非常稀疏,提升了过拟合的风险,同时也使得在没有充足训练数据的情况下,要识别数据中的模式非常困难。

3.一旦降低了数据集的维度,是否可以逆操作?如果可以,怎么做?如果不能,为什么?

答:一旦使用我们讨论的任意算法减少了数据集的维度,就几乎不可能再将操作完美地逆转,因为在降维过程中必然丢失了一部分信息。此外,虽然有一些算法(例如PCA)拥有简单的逆转换过程,可以重建出与原始数据集相似的数据集,但是也有一些算法不能实现逆转(例如T-SNE)。

4.可以使用PCA来减少高度非线性的数据集的维度吗?

答:对大多数数据集来说,PCA可以用来进行显著降维,即便是高度非线性的数据集,因为它至少可以消除无用的维度。但是如果不存在无用的维度(例如瑞士卷),那么使用PCA降维将会损失太多信息。你希望的是将瑞士卷展开,而不是将其压扁。

5.假设你在1000维的数据集上执行PCA,将可解释方差比设置为95%。结果数据集将具有多少个维度?

答:这是个不好回答的问题,它取决于数据集。我们来看看两个极端的示例。首先,假设数据集是由几乎完全对齐的点组成的,在这种情况下,PCA可以将数据集降至一维,同时保留95%的方差。现在,试想数据集由完全随机的点组成,分散在1000个维度上,在这种情况下,需要在950个维度上保留95%的方差。所以,这个问题的答案是:取决于数据集,它可能是1到950之间的任何数字。将解释方差绘制成关于维度数量的函数,可以对数据集的内在维度获得一个粗略的概念。

6.在什么情况下,你将使用常规PCA、增量PCA、随机PCA或内核PCA?

答:常规PCA是默认选择,但是它仅适用于内存足够处理训练集的时候。增量PCA对于内存无法支持的大型数据集非常有用,但是它比常规PCA要慢一些,所以如果内存能够支持,还是应该使用常规PCA。当你需要随时应用PCA来处理每次新增的实例时,增量PCA对于在线任务同样有用。当你想大大降低维度数量,并且内存能够支持数据集时,使用随机PCA非常有效,它比常规PCA快得多。最后,对于非线性数据集,使用核化PCA非常有效。

7.如何评估数据集中的降维算法的性能?

答:直观来说,如果降维算法能够消除许多维度并且不会丢失太多信息,那么这就算一个好的降维算法。进行衡量的方法之一是应用逆转换然后测量重建误差。然而并不是所有的降维算法都提供了逆转换。还有另一种选择,如果你将降维当作一个预处理过程,用在其他机器学习算法(比如随机森林分类器)之前,那么可以通过简单测量第二个算法的性能来进行评估。如果降维过程没有损失太多信息,那么第二个算法的性能应该跟使用原始数据集一样好。

8.链接两个不同的降维算法是否有意义?

答:链接两个不同的降维算法绝对是有意义的。常见的示例是使用PCA快速去除大量无用的维度,然后应用另一种更慢的降维算法,如LLE。这种两步走的策略产生的结果可能与仅使用LLE相同,但是时间要短得多。

9和10的代码均在github中

点击此处查看代码(github)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值