大多数机器学习和数据挖掘技术对于高维数据可能不太有效。这是由于维度灾难(Curse of Dimensionality)导致的。
随着维度的增加,查询的准确性和效率会迅速下降。因此,在高维数据中,许多机器学习和数据挖掘技术可能无法处理。
然而,高维数据的内在维度可能很小。例如,在某种类型的疾病中负责的基因数量可能很少。因此,对于高维数据,需要使用专门针对高维数据的技术,如降维和特征选择,以提高机器学习和数据挖掘的效率和准确性。
在高维数据中,维度灾难(Curse of Dimensionality)会导致以下问题:
因此,对于高维数据,需要特别注意选择适当的特征和降维技术,以便提高数据的密度和距离的意义,同时减少维度灾难的影响。
降维(Dimensionality Reduction)是指将原始高维数据映射到低维空间的过程。
在不同的问题设置下,降维的标准可能会有所不同:
给定由 d d d 个变量组成的数据点集合,可以计算将数据映射到低维空间的线性变换(投影)。设 f ( x 1 , x 2 , … , x n ) f(x_1, x_2, \ldots, x_n) f(x1,x2,…,xn) 是在 R d R^d Rd 上的原始数据点, P P P 是一个 R d × m R^{d \times m} Rd×m 的矩阵,表示投影。则,变换后的数据点 y y y 由 y = P T f ( x 1 , x 2 , … , x n ) y = P^T f(x_1, x_2, \ldots, x_n) y=PTf(x1,x2,…,xn) 得到,其中 m ≪ d m \ll d m≪d。
因此,可以通过找到最优投影矩阵 P P P,在保留重要特征和最小化信息损失的同时降低数据维度,从而实现降维的目的。常用的降维技术包括主成分分析(PCA)和线性判别分析(LDA)等。
降维(Dimensionality Reduction)有以下应用:
因此,降维是在处理高维数据时非常重要的技术,可以帮助我们更好地理解和利用数据。
主成分分析(Principal Component Analysis,PCA)是一种常用的无监督学习算法,用于降低数据的维度并发现数据中的主要成分。
维度降低(Dimensionality reduction)是指通过减少数据的特征维度,将高维数据映射到低维空间中。维度降低的目的有以下几个方面:
主成分分析(PCA)是一种经典的降维技术。它通过线性变换将原始数据映射到一组新的正交特征上,这些特征被称为主成分。PCA的目标是找到能够最大化数据方差的投影方向,从而保留尽可能多的数据信息。通过PCA,可以对数据进行降维,将其表示为较少数量的主成分,其中每个主成分都是原始特征的线性组合。
非线性PCA使用核函数(Kernels)扩展了传统的PCA方法,使其能够处理非线性数据。通过应用核函数,可以将原始数据映射到高维特征空间,然后在该空间中进行线性PCA。这样可以处理非线性关系,发现更复杂的数据结构和模式。
在主成分分析中,主成分可以通过几何图像来理解。对于在 d d d 维空间中的 n n n 个数据点,主成分分析可以将数据投影到一维空间中。
具体地,可以选择一条直线,使得数据点在该直线上分布得很好。这条直线被称为主成分。主成分是在保留数据大部分信息的前提 下,将数据投影到一维空间中的最佳方式。
主成分的选择可以通过计算数据的协方差矩阵和对该矩阵进行特征值分解来实现。每个特征向量都代表了在数据中的一个主要方向,并且与该方向上的方差成比例。因此,可以选择特征值最大的几个特征向量来作为主成分,并将数据投影到这些方向上。
在主成分分析中,为了找到最佳的主成分,需要最小化数据点到该主成分投影的距离的平方和。这是因为,最小化这个距离的平方和可以最大化数据点在主成分上的投影的平方和。
具体地,可以将每个数据点表示为向量 x \mathbf{x} x,然后将其投影到主成分上得到向量 p \mathbf{p} p。这个投影可以通过将向量 x \mathbf{x} x 投影到主成分的单位向量 u \mathbf{u} u 上来实现,即 p = x ⋅ u u \mathbf{p} = \mathbf{x} \cdot \mathbf{u} \mathbf{u} p=x⋅uu。
然后,最小化每个数据点到主成分的距离的平方和,可以表示为以下式子:
∑ i = 1 n ∥ x i − p i ∥ 2 \sum_{i=1}^n \|\mathbf{x}_i - \mathbf{p}_i\|^2 i=1∑n∥xi−pi∥2
其中, ∥ ⋅ ∥ \|\cdot\| ∥⋅∥ 表示向量的范数。将向量 p i \mathbf{p}_i pi 替换为 x i ⋅ u u \mathbf{x}_i \cdot \mathbf{u} \mathbf{u} xi⋅uu,可以得到以下式子:
∑ i = 1 n ∥ x i − ( x i ⋅ u ) u ∥ 2 \sum_{i=1}^n \|\mathbf{x}_i - (\mathbf{x}_i \cdot \mathbf{u}) \mathbf{u}\|^2 i=1∑n∥xi−(xi⋅u)u∥2
为了最小化这个式子,需要最大化每个数据点在主成分上的投影的平方和。这是由于,根据勾股定理,数据点到主成分的距离的平方和等于每个数据点在主成分上的投影与该数据点之间的距离的平方和。因此,最小化数据点到主成分的距离的平方和等价于最大化每个数据点在主成分上的投影的平方和。
综上所述,为了找到最佳的主成分,需要最大化每个数据点在主成分上的投影的平方和,即最小化数据点到主成分的距离的平方和。
具体来说,第一个主成分是对原始数据的最小距离拟合,以得到一条直线,使得数据点在该直线上分布得很好。该直线是在保留了数据大部分信息的情况下,将数据投影到一维空间中的最佳方式。
第二个主成分是在与第一个主成分正交的平面上进行的最小距离拟合。该平面是由第一个主成分所定义的直线所张成的平面的垂直平面。通过这个过程,可以找到另一条直线,使得数据点在该直线上分布得很好,并且与第一个主成分正交。
在主成分分析中,主成分可以通过代数推导来获得。设有一个 d d d 维的数据集,其中包含 n n n 个数据点,可以将其表示为一个 d × n d \times n d×n 的矩阵 X X X。我们的目标是找到一个 d d d 维的向量 u \mathbf{u} u,使得将数据投影到该向量上时,投影数据的方差最大。
具体来说,我们首先将数据投影到一个 d d d 维的向量 u \mathbf{u} u 上,得到一个一维的数据集 Y = u ⊤ X Y=\mathbf{u}^\top X Y=u⊤X。
然后,我们要找到一个 u 1 u_1 u1最大化这个数据集的方差,即:
我们可以使用拉格朗日乘数法来求解主成分。具体来说,我们要求解以下问题:
max u u ⊤ S u subject to u ⊤ u = 1 \max_{\mathbf{u}} \mathbf{u}^\top S \mathbf{u } \text{ subject to} \quad \mathbf{u}^\top \mathbf{u} = 1 umaxu⊤Su subject tou⊤u=1
其中, S S S 是数据的协方差矩阵。我们可以使用拉格朗日乘数法将约束条件加入目标函数中,得到:
L ( u , λ ) = u ⊤ S u − λ ( u ⊤ u − 1 ) L(\mathbf{u}, \lambda) = \mathbf{u}^\top S \mathbf{u} - \lambda(\mathbf{u}^\top \mathbf{u} - 1) L(u,λ)=u⊤Su−λ(u⊤u−1)
其中, λ \lambda λ 是拉格朗日乘数。对 u \mathbf{u} u 和 λ \lambda λ 分别求导并令其等于零,可以得到:
∂ L ∂ u = 2 S u − 2 λ u = 0 ∂ L ∂ λ = u ⊤ u − 1 = 0 \begin{aligned} \frac{\partial L}{\partial \mathbf{u}} &= 2S\mathbf{u} - 2\lambda \mathbf{u} = 0 \\ \\ \frac{\partial L}{\partial \lambda} &= \mathbf{u}^\top \mathbf{u} - 1 = 0 \end{aligned} ∂u∂L∂λ∂L=2Su−2λu=0=u⊤u−1=0
将第一个式子中的 u \mathbf{u} u 提出来,可以得到:
S u = λ u S\mathbf{u} = \lambda \mathbf{u} Su=λu
这个式子说明,投影向量 u \mathbf{u} u 是数据集的协方差矩阵 S S S 的特征向量,对应的特征值为 λ \lambda λ。因此,可以通过计算协方差矩阵 S S S 的特征向量和特征值,来确定投影向量 u \mathbf{u} u,以及数据在该投影向量上的投影。通过类似的方式,可以确定更多的主成分。每个主成分都是在前面主成分所定义的子空间上进行的最小距离拟合,并且与前面的主成分正交。
计算数据的协方差矩阵 S S S。
如果数据没有被中心化,则需要先将每个变量的均值减去每个观测值:,然后再计算 S S S。
通过解特征向量问题得到 S u = λ u S\mathbf{u}=\lambda\mathbf{u} Su=λu 的特征向量 u \mathbf{u} u,并按照对应的特征值 λ \lambda λ 从大到小排序,选取前 m m m 个特征向量。
形成投影矩阵 P P P。
将前 m m m 个特征向量按列组成矩阵 P P P,这个矩阵可以将数据投影到前 m m m 个主成分所张成的子空间中。
对一个新的测试点进行投影。
在这种情况下,P并不是满秩的,但我们仍然可以通过来恢复x,并且会丢失一些信息。
由协方差矩阵S的前m个特征向量组成的矩阵P解决了以下最小问题:
其中,P 是由协方差矩阵 S 的前 m 个特征向量组成的矩阵。
PCA投影使大小为m的所有线性投影中的重建误差最小化。
根据点积重写PCA
PCA(主成分分析)的评论:
• PCA是一种线性降维方法。
• PCA可以进行核化处理,从而可以处理非线性问题。
• 许多非线性降维方法(如Isomap、图拉普拉斯特征映射和局部线性嵌入/LLE)可以看作是使用特殊核的核PCA。
• PCA是一个非凸优化问题,但是相对容易求解。
• PCA是一种在统计学和机器学习中广泛应用的方法,它可以用于数据降维、特征提取、数据可视化等领域。PCA能够提取数据中最重要的特征,并将数据投影到低维空间中,以便更好地理解数据。