Machine Learning第八讲[非监督学习] --(三)主成分分析(PCA)

来源:互联网 发布:信鸽分类信息软件 编辑:程序博客网 时间:2024/06/05 04:22

内容来自Andrew老师课程Machine Learning的第八章内容的Principal Component Analysis(PCA)部分。


一、Principal Component Analysis Problem Formulation(主成分分析构思)


首先来看一下PCA的基本原理:

PCA会选择投影误差最小的一条线,由图中可以看出,当这条线是我们所求时,投影误差比较小,而投影误差比较大时,一定是这条线偏离最优直线。

PCA的方向:


从图上的分析,我们可能很疑惑PCA和线性回归十如此地相似,那么两者是一回事吗?下面的图可以很好地给出解释:

总结:线性回归和PCA的最优模型都是最小化某个值,只是线性回归最小化预测值和真实值之间的误差,而PCA最小化投影误差。

二、Principal Component Analysis Algorithm(主成分分析算法)

主成分分析的具体流程为:

训练集:

1、数据预处理:计算均值,用替换,即可能是最大值与最小值的差值,也可能是方差、标准差之类的)

2、将数据从n维降到k维(k≤n)

(1)计算协方差:,其中是n*1矩阵(注意,不是求和而是协方差的符号

2)计算的特征向量:[ U, S, V ] = svd( Sigma ) = eig( Sigma),在做奇异值分解的时候,svd( )和eig( )的结果相同,但是svd( )相对稳定一些,能够得到U是n*n的矩阵,

注意:svd产生的U是由特征向量组成的,按照特征值大小排列的,即大的特征值对应的特征向量在前面,小的特征值对应的特征向量在后面。又特征值越大,说明此特征越重要,因此在下一步中可以取前K列特征(使得k固定的情况下,丢失最少的特征)。

(3)取U的前k列,记作,则


其算法流程如下:





推荐PCA系列文章:
PCA降维算法总结以及matlab实现PCA(个人的一点理解)

PCA 降维算法详解 以及代码示例

PCA的应用示例







1 0
原创粉丝点击