PCA & LDA

预备知识

在统计学中,方差是用来度量单个随机变量的离散程度,而协方差则一般用来衡量两个随机变量的联合变化程度。

方差

σ x 2 = 1 n − 1 ∑ i = 1 n ( x i − x ˉ ) 2 \sigma_{x}^{2}=\frac{1}{n-1} \sum_{i=1}^{n}\left(x_{i}-\bar{x}\right)^{2} σx2=n11i=1n(xixˉ)2
n n n 表示样本数量, x ˉ \bar{x} xˉ 表示观测样本的均值。

协方差

σ ( x , y ) = 1 n − 1 ∑ i = 1 n ( x i − x ˉ ) ( y i − y ˉ ) \sigma(x, y) = \frac{1}{n-1} \sum_{i=1}^n (x_i - \bar{x})(y_i - \bar{y}) σ(x,y)=n11i=1n(xixˉ)(yiyˉ)
x ˉ , y ˉ \bar{x}, \bar{y} xˉ,yˉ 分别表示两个随机变量所对应的观测样本均值。方差 σ x 2 \sigma_x^2 σx2 可看作随机变量 x x x 关于自身的协方差 σ ( x , x ) \sigma(x, x) σ(x,x)

协方差矩阵

给定 d d d 个随机变量 x k x_k xk k = 1 , 2 , … , d k=1, 2, \dots, d k=1,2,,d 。我们用 x k i x_{ki} xki 表示随机变量 x k x_k xk 中的第 i i i 个观测样本,每个随机变量所对应的观测样本数量均为 n n n

对于这些随机变量,我们可以根据协方差的定义,求出两两之间的协方差,即:
σ ( x a , x b ) = 1 n − 1 ∑ i = 1 n ( x a i − x ˉ a ) ( x b i − x ˉ b ) \sigma\left(x_{a}, x_{b}\right)=\frac{1}{n-1} \sum_{i=1}^{n}\left(x_{a i}-\bar{x}_{a}\right)\left(x_{b i}-\bar{x}_{b}\right) σ(xa,xb)=n11i=1n(xaixˉa)(xbixˉb)

因此协方差矩阵为:
Σ = [ σ ( x 1 , x 1 ) ⋯ σ ( x 1 , x d ) ⋮ ⋱ ⋮ σ ( x d , x 1 ) ⋯ σ ( x d , x d ) ] ∈ R d × d \Sigma=\left[\begin{array}{ccc} \sigma\left(x_{1}, x_{1}\right) & \cdots & \sigma\left(x_{1}, x_{d}\right) \\ \vdots & \ddots & \vdots \\ \sigma\left(x_{d}, x_{1}\right) & \cdots & \sigma\left(x_{d}, x_{d}\right) \end{array}\right] \in \mathbb{R}^{d \times d} Σ=σ(x1,x1)σ(xd,x1)σ(x1,xd)σ(xd,xd)Rd×d

其中,对角线上的元素为各个随机变量的方差,非对角线上的元素为两两随机变量之间的协方差。

PCA

PCA(主成分分析)是比较常见的线性降维方法,通过线性投影将高维数据映射到低维数据中,所期望的是在投影的维度上,新特征自身的方差尽量大,方差越大特征越有效,尽量使产生的新特征间的相关性越小。

算法流程

假设有 m m m 条数据,每条数据有 n n n 个特征。 x j i x_j^i xji 表示第 i i i 个样本的第 j j j 个特征。

  1. 均值归一化:
    μ j = 1 m ∑ i = 1 m x j i x j i : = x j i − μ j s j \begin{aligned} \mu_{j} &=\frac{1}{m} \sum_{i=1}^{m} x_{j}^{i} \\ x_{j}^{i} &:= \frac{x_{j}^{i}-\mu_{j}}{s_{j}} \end{aligned} μjxji=m1i=1mxji:=sjxjiμj
    其中 s j = m a x ( x j ) − m i n ( x j ) s_j = max(x_j) - min(x_j) sj=max(xj)min(xj)

  2. 计算协方差矩阵:
    Σ = 1 m X X T ∈ R n × n \Sigma = \frac{1}{m} X X^T \in \mathbb{R}^{n \times n} Σ=m1XXTRn×n

  3. 计算特征向量:
    [ U , S , V ] = s v d ( Σ ) [U, S, V] = svd(\Sigma) [U,S,V]=svd(Σ)
    其中左奇异向量、奇异值矩阵、右奇异向量: U ∈ R n × n , S ∈ R n × m , V ∈ R m × m U \in \mathbb{R}^{n \times n}, S \in \mathbb{R}^{n \times m}, V \in \mathbb{R}^{m \times m} URn×n,SRn×m,VRm×m

  4. U U U 中取前 k k k 列: U r e d u c e ∈ R n × k U_{reduce} \in \mathbb{R}^{n \times k} UreduceRn×k

  5. 计算得到降维后的数据: Z = U r e d u c e T ∗ X , Z ∈ R k × m Z = U_{reduce}^T * X, Z \in \mathbb{R}^{k \times m} Z=UreduceTX,ZRk×m

如何选择 k k k

∑ i = 1 k s i i ∑ i = 1 n s i i ⩾ 0.99 \frac{\sum_{i=1}^{k} s_{i i}}{\sum_{i=1}^{n} s_{i i}} \geqslant 0.99 i=1nsiii=1ksii0.99
选择满足上述条件的最小 k k k

降维的应用

  • 数据压缩,减少占用的存储空间
  • 加快算法计算速度
  • 低维平面可以可视化数据

PCA为什么要用协方差矩阵的特征向量矩阵来做投影矩阵呢?

降维的目的就是“降噪”和“去冗余”。

“降噪”的目的就是使保留下来的维度间的相关性尽可能小,而“去冗余”的目的就是使保留下来的维度含有的“能量”即方差尽可能大。

我们要最大化方差来保留更多的信息。去噪。
有趣的是,协方差矩阵能同时表现不同维度间的相关性以及各个维度上的方差。

协方差矩阵度量的是维度与维度之间的关系,而非样本与样本之间。协方差矩阵的主对角线上的元素是各个维度上的方差(即能量),其他元素是两两维度间的协方差(即相关性)。

先看“降噪”,让保留下的不同维度间的相关性尽可能小,也就是说让协方差矩阵中非对角线元素都基本为零。达到这个目的的方式——矩阵对角化。

再看“去冗余”,对角化后的协方差矩阵,对角线上较小的新方差对应的就是那些该去掉的维度。我们只取那些含有较大能量(特征值)的维度,其余的就舍掉即可。

LDA

LDA(线性判别分析)是一种经典的降维方法。和PCA不考虑样本类别输出的无监督降维技术不同,LDA是一种监督学习的降维技术,数据集的每个样本有类别输出。

LDA分类思想简单总结如下:

  • 多维空间中,数据处理分类问题较为复杂,LDA算法将多维空间中的数据投影到一条直线上,将d维数据转化成1维数据进行处理。
  • 对于训练数据,设法将多维数据投影到一条直线上,同类数据的投影点尽可能接近,异类数据点尽可能远离。
  • 对数据进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定样本的类别。

如果用一句话概括LDA思想:投影后类内方差最小,类间方差最大。

LDA和PCA异同

异同点LDAPCA
相同点1. 两者均可以对数据进行降维;
2. 两者在降维时均使用了矩阵特征分解的思想;
3. 两者都假设数据符合高斯分布;
不同点有监督无监督
降维最多降到 k − 1 k-1 k1降维多少没有限制
可以用于降维,还可以用于分类只用于降维
选择分类性能最好的投影方向选择样本点投影具有最大方差的方向
更明确,更能反映样本间差异目的较为模糊

参考自

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值