数据降维方法(主成分分析PCA、线性判别分析LDA)
数据降维
- 1、特征变换
- 1.1、特征提取
- 2、维数缩减
- 2.1、维度灾难
- 2.2、维度缩减
- 2.3、线性降维法
- 2.3.1、主成分分析(PCA)
- 2.3.1.1、数学分析
- 2.3.1.2、算法步骤
- 2.3.1.3、可区分性
- 2.3.1.4、可重构性
- 2.3.1.5、维数选择
- 2.3.2、线性判别分析(LDA)
- 2.3.2.1、数学推导
1、特征变换
1.1、特征提取
特征提取的形式是用向量来表示数据样本(语音、文本、图片等)
2、维数缩减
2.1、维度灾难
由Richard E. Bellman提出,当维度增加时会遇到如下问题:
1、计算量呈指数增长
2、低维距离相近的相似样本在高维距离会增加
3、数据变得稀疏(数据空间体积急剧增大)
2.2、维度缩减
降维是解决维度灾难的重要手段,在很多情况下,数据样本是高维,但与学习任务相关的特征在低维分布(即高维空间的低维分布embeding)
2.3、线性降维法
y = W T x \rm y=W^Tx y=WTx
可以将样本x(d维空间)变换为样本y(m维空间),其中新空间的特征是原空间特征的线性组合,可以通过矩阵乘法看出。
2.3.1、主成分分析(PCA)
主成分分析的主要思想是将原始数据保留在少数方差最大的方向上的投影。主成分指方差较大的方向,如第一主成分、第二主成分等。
2.3.1.1、数学分析
假设 x 1 , x 2 , . . . , x n \rm x_1,x_2,...,x_n x1,x2,...,xn是d维空间的n个样本, w 1 , w 2 , . . . , w m \rm w_1,w_2,...,w_m w1,w2,...,wm是d维空间的前m个主成分,其中有
w i T w j = 0 , ∀ i ≠ j ; w i T w i = 1 \rm w_i^Tw_j=0,\forall i\ne j;\quad w_i^Tw_i = 1 wiTwj=0,∀i=j;wiTwi=1
即是一组单位正交基,以主成分 w 1 \rm w_1 w1为例, x 1 \rm x_1 x1的投影为 y i = w 1 T x i \rm y_i=w_1^Tx_i yi=w1Txi;
y ‾ = w 1 T x ‾ , w h e r e x ‾ = 1 n ∑ i = 1 n x i v a r = 1 n ∑ i = 1 n ( w 1 T x i − w 1 T x ‾ ) 2 \begin{aligned} \rm{\overline{y}=w_1^T\overline{x},\quad}where\;\overline{x}=\frac{1}{n}\sum_{i=1}^{n}x_i\\ var \rm =\frac{1}{n}\sum_{i=1}^{n}(w_1^Tx_i-w_1^T\overline{x})^2 \end{aligned} y=w1Tx,wherex=n1i=1∑nxivar=n1i=1∑n(w1Txi−w1Tx)2
我们希望 w 1 \rm w_1 w1方向上有最大的方差,即:
m a x 1 n ∑ i = 1 n ( w 1 T x i − w 1 T x ‾ ) 2 s . t . w i T w i = 1 \begin{aligned} & max\rm \quad \frac{1}{n}\sum_{i=1}^{n}(w_1^Tx_i-w_1^T\overline{x})^2\\ &s.t.\qquad \rm w_i^Tw_i = 1 \end{aligned} maxn1i=1∑n(w1Txi−w1Tx)2s.t.wiTwi=1
对方差展开推导:
v a r = 1 n ∑ i = 1 n ( w 1 T x i − w 1 T x ‾ ) 2 = 1 n ∑ i = 1 n ( w 1 T x i − w 1 T x ‾ ) ( w 1 T x i − w 1 T x ‾ ) T = 1 n ∑ i = 1 n w 1 T ( x i − x ‾ ) ( x i − x ‾ ) T w 1 = w 1 T ( 1 n ∑ i = 1 n ( x i − x ‾ ) ( x i − x ‾ ) T ) w 1 = w 1 T C w 1 \begin{aligned} var &= \rm \frac{1}{n}\sum_{i=1}^{n}(w_1^Tx_i-w_1^T\overline{x})^2\\ &= \rm \frac{1}{n}\sum_{i=1}^{n}(w_1^Tx_i-w_1^T\overline{x})(w_1^Tx_i-w_1^T\overline{x})^T\\ &= \rm \frac{1}{n}\sum_{i=1}^{n}w_1^T(x_i-\overline{x})(x_i-\overline{x})^Tw_1\\ &= \rm w_1^T\left (\frac{1}{n}\sum_{i=1}^{n}(x_i-\overline{x})(x_i-\overline{x})^T\right )w_1\\ &= \rm w_1^TCw_1 \end{aligned} var=n1i=1∑n(w1Txi−w1Tx)2=n1i=1∑n(w1Txi−w1Tx)(w1Txi−w1Tx)T=n1i=1∑nw1T(xi−x)(xi−x)Tw1=w1T(n1i=1∑n(xi−x)(xi−x)T)w1=w1TCw1
这里的C为协方差矩阵,用拉格朗日乘子法进行优化求最大值:
o b j = w 1 T C w 1 + λ ( 1 − w 1 T w 1 ) ∂ o b j ∂ w 1 = 2 C − 2 λ w 1 \begin{aligned} obj &=\rm w_1^TCw_1+\lambda(1-w_1^Tw_1)\\ \frac{\partial obj}{\partial \rm w_1} &=\rm 2C-2\lambda w_1 \end{aligned} obj∂w1∂obj=w1TCw1+λ(1−w1Tw1)=2C−2λw1
令 C w 1 = λ w 1 \rm Cw_1=\lambda w_1 Cw1=λw1,可以看出, w 1 \rm w_1 w1是协方差矩阵 C C C的特征向量(eigenvector), λ \lambda λ是对应的特征值(eigenvalue),将其替换得:
w 1 T C w 1 = w 1 T λ w 1 = λ w 1 T w 1 = λ \begin{aligned} \rm w_1^TCw_1=w_1^T\lambda w_1=\lambda w_1^Tw_1=\lambda \end{aligned} w1TCw1=w1Tλw1=λw1Tw1=λ
由此可以看出,使得 w 1 \rm w_1 w1方差最大,需对应协方差矩阵最大的特征值 λ \lambda λ,而 λ \lambda λ对应的特征值即为 w 1 \rm w_1 w1,也就是第一主成分。
2.3.1.2、算法步骤
因此主成分分析的主要步骤可以总结如下:
- 计算数据均值: x ‾ = 1 n ∑ i = 1 n x i \rm \overline{x}=\frac{1}{n}\sum_{i=1}^{n}x_i x=n1∑i=1nxi
- 计算数据协方差矩阵: C = 1 n ∑ i = 1 n ( x i − x ‾ ) ( x i − x ‾ ) T \rm C=\frac{1}{n}\sum_{i=1}^{n}(x_i-\overline{x})(x_i-\overline{x})^T C=n1∑i=1n(xi−x)(xi−x)T
- 对协方差矩阵进行特征值分解,并取最大的m个特征值 ( λ 1 ≥ λ 2 ≥ . . . ≥ λ m ) (\lambda_1\ge \lambda_2\ge... \ge \lambda_m) (λ1≥λ2≥...≥λm),其对应的特征向量 ( w 1 , w 2 , . . . , w m ) \rm(w_1, w_2, ..., w_m) (w1,w2,...,wm),组成投影矩阵 W = [ w 1 , w 2 , . . . , w m ] ∈ R d × m \rm W=[w_1, w_2,..., w_m]\in \mathbb{R} ^{d\times m} W=[w1,w2,...,wm]∈Rd×m
- 将每一个数据样本进行投影: y i = w 1 T x i \rm y_i=w_1^Tx_i yi=w1Txi
换一种思考方式:如何仅用一个超平面从整体上对所有样本进行恰当表示?
2.3.1.3、可区分性
满足可去区分性的要求是所有样本点投影到该超平面上时方差应该最大。投影后的样本点为:
y i = W T x i \rm y_i=W^Tx_i yi=WTxi
数据点是零均值化的,即: y ‾ = ∑ i = 1 n y i = W T ∑ i = 1 n x i = 0 \rm \overline{y}=\sum_{i=1}^{n}y_i=W^T\sum_{i=1}^{n}x_i=0 y=∑i=1nyi=WT∑i=1nxi=0
投影之后的协方差矩阵为:
v a r = 1 n ∑ i = 1 n ( y i − y ‾ ) ( y i − y ‾ ) T = 1 n ∑ i = 1 n ( W T x i − 0 ) ( W T x i − 0 ) T = 1 n ∑ i = 1 n W T x i x i W T = 1 n W T X X W T \begin{aligned} var&= \rm \frac{1}{n}\sum_{i=1}^{n}(y_i-\overline{y})(y_i-\overline{y})^T\\ &= \rm \frac{1}{n}\sum_{i=1}^{n}(W^Tx_i-0)(W^Tx_i-0)^T\\ &= \rm \frac{1}{n}\sum_{i=1}^{n}W^Tx_ix_iW^T\\ &= \rm \frac{1}{n}W^TXXW^T \end{aligned} var=n1i=1∑n(yi−y)(yi−y)T=n1i=1∑n(WTxi−0)(WTxi−0)T=n1i=1∑nWTxixiWT=n1WTXXWT
我们要使得投影样本每一维的方差最大,即相当于最大所有维度方差之和最大(有上面分析可以看出,其等价于所有特征值之和最大),矩阵的迹等于特征值之和,则目标方程与约束方程可以为:
m a x t r ( 1 n W T X X W T ) s . t . W T W = I \begin{aligned} &max\quad tr(\rm \frac{1}{n}W^TXXW^T)\\ & s.t.\quad W^TW=I \end{aligned} maxtr(n1WTXXWT)s.t.WTW=I
同样根据拉格朗日乘子法,可以得到:
X X T W = λ W XX^TW=\lambda W XXTW=λW
由此,同样可以得出,我们只需要对协方差矩阵 X X T XX^T XXT进行特征值分解,得到最大的前m个特征值并进行排序使得 λ 1 ≥ λ 2 ≥ . . . ≥ λ m \lambda_1\ge \lambda_2\ge... \ge \lambda_m λ1≥λ2≥...≥λm, λ 1 \lambda_1 λ1对应的特征向量即为第一主成分,其他依次类推……
2.3.1.4、可重构性
其基本思想是每个样本到超平面的距离都足够近。
假设投影变换都是正交变换,建立新坐标系 W = [ w 1 , w 2 , . . . , w m ] ( m < d ) \rm W=[w_1, w_2,..., w_m]\;(m<d) W=[w1,w2,...,wm](m<d),且有:
w i T w j = 0 , ∀ i ≠ j ; w i T w i = 1 \rm w_i^Tw_j=0,\forall i\ne j;\quad w_i^Tw_i = 1 wiTwj=0,∀i=j;wiTwi=1
样本点投影后在新坐标系下的坐标为 y i = [ y i 1 , y i 2 , . . . , y i m ] T \rm \mathbf{y}_i=[y_{i1}, y_{i2},..., y_{im}]^T yi=[yi1,yi2,...,yim]T,即正交坐标系下投影的新坐标为
y i j = w j T x i , w j ∈ R d , j = 1 , 2 , . . . , m \rm y_{ij}=\mathbf{w}_j^T\mathbf{x}_i,\qquad \mathbf{w}_j\in \mathbb{R} ^{d},\qquad j=1,2,...,m yij=wjTxi,wj∈Rd,j=1,2,...,m
新坐标系下的新表示 x ^ i \rm \hat x_i x^i为:
x ^ i = ∑ j = 1 m y i j w j \rm \mathbf{\hat x}_i = \sum_{j=1}^{m}y_{ij}\mathbf{w}_j x^i=j=1∑myijwj
重构误差:
∑ i = 1 n ∥ x i − x ^ i ∥ 2 2 = ∑ i = 1 n ∥ x i − ∑ j = 1 m y i j w j ∥ 2 2 = ∑ i = 1 n ∥ x i − W y i ∥ 2 2 = ∑ i = 1 n ( ( W y i ) T W y i − 2 x i T W y i + x i T x i ) = ∑ i = 1 n ( y i T y i − 2 y i T y i + x i T x i ) = − ∑ i = 1 n y i T y i + ∑ i = 1 n x i T x i = − ∑ i = 1 n y i T y i + c o n s t = − ∑ i = 1 n ( W T x i ) T ( W T x i ) + c o n s t = − W T X X W T + c o n s t \begin{aligned} \rm \sum_{i=1}^{n}\left \| x_i-\hat x_i\right \|_2^2&=\rm \sum_{i=1}^{n}\left \| x_i-\sum_{j=1}^{m}y_{ij}\mathbf{w}_j\right \|_2^2=\rm \sum_{i=1}^{n}\left \| x_i-Wy_i\right \|_2^2\\ &=\rm \sum_{i=1}^{n}\left ((Wy_i)^TWy_i-2x_i^TWy_i+x_i^Tx_i \right )\\ &=\rm \sum_{i=1}^{n}\left (y_i^Ty_i-2y_i^Ty_i+x_i^Tx_i \right )\\ &=\rm -\sum_{i=1}^{n}y_i^Ty_i+\sum_{i=1}^{n}x_i^Tx_i\\ &=\rm -\sum_{i=1}^{n}y_i^Ty_i+const\\ &=\rm -\sum_{i=1}^{n}(W^Tx_i)^T(W^Tx_i)+const\\ &=\rm -W^TXXW^T+const \end{aligned} i=1∑n∥xi−x^i∥22=i=1∑n
最小化重构误差,即相当于最大化 W T X X W T W^TXXW^T WTXXWT,得到的模型与可区分性的模型相同。
2.3.1.5、维数选择
一个降低维度的选择标准:
∑ i = 1 m λ i ∑ i = 1 d λ i ≥ t \rm \frac{\sum_{i=1}^m\lambda_i}{\sum_{i=1}^d\lambda_i}\ge t ∑i=1dλi∑i=1mλi≥t
例如t可以取95%。
需要舍弃的维度为m-d维,舍弃这些维度之后样本的密度将增大,另外最小特征值所对应的特征向量往往与噪声相关,因此PCA一定程度上可以达到降噪的效果。
2.3.2、线性判别分析(LDA)
LAD即线性判别分析(Linear Discriminant Analysis),其主要思想是寻找一组投影方向,使得样本在投影之后类内样本尽可能靠近,类间样本尽可能远离,从而提升分类能力。投影方向数小于原始数据的维度,故也是一种线性降维的方法。
2.3.2.1、数学推导
设有样本集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x n , y n ) } , y i ∈ { 0 , 1 } \rm D=\{(x_1,y_1),(x_2,y_2),...,(x_n,y_n)\},\quad y_i\in \{0,1\} D={(x1,y1),(x2,y2),...,(xn,yn)},yi∈{0,1};记 μ i , Σ i \rm \mu_i, \Sigma_i μi,Σi 为样本均值和协方差矩阵,其中 i ∈ { 0 , 1 } \rm i\in\{0,1\} i∈{0,1},投影后两类样本的中心和协方差分别为 w T μ 0 、 w T μ 1 、 w T Σ 0 w 、 w T Σ 1 w \rm w^T\mu_0、w^T\mu_1、w^T\Sigma_0w、w^T\Sigma_1w wTμ0、wTμ1、wTΣ0w、wTΣ1w,要使得:同类样本协方差最小,即需要最小化:
w T Σ 0 w + w T Σ 1 w \rm w^T\Sigma_0w+w^T\Sigma_1w wTΣ0w+wTΣ1w
要使得类中心距离最大,即需要最大化:
∥ w T μ 0 − w T μ 1 ∥ 2 2 \rm \left \| w^T\mu_0-w^T\mu_1 \right \|_2^2
综合二者,可得最大化目标函数为:
J = ∥ w T μ 0 − w T μ 1 ∥ 2 2 w T Σ 0 w + w T Σ 1 w = w T ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T w w T ( Σ 0 + Σ 1 ) w = w T S b w w T S w w \begin{aligned} J &=\rm \frac{\left \| w^T\mu_0-w^T\mu_1 \right \|_2^2}{w^T\Sigma_0w+w^T\Sigma_1w}\\ &=\rm \frac{w^T(\mu_0-\mu_1)(\mu_0-\mu_1)^Tw}{w^T(\Sigma_0+\Sigma_1)w}\\ &=\rm \frac{w^TS_bw}{w^TS_ww} \end{aligned} J=wTΣ0w+wTΣ1wwTμ0−wTμ122=wT(Σ0+Σ1)wwT(μ0−μ1)(μ0−μ1)Tw=wTSwwwTSbw
即为广义Rayleigh熵,其中类内散度矩阵 S w S_w Sw为:
S w = Σ 0 + Σ 1 \begin{aligned} \rm S_w=\Sigma_0+\Sigma_1 \end{aligned} Sw=Σ0+Σ1
类间散度矩阵 S b S_b Sb为:
S b = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T \begin{aligned} \rm S_b=(\mu_0-\mu_1)(\mu_0-\mu_1)^T \end{aligned} Sb=(μ0−μ1)(μ0−μ1)T约束 w T S w w = 1 \rm w^TS_ww=1 wTSww=1,根据拉格朗日乘子法可以得到:
S b w = λ S w w ⇒ S w − 1 S b w = λ w \rm S_bw=\lambda S_ww\Rightarrow S_w^{-1}S_bw=\lambda w Sbw=λSww⇒Sw−1Sbw=λw
数据降维方法(主成分分析PCA、线性判别分析LDA)相关推荐
- 在线作图丨数据降维方法①——主成分分析PCA
PCA是什么? 主成分分析算法(PCA)是最常用的线性降维方法,它的目标是通过某种线性投影,将高维的数据映射到低维的空间中,并期望在所投影的维度上数据的信息量最大(方差最大),以此使用较少的数据维度, ...
- pca 累积方差贡献率公式_机器学习数据降维方法:PCA主成分分析
PCA在机器学习中很常用,是一种无参数的数据降维方法.PCA步骤: 将原始数据按列组成n行m列矩阵X 将X的每一行(代表一个属性字段)进行零均值化,即减去这一行的均值 求出协方差矩阵 求出协方差矩阵的 ...
- 在线作图丨数据降维方法③——正交偏最小二乘方判别分析(OPLS-DA)
Question1:什么是PLS-DA? 与PCA不同,PLS是"有监督"模式的偏最小二乘法分析,也就是在分析数据时,已知样本的分组关系,这样可以更好的选择区分各组的特征变量,确 ...
- 07_数据降维,降维算法,主成分分析PCA,NMF,线性判别分析LDA
1.降维介绍 保证数据所具有的代表性特性或分布的情况下,将高维数据转化为低维数据. 聚类和分类都是无监督学习的典型任务,任务之间存在关联,比如某些高维数据的分类可以通过降维处理更好的获得. 降维过程可 ...
- lda 吗 样本中心化 需要_机器学习 —— 基础整理(四):特征提取之线性方法——主成分分析PCA、独立成分分析ICA、线性判别分析LDA...
本文简单整理了以下内容: (一)维数灾难 (二)特征提取--线性方法 1. 主成分分析PCA 2. 独立成分分析ICA 3. 线性判别分析LDA (一)维数灾难(Curse of dimensiona ...
- 降维方法之PCA,LDA
降维的目的 减少冗余信息造成的误差,提高数据信息的精度. PCA 主成分分析 Principal Component Analysis(PCA)主成分分析,是最常用的线性降维方法,无监督的,它通过某种 ...
- 数据分享|R语言逻辑回归、线性判别分析LDA、GAM、MARS、KNN、QDA、决策树、随机森林、SVM分类葡萄酒交叉验证ROC...
全文链接:http://tecdat.cn/?p=27384 在本文中,数据包含有关葡萄牙"Vinho Verde"葡萄酒的信息(点击文末"阅读原文"获取完整代 ...
- 主成分分析 PCA 线性判别分类LDA
降维就是一种对高维度特征数据预处理方法.降维是将高维度的数据保留下最重要的一些特征,去除噪声和不重要的特征,从而实现提升数据处理速度的目的 PCA(Principal Component Analys ...
- 机器学习-降维之主成分分析PCA算法原理及实战
主成分分析 前言 近年来,随着互联网和信息行业的发展,数据已经渗透到各行各业,成为重要的生产因素如数据记录和属性规模的急剧增长.社会已经进入大数据时代,数据越多越好似乎已经成为公理.然而,数据量并不是 ...
最新文章
- [AX2012]发送广播邮件
- 5个必须掌握的maven命令
- oracle sql 查询优化器,基于ORACLE成本优化器的SQL查询优化分析与应用
- crt中 新建的连接存储在哪_数字存储示波器的VPO技术
- c++ - 在终端中,cout不显示任何内容
- 3D 机器视觉 01 - 格雷码在3D视觉中的运用和码位选择原则
- 服务器上出现应用程序错误。此应用程序的当前自定义错误设置禁止远程查看应用程序错误的详细信息(出于安全原因)。...
- mongodb插入数据_MongoDB插入
- [BZOJ5006][LOJ#2290][THUWC2017]随机二分图(概率+状压DP)
- 硕士研究生培养方案及课程大纲
- 宋体小四在手机上是几号_word文档4号宋体 word宋体小四是几号字
- 使用 IQR、Z-score、LOF 和 DBSCAN 进行异常值检测
- 游戏服务器网络出现波动排查方法
- 知名的网址导航网站及好用的网址导航分享
- 化工设计常用的三维软件有哪些?SmartPlant 3D、PDMS、SolidWorks......
- NanoHttpd Demo是个好东西
- c语言水果程序,C语言写的简易水果管理系统
- k图着色 遗传算法的简单python伪代码
- Python GUI 编程tkinter--画五角星和简单的动画制作
- 平面直角坐标系中的旋转公式_初中数学常用公式(中考必会)
热门文章
- linux gcc 安装目录,Linux下安装GCC
- 安装vuecli时出现错误解决
- linux管理的救星,优秀SSH软件推荐:FinalShell SSH工具,服务器管理,远程桌面加速软件,支持Windows,Mac OS X,Linux
- html5绘制草,html5 canvas海底水草动画
- 一周AI要闻 | 微软成市值第一 亚马逊推首款云AI芯片 阿里组织架构升级
- flyway版本号_Flyway 管理数据库版本变更
- linux命令合并文本为一行,awk实际应用:文本合并
- HTTP cookie格式与约束
- 展锐平台 取消蓝牙配对码弹框
- Linux环境下C3P0 Failed to get local InetAddress for VMID 解决办法