• Principle Component Analysis (PCA)


    PCA (Principle Component Analysis)

    此处感谢 shuhuai008 大佬!

    主成分分析主要用于降维

    给出一个数据集 (D={(X_i,Y_i)}_{i=1}^{N}),其中(X_iin mathbb{R}^p),由于是对特征进行降维,所以 PCA 中不需要用到 (Y_i)

    PCA 就是就是一句话:一个中心,两个基本点!

    [egin{aligned} 一个中心:原始特征空间的重构。 end{aligned} ]

    [两个基本点 egin{cases} 最大投影方差\ 最小重构距 end{cases} ]

    原始特征空间重构后各特征之间相互独立


    最大投影方差

    故名意思,最大投影方差就是想让特征向量 (X_i) 投影到向量 (W) 后各个投影点分得越开越好。我们可以提出一个策略,那就是规定一个基准点(其实就是 (overline{X}) 投影在向量 (W) 上的点 ),让投影后的点到这个基准点的距离之和越大。

    向量 (X_i) 到向量 (W) 的投影为 (W^TX_i),为了后续计算方便,我们需要对特征向量进行中心化,即对所有的 (X_i) 都减去一个 (overline {X}),这样我们可以得到中心化后的向量 (X_i-overline{X})(W) 的投影:(L_i = W^T(X_i-overline{X})),由于 (L_i) 可正可负,因此我们对 (L_i) 进行平方运算。最后求 (hat{W}=argmaxunderset{w}{}sum_{i=1}^{N}L_i(W)) 就可以得到我们的期望向量 (W) 了!

    数学推导如下:

    (overline{X}=frac{1}{N}sum_{i=1}^{N}X_i)

    (overline{X}) 带入得:

    [egin{aligned} S &= frac{1}{N}sum_{i=1}^{N}(W^T(X_i-overline{X}))^2 \ &= frac{1}{N}sum_{i=1}^{N}W^T(X_i-overline{X})(X_i-overline{X})^TW\ &= W^Tfrac{1}{N}sum_{i=1}^{N}(X_i-overline{X})(X_i-overline{X})^TW\ end{aligned} ]

    (Sigma = frac{1}{N}sum_{i=1}^{N}(X_i-overline{X})(X_i-overline{X})^T) 带入得:

    [egin{aligned} S = W^TSigma W\ hat{W}=underset{w}{argmax}S end{aligned} ]

    如果向量 (W) 不加约束,向量 (W) 本身也会对 (S) 得值产生影响,所以加一个约束: (W^TW=1),即 (W) 是单位向量。最后变成了一个求带约束得最优化问题:

    [egin{cases} hat{W}=underset{w}{argmax}S\ W^TW=1 end{cases} ]

    用拉格朗日乘数法:

    (L(W, lambda)=W^TSigma W+lambda(1-W^TW))

    (frac{partial{L}}{partial{W}}=2Sigma W-2lambda W=0RightarrowSigma W=lambda W)

    最后求解矩阵 (Sigma_{p imes p}) 的特征值特征向量即可:

    特征值:(lambda_1,lambda_2,...,lambda_p)

    特征值对应的特征向量:(mathbb{alpha_1},mathbb{alpha_1},...,mathbb{alpha_p})

    将特征值从大到小进行排序,最大的那个特征值 (lambda_i) 所对应的特征向量 (mathbb{alpha_i}) 就是我们要求的投影向量 (W),此时投影方差是多少呢?其实就是 (lambda_i) :

    (ecauseSigma W=lambda WRightarrow W^{T}Sigma W=lambda W^TW=lambda)

    ( herefore S=W^TSigma W=lambda)

    最小重构距离

    设特征空间重构后的一组基为 (alpha_1,alpha_2,...,alpha_p),特征向量投影到对应的基上得到的方差分别为 (lambda_1>lambda_2>...>lambda_p) (其中(alpha_i 与 lambda_i) 一一对应)

    因此我们能用得到的这组基来重新构造特征向量 (X_i):

    (X_i = sum_{k=1}^{p}(alpha_k^T(X_i-overline{X}))alpha_k)

    (hat{X_i}=sum_{k=1}^{q}(alpha_k^T(X_i-overline{X}))alpha_k)

    其中 (X_i) 是原始特征向量, (hat{X_i}) 是降到 q 维的特征向量。所以 (X_i)(hat{X_i}) 之间存在这一定的距离,我们的目标就是最小化这个距离,也就是最小化重构代价。

    数学推导如下:

    [egin{aligned} J&=frac{1}{N}sum_{i=1}^{N}lVert X_i-hat{X_i} Vert^2\ &=frac{1}{N}sum_{i=1}^{N}sum_{k=q+1}^{p}(alpha_k^T(X_i-overline{X}))^2\ &=frac{1}{N}sum_{i=1}^{N}sum_{k=q+1}^{p}alpha_k^T(X_i-overline{X})(X_i-overline{X})^Talpha_k\ &=sum_{k=q+1}^{p}alpha_k^Tfrac{1}{N}sum_{i=1}^{N}(X_i-overline{X})(X_i-overline{X})^Talpha_k\ &=sum_{k=q+1}^{p}alpha_k^TSigmaalpha_k end{aligned} ]

    其中 (alpha_k^Talpha_k=1)

    接下来就是求带约束的最优化问题了:

    [egin{cases} hat{alpha_k}=underset{alpha_k}{argmax}sum_{k=q+1}^{p}alpha_k^TSigmaalpha_k\ alpha_k^Talpha_k=1 end{cases} ]

    因为 (alpha_i) 之间相互独立,所以可以每次求一个 (alpha_i) ,最后得到所有的 (alpha)

    具体可通过拉格朗日乘数法求解:

    (L(alpha_i,lambda)=alpha_i^TSigmaalpha_i+lambda(1-alpha_i^Talpha_i))

    最后你会发现,不管是通过最大化投影方差还是通过最小化重构距离,得出的解都是一样的,这说明这里个基本点仅仅是观察的角度不同,殊途同归是也~~~

  • 相关阅读:
    pro asp.net mvc5 7
    pro asp.net mvc5
    第九章 观察者模式 OBSERVER
    第八章 单件模式 singleton
    第二部分 职责型模式responsibility
    设计模式5 合成模式 COMPOSITE
    linux中xargs用法
    linux中du的用法
    linux中find的用法
    linux中grep注意
  • 原文地址:https://www.cnblogs.com/Codroc/p/13542891.html
Copyright © 2020-2023  润新知