机器学习算法~主成分分析(PCA)

主成分分析:降维算法
作用:1、数据压缩; 2、数据降维,可视化。
1、先看看1、数据压缩untitled
机器学习算法~主成分分析(PCA)


机器学习算法~主成分分析(PCA)
2、数据降维可视化2

机器学习算法~主成分分析(PCA)


综合来看,主成分分析就是,找到一个方向u1,可以最小化方向误差如下面两幅图所示

机器学习算法~主成分分析(PCA)

机器学习算法~主成分分析(PCA)


那么扩展到N维到K维,也就是在数据中找出K个方向向量u1, u2, u3, u4......uk, 使得总的方向误差最小。
需要强调的是,PCA是和线性回归不一样的

PCA是一种常用的降维算法,它可以用来选取合适的方向向量。这里用投影误差来定量分析方向向量的优势。
投影误差就是数据点到方向向量的距离,也就是图中的蓝色线段长度。
线性回归也是得到一个拟合数据的直线。不同的是,PCA中的误差是点到直线的垂直距离,线性回归中的误差是点到直线的竖直距离:5

机器学习算法~主成分分析(PCA)



1. 数据预处理:mean normalization
机器学习算法~主成分分析(PCA)
feature scaling:(可选,不同特征范围差距过大时需要)
机器学习算法~主成分分析(PCA)
2. 计算协方差矩阵(Convariance Matrix)

机器学习算法~主成分分析(PCA)

3. 计算协方差矩阵Σ的特征向量[U, S, V] = svd(Sigma) ,得到矩阵U

机器学习算法~主成分分析(PCA)

4. 选择U矩阵的前k个列向量作为k个主元方向,形成矩阵,如上图公式中。

机器学习算法~主成分分析(PCA)

5. 对于每个原始数据点x(x 是N维数据)其降维后的数据点z(k维)

机器学习算法~主成分分析(PCA)

应用PCA

重构数据:对于降维后k维数据点z,将其恢复n维后的近似点为

机器学习算法~主成分分析(PCA)

选择K

平均投射误差(Average square projection error)
机器学习算法~主成分分析(PCA)
total variation
机器学习算法~主成分分析(PCA)
选择最小的k值使得

机器学习算法~主成分分析(PCA)

也可以使用SVD分解后的S矩阵进行选择
机器学习算法~主成分分析(PCA)

降维后,可以这样复原
机器学习算法~主成分分析(PCA)
因为Z是由X乘以变换矩阵U的转置得到的。

应用PCA的建议

  • 用于加速监督式学习:(1) 对于带标签的数据,去掉标签后进行PCA数据降维
                                                (2)使用降维后的数据进行模型训练

                                                (3) 对于新的数据点,先PCA降维得到降维后数据,带入模型获得预测值

        注:应仅用训练集数据进行PCA降维获取映射 ,不要用PCA阻止过拟合,用regularization。

              在使用PCA之前,先用原始数据进行模型训练,如果不行,再考虑使用PCA;而不要上来直接使用PCA。