SciTech-Mathmatics-BigDataAIML: PCA(Principle Component Analysis)主成分分析 的 数学原理 + 应用示例

SciTech-Mathmatics-BigDataAIML:
PCA(Principle Component Analysis)主成分分析

参考链接

应用示例

例子背景

假设:有一个包含10个x(sample,样本)和4个f(feature, 特征)的dataset(数据集)。特征为:
$\large \bm{X_1}\text{, } \bm{X_2}\text{, } \bm{X_3}\text{, } \bm{X_4} $

\(\large Feature \rightarrow\)
\(\large Sample \downarrow\)
\(\large \bm{X_1}\) \(\large \bm{X_2}\) \(\large \bm{X_3}\) \(\large \bm{X_4}\)
1 2.5 2.4 3.5 4.2
2 0.5 0.7 1.2 1.5
3 2.2 2.9 3.1 3.8
4 1.9 2.2 2.9 3.2
5 3.1 3.0 3.8 4.0
6 2.3 2.7 3.3 3.9
7 2.0 1.6 2.7 3.0
8 1.0 1.1 1.5 1.8
9 1.5 1.6 2.2 2.5
10 1.1 0.9 1.4 1.7





\(\large \bm{\mu}\) 1.81 1.91 2.76 3.06
\(\large \bm{\sigma}\) 0.834 0.828 0.823 0.8574

数据标准化

对数据进行标准化处理。

  1. 计算每个f(feature, 特征)的: \(\large \bm{\mu}(均值) 和 \bm{\sigma}(标准差)\),
    \(\large \begin{array}{lll} \\ \bm{\mu}_{X_1} & =1.81,\ \bm{\sigma}_{X_1} &=0.834 \\ \bm{\mu}_{X_2} &=1.91,\ \bm{\sigma}_{X_2} &=0.828 \\ \bm{\mu}_{X_3} &=2.76,\ \bm{\sigma}_{X_3} &=0.823 \\ \bm{\mu}_{X_4} &=3.06,\ \bm{\sigma}_{X_4} &=0.8574 \\ \end{array}\)

  2. Normalization(标准化, 用公式 \(\large \bm{X^{'}} = \dfrac{ \bm{X} - \bm{\mu} }{ \bm{\sigma} }\)):
    标准化后的数据集,特征值都在0值附近;
    对Dataset做的第一次数据变换

    \(\large Normed. Fs. \rightarrow\)
    \(\large Sample \downarrow\)
    \(\large \bm{X^{'}_1}\) \(\large \bm{X^{'}_2}\) \(\large \bm{X^{'}_3}\) \(\large \bm{X^{'}_4}\)
    1 0.827 0.592 0.902 1.334
    2 -1.569 -1.455 -1.896 -1.821
    3 0.469 1.195 0.423 0.866
    4 0.107 0.351 0.157 0.163
    5 1.549 1.318 1.258 1.093
    6 0.588 0.967 0.671 0.976
    7 0.227 -0.340 -0.085 -0.070
    8 -0.969 -0.972 -1.524 -1.455
    9 -0.377 -0.340 -0.683 -0.655
    10 -0.847 -1.216 -1.626 -1.589





    \(\large \bm{\mu}\) 0 0 0 0
    \(\large \bm{\sigma}\) 1 1 1 1

  1. 计算 Covarianve Matrix(协方差矩阵), 也即: 任意两个f(feature,特征)的“线性相关性”:

    • Formula(公式, Normed(标准化) Fs.数据协方差矩阵) :
      \(\large \sum = \dfrac{1}{n-1} ({X^{'}}^{T}) X^{'}\)

    • 计算得到的\(\large Cov.\ Maxtrix\) 为:
      \(\large \begin{array}{lll} \\ CovM_{n \times n} = \dfrac{1}{n-1} ({X_{m \times n}^{'}}^{T}) X_{m \times n}^{'} \\ \begin{bmatrix} 1.000 & 0.978 & 0.923 & 0.899 \\ 0.978 & 1.000 & 0.934 & 0.900 \\ 0.923 & 0.934 & 1.000 & 0.943 \\ 0.899 & 0.900 & 0.943 & 1.000 \\ \end{bmatrix} \\ \end{array}\)

  2. \(\large Eigenvaue\ Decomposition\) of \(\large Cov.\ Maxtrix\) (分解 协方差分矩阵):
    通过\(\large Eigenvaue\ Decomposition\)的方式找到\(\large Cov.\ Maxtrix\) 投影后方差最大的方向,
    \(\large Eigenvector(特征向量)\)的方向, 而且投影在Eigenvector方向上的\(\large Eigenvaue\)即为其"变异程度".

    • \(\large Eigenvector(特征向量)\)

      • 定义: \(\large Eigenvector\) 是 协方差矩阵 的 特征值对应的方向。
        它表示数据在这个高维向量方向上的主要分布方向
      • 含义: \(\large Eigenvector\) 表示 数据某个高维向量方向上 的 分布特征
        通过这些\(\large Eigenvector\),我们可以确定数据主成分方向
    • \(\large Eigenvaue(特征值)\) 定义:
      (特征值)表示数据在 对应的 eigenvector(特征向量)方向 上的方差大小.
      "本示例"则是 Normed. Fs(标准化特征数据)\(\large Cov.\ Maxtrix\)某个向量方向上的 变异量.

      • \(\large Eigenvaue(特征值)\) 含义:
        Eigenvaue越大,表示数据对应特征向量方向上的方差(变异)越大,即该方向上包含的信息越多
        Eigenvaue用途:排序Principle Component(主成分)重要性(前述"最大方差理论").

    计算 eigenvalue(特征值) 和 eigenvector(特征向量)

    • \(\large Cov.\ Maxtrix\) 进行 eigenvalue decomposition(特征值分解),
      即: $\large CovM_{n \times n} \ V = \lambda V, $
      得到特征值和特征向量, 特征值 表示每个 特征向量(主成分)解释的数据变异量;
    • 计算结果(eigenvalueeigenvector)为:
      \(\large \begin{array}{llll} \\ \bm{\lambda_1}=3.706 , & \ \bm{\lambda_2}=0.264 , & \ \bm{\lambda_3}=0.028 , & \ \bm{\lambda_4}=0.002 \\ \bm{v_1} = \begin{bmatrix} 0.509 \\ 0.510 \\ 0.507 \\ 0.494 \\ \end{bmatrix}, & \ \bm{v_2} = \begin{bmatrix} 0.227 \\ 0.056 \\ -0.647 \\ 0.724 \\ \end{bmatrix} , & \ \bm{v_3} = \begin{bmatrix} 0.435 \\ 0.786 \\ -0.306 \\ -0.314 \\ \end{bmatrix} , & \ \bm{v_4} = \begin{bmatrix} 0.703 \\ 0.347 \\ 0.472 \\ -0.419 \\ \end{bmatrix} \\ \end{array}\)
  3. 选择PC(Principle Component, 主成分):

    • 目标: 总之“精简维度”:保障"信息保真度"为前提,降维;
      可选择前2,前3, 要少于"原始数据维度"。
    • 选择方法: 选择\(\large \bm{eigenvalue}(特征值)最大** 的 **前\)\large \bm{k}$个** $\large \bm{eigenvector}** 作为P.C.(主成分)
      本例, 因为eigenvalue 的 \(\large \bm{\lambda_1}\) \(\large \bm{\lambda_2}\)是最大的两个,
      所以, 我们选 \(\large \bm{v_1}\) \(\large \bm{v_2}\)作为PC(Principle Component,主成分)。
  4. 数据投影(投影就是做一个线性变换)
    将原始数据投影到选择的PC(主成分)上,得到降维后的数据。投影公式为:

    \[\large Y = X^{'} V, \ where\ V \text{ is a } Matrix \text{ composed by the }top\ k \ Principle\ Components \]

    特征值就由四个\(\large \bm{X_1}\text{, } \bm{X_2}\text{, } \bm{X_3}\text{, } \bm{X_4}\) 变成\(\large \bm{PC_1}\text{, } \bm{PC_2}\) 这两个(主成分特征维度).

    \(\large Transformed. PCs. \rightarrow\)
    \(\large Sample \downarrow\)
    \(\large PC_1\) \(\large PC_2\)
    1 1.713 0.762
    2 -3.479 0.930
    3 2.023 0.610
    4 0.456 0.178
    5 2.883 -0.243
    6 1.798 0.224
    7 0.334 -0.487
    8 -2.768 0.875
    9 -1.289 0.079
    10 -2.671 1.078


总结

  • 降维概念:降维旨在减少数据集的特征数量,同时有效保留原始数据重要信息
  • 常见方法:\(\large \bm{PCA}\)(主成分分析)、\(\large \bm{LDA}\)(线性判别分析)和\(\large \bm{SVD}\)(奇异值分解)等

为何降维

  1. 降维 的一个 重要目的 是为了 数据可视化
  2. 简化模型的复杂性, 减少拟合噪声的风险, 提高模型在 新数据泛化能力,有效地控制过拟合
  3. 特征数据本身就存在相关性和冗余

数学原理

\(\large Eigenvaue\)\(\large Eigenvector\)\(\large Mathmatical\ Definition\)
\(\large A\)\(\large 数域K\) 上的 \(\large n级矩阵\), 如果 \(\large K^n\)\(\large 非零列向量\alpha\) 使得:
$$ \large A \alpha = \lambda_0 \alpha,\ 且 \lambda_0 \in K,$$
则称:

  • $\large \lambda_0 $ 是 \(\large A\) 的一个 \(\large Eigenvaue(特征值)\),
  • \(\large \alpha\)\(\large A\)\(\large Eigenvaue\ \lambda_0\) 的一个\(\large Eigenvector(特征向量)\)

或换一种表达:

  • \(\large \alpha\)\(\large A\) 的一个 \(\large Eigenvector\)(特征向量, "特别"的"投射变换列向量")
  • $\large \lambda_0 $ 是 \(\large A\) 投射变换\(\large \alpha\)向量方向上的一个 \(\large Eigenvaue\)(特征值, scalar)

因为 矩阵 \(\large A_{m \times n}\)(设m<n),右乘(矩阵乘法) 一个\(\large \alpha_{n \times 1}\)("变换列向量"),

  • 变换结果将会是 \(\large X_{m \times 1}\)(结果列向量),
  • \(\large X_{m \times 1}(结果列向量)\)\(\large \alpha_{n \times 1}(变换列向量)\) 存在\(\large X_{m \times 1} = \lambda_0 \alpha_{n \times 1}\),
  • 右乘变换列向量高维几何意义就是将:
    \(\large A_{m \times n}\) 投射\(\large \alpha_{n \times 1}\)(变换列向量)的向量方向
    并且 \(\large \lambda_0\)\(\large A_{m \times n}\) 投射在 \(\large \alpha_{n \times 1}\)变换列向量方向上\(\large Eigenvaue\)(特征值).
  • AI/ML上的意义 就是 将

posted @ 2024-11-09 10:38  abaelhe  阅读(30)  评论(0)    收藏  举报