降维是一种通过优化机器学习模型的训练数据输入变量来减少模型训练成本的技术。在高维数据中,输入变量的数量可能非常庞大,降维的目的是尽可能地保留原始数据的可变性。通过降维,我们可以减少模型训练所需的计算资源,并在一定程度上提高模型的准确性。
在机器学习中,对于较少输入变量或低维度的数据,可以使用结构更简单、参数更少的机器学习模型进行处理。特别是在神经网络中,通过使用简单模型来降低数据的维数,可以实现很好的泛化效果,从而使模型更加可取。
降维的重要性
- 高维数据执行学习训练具有非常高的计算成本。而且通过高维数据训练的模型往往在训练数据上表现得相当好,但在测试时表现不佳。
- 降维消除了数据中不相关的特征或变量,可以帮助模型预测避免维度诅咒,同时还能保留数据中的相关特征,提高准确性。
- 减少数据的维度也使数据可视化更容易,节省训练时间和存储空间。
- 降维还可以通过消除多重共线性来帮助增强对机器学习模型参数的解释。
- 可以应用降维来缓解过拟合问题
- 降维可用于因子分析
- 降维可用于图像压缩
- 降维可将非线性数据转换为线性可分形式
- 降维可用于压缩神经网络架构
降维的组成部分
特征选择
这涉及尝试识别原始特征的子集,以尝试找到可以用来对问题进行建模的较小子集。
特征选择类型
- 递归特征消除
递归特征消除(RFE)方法的核心是不同机器学习算法本质上是RFE包装的,用于帮助选择特征。
从技术上讲,它是一种包装类型的特征选择算法,它在内部也使用了基于过滤器的特征选择。它的工作原理是从训练数据集中的特征开始寻找特征的子集,然后消除特征直到保留所需的数量。
- 遗传特征选择
遗传算法(GA)的灵感来自达尔文的自然选择理论,在该理论中,只有最适合的个体才能得到保存,模仿自然选择的力量来找到函数的最佳值。
由于变量在组中起作用,因此对于遗传算法,所选变量被视为一个整体。该算法不会针对目标单独对变量进行排名。
- 顺序前向选择
在顺序前向选择中,首先选择最好的单个特征。之后,它通过剩余特征之一与最佳特征形成特征对,再然后选择最佳对。接下来会看到使用这对最佳特征以及剩余特征之一形成的三重特征。这可以一直持续到选择了预定义数量的特征。
特征提取
特征提取涉及将原始原始数据集减少为可管理的组以进行处理。它最常使用文本和图像数据进行,提取和处理最重要的特征,而不是处理整个数据集。
降维的方法
主成分分析(PCA)
这是一种线性降维技术,它将一组相关特征“p”转换为较少数量的不相关特征“k”(k<p)。这些较少的不相关变量被称为主成分。该方法尽可能多地保留原始数据集的变化。它是一种无监督机器学习算法。
线性判别分析(LDA)
这种技术按类别将训练实例分开。它识别输入变量的线性组合,从而优化类可分离性。它是一种有监督的机器学习算法。
广义判别分析(GDA)
此方法使用一个函数核心操作员。它将输入向量映射到高维特征空间。该方法旨在通过最大化类间散度与类内散度的比率来找到变量到低维空间的投影。
还有其他的降维方法,如t分布随机邻域嵌入(t-SNE)、因子分析(FA)、截断奇异值分解(SVD)、多维缩放(MDS)、等距映射(Isomap)、后向消除、前向选择等。
降维是可逆的吗?
降维在自动编码器中是可逆的。这些本质上是常规的神经网络,中间有一个瓶颈层。例如,第一层可以有20个输入,中间层有10个神经元,最后一层有另外20个神经元。在训练这样一个网络时,基本上强制它把信息压缩到10个神经元,然后再解压缩,从而最大限度地减少最后一层的错误。