降维是一个对数据集进行降维的过程,它取许多特征并将其表示为较少的特征。例如,维数缩减可以用来将一个包含20个特征的数据集缩减为几个特征。在无监督的学习任务中,通常使用降维来自动创建基于许多特征的类。为了更好地理解为什么以及如何使用维度约简,我们将研究与高维数据相关的问题以及最流行的降维方法。
维度是指数据集中的特性/列的数量。
人们通常认为,在机器学习中,更多的特征是更好的,因为它可以创建更精确的模型。然而,更多的特征并不一定转化为更好的模型。
数据集的特性在对模型的有用程度方面可能有很大的不同,许多特性并不重要。此外,数据集包含的特征越多,就需要越多的样本来确保不同的特征组合在数据中得到很好的表示。因此,样本数量与特征数量成比例增加。更多的样本和更多的特征意味着模型需要更加复杂,随着模型变得更加复杂,它们对过度拟合变得更加敏感。
减少数据集的维数有几个好处。如前所述,较简单的模型不太容易过度拟合,因为模型必须对特性如何相互关联做出较少的假设。此外,维数越小,训练算法所需的计算能力就越小。同样,对于维数较小的数据集,所需的存储空间也更少。
常用降维方法
降维可以通过特征选择或特征工程来实现。特征选择是工程师识别数据集最相关的特征,而特征工程是通过组合或转换其他特征来创建新特征的过程。
特征选择和工程可以通过编程或手动完成。当手动选择和设计特征时,可视化数据以发现特征和类之间的相关性是典型的。以这种方式执行维度缩减可能会耗费大量时间,因此,一些最常见的降维方法涉及到使用库中可用的算法,如Scikit learn for Python。这些常见的降维算法包括:主成分分析(PCA)、奇异值分解(SVD)和线性判别分析(LDA)。
用于无监督学习任务的降维算法通常是PCA和SVD,而用于有监督学习降维的算法通常是LDA和PCA。在有监督学习模型的情况下,新生成的特征被输入到机器学习分类器中。请注意,这里描述的用途只是一般的用例,而不是这些技术可能使用的唯一条件。上面描述的降维算法是简单的统计方法,它们在机器学习模型之外使用。