一些问题
减少数据集维度的主要动机是什么?主要缺点是什么?
- 加速训练算法、将数据可视化、节省空间。
- 丢失部分信息、为机器学习流水线增添了些许复杂度、转化后的特征往往难以理解。
维度的诅咒是什么?
- 许多在低维空间中不存在的问题,在高维空间中发生。在机器学习领域,一个常见的现象是随机抽样的高维向量通常非常稀疏,提升了过拟合的风险,同时也使得在没有充足训练数据的情况下,要识别数据中的模式非常困难。
一旦降低了数据集的维度,是否可以你操作?如果可以,怎么做?如果不能,为什么?
- 几乎不可能再将操作完美的逆转,因为在降温过程中必然丢失了一部分信息。此外,虽然有一些算法拥有简单的逆转换过程,可以重建出与原始数据集相似的数据集,但是也有一些算法不能实现逆转。
你可以使用PCA来减少高度非线性的数据集的维度吗?
- 对于大多数数据集来说,PCA可以用来进行显著降维,即使是高度非线性的数据集。但是如果不存在无用的纬度(瑞士卷),那么使用PCA降维将会损失太多信息。
在什么情况下你将使用常规PCA?增量PCA?随机PCA内核PCA
- 常规PCA是默认选择,但是他仅适用于内存足够处理训练集的时候。
- 增量PCA对于内存无法支持的大型数据集非常有用,但是他比常规PCA要慢一些。所以内存如果能够支持,还是应该使用常规PCA。当你随时需要应用PCA来处理每次新增的实例时,增量PCA对于在线任务同样有用。
- 当你想大大降低维度数量,并且内存能够支持数据集时,使用随机PCA非常有效,他比常规PCA快得多。
- 对于非线性数据集,使用核化PCA非常有效。
如何评估数据集中的降维算法的性能?
- 进行衡量的方法之一是应用逆转换,然后测量重建误差。
- 还有另一种选择,如果你将降为当做一个逆处理过程,用在其他机器学习算法之前。那么可以通过简单测量第二个算法的性能来进行评估。
链接两个不同的降维算法是否有意义?
- 有意义。比如使用PCA快速去除大量无用的纬度,然后应用另一种更慢的降维算法LLE,这种两步走的策略产生的结果可能与仅使用LLE相同,但是时间要短得多。
其他降维见之前的李宏毅学习笔记