7.1降维概述
维数灾难
维数灾难(Curse of Dimensionality):通常是指在涉及到向量的计算的问题中,随着维数的增加,计算量呈指数倍增长的一种现象。
在很多机器学习问题中,训练集中的每条数据经常伴随着上千、甚至上万个特征。要处理这所有的特征的话,不仅会让训练非常缓慢,还会极大增 加搜寻良好解决方案的困难。这个问题就是我们常说的维数灾难。
维数灾难涉及数字分析、抽样、组合、机器学习、数据挖掘和数据库等诸多领域。在机器学习的建模过程中,通常指的是随着特征数量的增多,计算量会变得很大,如特征达到上亿维的话,在进行计算的时候是算不出来的。有的时候,维度太大也会导致机器学习性能的下降,并不是特征维度 越大越好,模型的性能会随着特征的增加先上升后下降。
维数灾难的主要表现
计算复杂度:随着维度增加,计算复杂度呈指数增长。例如,距离计算在低维空间中较为简单,但在高维空间中计算量会大幅增加。例如,给定一个n维空间中的两个点x和y,它们的欧氏距离为:
当n很大时,计算这个距离的代价非常高。
样本复杂度:高维空间中,模型需要更多的训练数据来获得同样的统计可靠性。这是因为高维空间中的每个维度都需要足够的样本来填充,数据量的需求呈指数增长。例如,如果一个数据集有d个维度,每个维度有k个可能的取值,那么总共可能的样本数量为𝜅。
数据稀疏性:在高维空间中,数据点往往非常稀疏。即使在均匀分布的情况下,数据点之间的距离也会变得相似,导致难以区分。这种稀疏性使得许多基于距离的算法(如最近邻分类)失效,因为所有点之间的距离趋于相等。
降维
降维(Dimensionality Reduction)是将训练数据中的样本(实例)从高维空间转换到低维空间,该过程与信息论中有损压缩概念密切相关。同时,不存在完全无损的降维。
有很多种算法可以完成对原始数据的降维,在这些方法中,降维是通过对原始数据的线性变换实现的。
降维是指将数据从高维空间转换到低维空间的过程。这一过程旨在保留数据的主要特征,同时减少数据的维数,以降低计算复杂度和提高数据处理效率。降维与信息论中的有损压缩概念密切相关,因为在降维过程中, 通常会丢失部分信息。
常见的降维方法:
• 主成分分析(PCA)
• t-SNE (t-Distributed Stochastic Neighbor Embedding)
• 线性判别分析(LDA)
为什么要降维
• 高维数据增加了运算的难度。
• 高维使得学习算法的泛化能力变弱(例如,在最近邻分类器中, 样本复杂度随着维度成指数增长),维度越高,算法的搜索难度和成本就越大。
• 降维能够增加数据的可读性,利于发掘数据的有意义的结构。
降维的主要作用
1.减少冗余特征,降低数据维度
通过降维可以消除特征之间的冗余信息,提高模型的泛化能力和预测性能。
2.数据可视化
降维可以将高维数据映射到二维或三维空间,便于可视化分析和理解数据。
t-SNE(TSNE)将数据点之间的相似度转换为概率。原始空间中的相似度由高斯联合概率表示,嵌入空间的相似度由“t分布”表示。
虽然Isomap,LLE和variants等数据降维和可视化方法,更适合展开单个连续的低维的manifold。但如果要准确的可视化样本间的相似度关系,如对于下图所示的S曲线(不同颜色的图像表示不同类别的数据),t-SNE表现更好 。因为t-SNE主要是关注数据的局部结构。
降维的优缺点
优点:
• 通过减少特征的维数,数据集存储所需的空间也相应减少,减少了特征维数所需的计算训练时间;
• 数据集特征的降维有助于快速可视化数据;
• 通过处理多重共线性消除冗余特征。
缺点:
• 由于降维可能会丢失一些数据;
• 在主成分分析(PCA)降维技术中,有时需要考虑多少主成分是难以确定的,往往使用经验法则。
具体示例
• 图像数据降维:原始图像通常包含数百万像素,通过PCA 可以将这些像素数据降维到几十维,从而加速图像处理算法的计算速度。
• 文本数据降维:文本数据通常以词向量形式表示,维数可能高达数万。通过t-SNE可以将这些高维词向量降维到二维或三维,以便于可视化分析词语之间的关系。
(多选题)在机器学习中,降维的主要作用是什么? AD
A. 减少冗余特征,降低数据维度。
B. 增加训练时间。
C. 提高模型的复杂性。
D. 有助于数据可视化。
7.2奇异值分解
奇异值分解
奇异值分解(SingularValueDecomposition,以下简称SVD)是在机器学习领域广泛应用的算法,它不光可以用于降维算法中的特征分解,还可以用于推荐系统,以及自然语言处理等领域。是很多机器学习算法的基石。
SVD可以将一个矩阵𝑀分解为三个矩阵的乘积:
一个正交矩阵 𝑈 (orthogonal matrix),
一个对角矩阵 𝛴 (diagonal matrix),
一个正交矩阵 𝑉 的转置。
SVD求解
SVD计算案例
(多选题)以下哪项关于奇异值分解(Singular Value Decomposition, SVD) 的描述是正确的?
A. SVD 可以将一个矩阵分解为三个矩阵的乘积。
B. SVD 分解得到的矩阵U的列向量称为左奇异向量。
C. SVD 分解得到的奇异值递减存放,前10% 甚至1% 的奇异值的和就可以占到全部奇异值之和的99% 以上。
D. SVD 的计算过程不涉及特征值和特征向量。
7.3主成分分析
方差是衡量数据分布离散程度的一个度量
主成分分析
• 主成分分析(principal component analysis, PCA)是一种常用的无监督学习方法。
• 这一方法利用正交变换把由线性相关变量表示的观测数据转换为少数几个由线性无关变量表示的数据,线性无关的变量称为主成分。
• 主成分的个数通常小于原始变量的个数,所以主成分分析属于降维方法。
• 主成分分析主要用于发现数据中的基本结构,即数据中变量之间的关系。
基本想法
• 主成分分析中,首先对给定数据进行规范化,使得数据每一变量的平均值为 0,方差为1。
• 之后对数据进行正交变换,原来由线性相关变量表示的数据,通过正交变换变成由若干个线性无关的新变量表示的数据。
• 新变量是可能的正交变换中变量的方差的和(信息保存)最大的,方差表示在新变量上信息的大小。
• 可以用主分成近似地表示原始数据,发现数据的基本结构。
• 也可以把数据由少数主成分表示,对数据降维。
• 数据集合中的样本由实数空间(正交坐标系)中的点表示,空间的一个坐标轴表示一个变量,规范化处理后得到的数据分布在原点附近。
• 对原坐标系中的数据进行主成分分析等价于进行坐标系旋转变换,将数据投影到新坐标系的坐标轴上。
• 新坐标系的第一坐标轴、第二坐标轴等分别表示第一主成分、第二主成分等。
• 数据在每一轴上的坐标值的平方表示相应变量的方差。
• 这个坐标系是在所有可能的新的坐标系中,坐标轴上的方差的和最大的。
主成分分析
• 在数据总体(population)上进行的主成分分析称为总体主成分分析。
• 在有限样本上进行的主成分分析称为样本主成分分析。
• 总体主成分分析是样本主成分分析的基础。
定义和导出
在主成分分析(PCA)中,以下哪项是正确的描述?
A. PCA是一种有监督学习方法,需要使用标签数据。
B. PCA通过正交变换将数据转换为线性无关的新变量表示。
C. PCA的主要目的是增加数据的维度以捕捉更多信息。
D. PCA要求所有主成分的方差相等。
主要性质
样本主成分分析
• 总体主成分分析,是定义在样本总体上的。
• 在实际问题中,需要在观测数据上进行主成分分析,这就是样本主成分分析。
• 样本主成分也和总体主成分具有相同的性质。
PCA算法优点
1.仅仅需要以方差衡量信息量,不受数据集以外的因素影响。
2.各主成分之间正交,可消除原始数据成分间的相互影响的因素。
3.计算方法简单,主要运算是特征值分解,易于实现。
4.它是无监督学习,完全无参数限制的。
PCA算法缺点
1.主成分各个特征维度的含义具有一定的模糊性,不如原始样本特征的解释性强。
2.方差小的非主成分也可能含有对样本差异的重要信息,因降维丢弃可能对后续数据处理有影响。
关于主成分分析(PCA)的优缺点,以下哪项描述是正确的? B
A. PCA能够完全保留原始数据中的所有信息。
B. PCA通过方差衡量信息量,不受数据集以外的因素影响。
C. PCA的主要缺点是计算过程过于复杂,难以实现。
D. PCA的缺点之一是各主成分之间可能存在相关性。