《推荐系统学习(二)》PCA降维方法的数学推导

前言

PCA降维方法将一组数据看成是一个随机变量生成的,通过将这个随机变量投影到待找的基向量上,这个投影后得到的一维随机向量方差最大。这个待找的基向量方向上,能够将投影后的数据最大程度区分开来。

推导

  • 输入:数据集 T = { x 1 , x 2 , . . . , x N } T=\{x_1, x_2, ..., x_N\} T={x1,x2,...,xN} x i ∈ R n x_i\in\mathbb{R}^n xiRn;目标维数 k k k
  • 输出:降维后的数据集 T = { x 1 , x 2 , . . . , x N } T=\{x_1, x_2, ..., x_N\} T={x1,x2,...,xN} x i ∈ R k x_i\in\mathbb{R}^k xiRk

注意,降维前后的点不变,但是表示点的形式可能会发生改变。

设数据集 T T T n n n 维随机向量 X = ( x 1 , x 2 , . . . , x n ) T \bold{X}=(\bold{x_1}, \bold{x_2}, ..., \bold{x_n})^T X=(x1,x2,...,xn)T 生成,其中, x i \bold{x_i} xi 为一维随机变量。

1. 寻找第一个基向量

设基向量为 α 1 ∈ R n \alpha_1\in\mathbb{R}^n α1Rn,默认为列向量,满足 α 1 T ⋅ α 1 = 1 \alpha_1^T\cdot \alpha_1=1 α1Tα1=1。此时,随机向量 X \bold{X} X 在基向量 α 1 \alpha_1 α1 上的投影为 α 1 T ⋅ X \alpha_1^T\cdot \bold{X} α1TX,是一个一维随机变量,它的方差为 c o v ( α 1 T ⋅ X , α 1 T ⋅ X ) = α 1 T ⋅ c o v ( X , X ) ⋅ α 1 cov(\alpha_1^T\cdot \bold{X}, \alpha_1^T\cdot \bold{X})=\alpha_1^T\cdot cov(\bold{X}, \bold{X})\cdot \alpha_1 cov(α1TX,α1TX)=α1Tcov(X,X)α1

我们的目标是方差最大。因此,我们有如下优化问题
max ⁡ α 1 α 1 T ⋅ c o v ( X , X ) ⋅ α 1 s . t . α 1 T ⋅ α 1 = 1 \begin{array}{lll} &\max\limits_{\alpha_1}&\alpha_1^T\cdot cov(\bold{X}, \bold{X})\cdot \alpha_1\\ &s.t.& \alpha_1^T\cdot \alpha_1=1 \end{array} α1maxs.t.α1Tcov(X,X)α1α1Tα1=1

利用拉格朗日方法,我们有拉格朗日函数
L ( α 1 , λ ) = α 1 T ⋅ c o v ( X , X ) ⋅ α 1 + λ ( 1 − α 1 T ⋅ α 1 ) L(\alpha_1, \lambda)=\alpha_1^T\cdot cov(\bold{X}, \bold{X})\cdot \alpha_1+\lambda(1-\alpha_1^T\cdot \alpha_1) L(α1,λ)=α1Tcov(X,X)α1+λ(1α1Tα1)

关于 α 1 \alpha_1 α1 求导,有
∂ L ( α 1 , λ ) ∂ α 1 = c o v ( X , X ) ⋅ α 1 − λ α 1 \frac{\partial L(\alpha_1, \lambda)}{\partial \alpha_1}=cov(\bold{X}, \bold{X})\cdot \alpha_1-\lambda\alpha_1 α1L(α1,λ)=cov(X,X)α1λα1

∂ L ( α 1 , λ ) ∂ α 1 = 0 \frac{\partial L(\alpha_1, \lambda)}{\partial \alpha_1}=0 α1L(α1,λ)=0,我们有
c o v ( X , X ) ⋅ α 1 = λ α 1 cov(\bold{X}, \bold{X})\cdot \alpha_1=\lambda\alpha_1 cov(X,X)α1=λα1

注意到, c o v ( X , X ) cov(\bold{X}, \bold{X}) cov(X,X) 是一个协方差矩阵, λ \lambda λ 是一个数值。因此,满足上述等式的 λ \lambda λ 实际上是协方差矩阵 c o v ( X , X ) cov(\bold{X}, \bold{X}) cov(X,X) 的一个特征值,我们要求的基向量 α 1 \alpha_1 α1 是对应的特征向量。

因此,我们的目标函数就变成
α 1 T ⋅ c o v ( X , X ) ⋅ α 1 = λ 1 α 1 T ⋅ α 1 = λ 1 \alpha_1^T\cdot cov(\bold{X}, \bold{X})\cdot \alpha_1=\lambda_1\alpha_1^T\cdot \alpha_1=\lambda_1 α1Tcov(X,X)α1=λ1α1Tα1=λ1

这就意味着我们要取特征值最大的特征向量作为我们的解。

2. 寻找第二个基向量

设第二个基向量 α 2 ∈ R n \alpha_2\in\mathbb{R}^n α2Rn,满足 α 2 T ⋅ α 2 = 1 \alpha_2^T\cdot \alpha_2=1 α2Tα2=1 α 2 T ⋅ α 1 = 0 \alpha_2^T\cdot \alpha_1=0 α2Tα1=0。第二个等式意味着基向量 α 1 \alpha_1 α1 α 2 \alpha_2 α2 正交。

这种要求是自然的,因为每一个基向量对应着一个新的特征,我们期望两个特征之间无关。

类似的,我们的目标是让 随机向量 X \bold{X} X 在基向量 α 2 \alpha_2 α2 上的投影 α 2 T ⋅ X \alpha_2^T\cdot \bold{X} α2TX 的方差最大,也就是
max ⁡ α 2 c o v ( α 2 T ⋅ X , α 2 T ⋅ X ) = α 2 T ⋅ c o v ( X , X ) ⋅ α 2 s . t . α 2 T ⋅ α 2 = 1 α 2 T ⋅ α 1 = 0 \begin{array}{lll} &\max\limits_{\alpha_2}&cov(\alpha_2^T\cdot \bold{X}, \alpha_2^T\cdot \bold{X})=\alpha_2^T\cdot cov(\bold{X}, \bold{X})\cdot \alpha_2\\ &s.t.& \alpha_2^T\cdot \alpha_2=1\\ && \alpha_2^T\cdot \alpha_1=0 \end{array} α2maxs.t.cov(α2TX,α2TX)=α2Tcov(X,X)α2α2Tα2=1α2Tα1=0

同样通过拉格朗日方法,我们有拉格朗日函数
L ( α 2 , λ , μ ) = α 2 T ⋅ c o v ( X , X ) ⋅ α 2 + λ ( 1 − α 2 T ⋅ α 2 ) + μ α 2 T ⋅ α 1 L(\alpha_2, \lambda, \mu)=\alpha_2^T\cdot cov(\bold{X}, \bold{X})\cdot \alpha_2+\lambda(1-\alpha_2^T\cdot \alpha_2)+\mu \alpha_2^T\cdot \alpha_1 L(α2,λ,μ)=α2Tcov(X,X)α2+λ(1α2Tα2)+μα2Tα1

L ( α 2 , λ , μ ) L(\alpha_2, \lambda, \mu) L(α2,λ,μ) 关于 α 2 \alpha_2 α2 求导,我们有
∂ L ( α 2 , λ , μ ) ∂ α 2 = c o v ( X , X ) ⋅ α 2 − λ α 2 + μ α 1 \frac{\partial L(\alpha_2, \lambda, \mu)}{\partial \alpha_2}=cov(\bold{X}, \bold{X})\cdot \alpha_2-\lambda\alpha_2+\mu\alpha_1 α2L(α2,λ,μ)=cov(X,X)α2λα2+μα1

∂ L ( α 2 , λ , μ ) ∂ α 2 = 0 \frac{\partial L(\alpha_2, \lambda, \mu)}{\partial \alpha_2}=0 α2L(α2,λ,μ)=0,我们有等式
c o v ( X , X ) ⋅ α 2 − λ α 2 + μ α 1 = 0 cov(\bold{X}, \bold{X})\cdot \alpha_2-\lambda\alpha_2+\mu\alpha_1=0 cov(X,X)α2λα2+μα1=0

对上式等号两边同时对 α 1 T \alpha_1^T α1T 做内积,等号右边为0,等号左边为
α 1 T ⋅ c o v ( X , X ) ⋅ α 2 − λ α 1 T ⋅ α 2 + μ α 1 T ⋅ α 1 = λ 1 α 1 T ⋅ α 2 − λ α 1 T ⋅ α 2 + μ α 1 T ⋅ α 1 = 0 − 0 + μ = μ \begin{array}{lll} &&\alpha_1^T\cdot cov(\bold{X}, \bold{X})\cdot \alpha_2-\lambda\alpha_1^T\cdot \alpha_2+\mu\alpha_1^T\cdot \alpha_1\\ &=&\lambda_1\alpha_1^T\cdot \alpha_2-\lambda\alpha_1^T\cdot \alpha_2+\mu\alpha_1^T\cdot \alpha_1\\ &=&0-0+\mu\\ &=&\mu \end{array} ===α1Tcov(X,X)α2λα1Tα2+μα1Tα1λ1α1Tα2λα1Tα2+μα1Tα100+μμ

因此,我们有 μ = 0 \mu=0 μ=0
代入等式 c o v ( X , X ) ⋅ α 2 − λ α 2 + μ α 1 = 0 cov(\bold{X}, \bold{X})\cdot \alpha_2-\lambda\alpha_2+\mu\alpha_1=0 cov(X,X)α2λα2+μα1=0,我们有
c o v ( X , X ) ⋅ α 2 = λ α 2 cov(\bold{X}, \bold{X})\cdot \alpha_2=\lambda\alpha_2 cov(X,X)α2=λα2

这里, λ \lambda λ α 2 \alpha_2 α2 分别为协方差矩阵 c o v ( X , X ) cov(\bold{X}, \bold{X}) cov(X,X) 的特征值与特征向量,记特征值为 λ 2 \lambda_2 λ2

类似的,我们同样可以证明 λ 2 \lambda_2 λ2 为第二大的特征值。

3. 寻找其余基向量

与寻找第二个基向量类似,我们可以得到协方差矩阵的特征值从大到小排列,其余基向量便是第三大到第 k k k大的特征值所对应的特征向量。

我们在实际计算的时候,可以用样本协方差矩阵代替协方差矩阵。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值