Principal Component Analysis(PCA)

Principal Component Analysis(PCA)

概念

  1. 去中心化(零均值化): 将输入的特征减去特征的均值, 相当于特征进行了平移, $$x_j - \bar x_j$$
  2. 归一化(标准化): 将输入的特征减去特征的均值, 得到的差在除以特征的标准差, $${{x_j-\bar x_j}\over{std(x_j)}}$$在进行PCA之前, 一定要进行零均值化或者标准化

用途

  1. 数据压缩(Data Compression)
  2. 数据可视化(Data Visualization)
  3. 提高算法执行效率

PCA实现步骤

  1. 数据零均值化或者标准化
  2. 计算样本矩阵的协方差矩阵Covariance, $$\Sigma={1\over{m}}\sum_{i=1}^{m} x{(i)}x$$
  3. 计算协方差矩阵的特征向量eigenvectors, $$[U, S, V] = svd(sigma)$$U即为特征向量矩阵
  4. 选择保留的特征, $$Ureduce = U(:, 1:k)$$
  5. 将Ureduce转为样本, \(Z = Ureduce^TX\)

数据还原

  1. 将被PCA处理过的数据尽可能的还原成原始数据
  2. 按照数学公式应该为\(X^{(i)}_{approx} = (Ureduce^T)^{-1}Z^{(i)}\), 但是实际中, 采用估计的, \(X^{(i)}_{approx}=UreduceZ^{(i)}\)

PCA实现补充

  • 如何选择k变量, 即保留的特征数量
    • 设k从1开始递增迭代到PCA算法中
    • 还原数据得到\(X_{approx}\)
    • 比较$${{{1\over{m}}\sum_{i=1}m(x-x{(i)}_{approx})2}\over{{1\over{m}}\sum_{i=1}mxx^{(i)}}}\le0.01$$
    • 如果小于0.01, 则表示当k取\(\hat k\)时, 我们保留了原始数据的99%

什么时候考虑PCA

  • 在一开始处理数据的时候, 应该尽量使用原始数据, 当是在不行的时候再使用PCA处理
posted @ 2019-03-12 21:50  gogogo11  阅读(298)  评论(0编辑  收藏  举报