机器学习_第三篇 特征学习(1)_主成分分析(Principal Component Analysis, PCA)

PCA是最重要的非监督学习的降维方法之一。在数据压缩消除冗余和数据噪音消除等领域都有广泛的应用。

A、PCA的优缺点

1)优点:仅仅需要以方差衡量信息量,不受数据集以外的因素影响;各主成分之间正交,可以消除原始数据成分见得相互影响的因素;计算方法简单,主要运算是特征值分解,易于实现。

2)缺点:主成维特整分各个特征维度的含义具有一定的模糊性,不如原始样本特征的解释性强;方差小的非主成分也可能含有对样本差异的重要信息,因降维丢弃可能对后续数据处理有影响。

B、PCA思想

将n维特征映射到k维上(k<n),这k维是全新的正交特征。这k维特征称为主元,是重新构造出来的k维特征。而不是简单地从n维特征中去除其他n-k维特征。

PCA操作流程

1、去平均值,即每一位特征减去各自的平均值(当然,为避免量纲以及数据数量及差异带来的影响,先标准化是必要的);

2、计算协方差矩阵;

3、计算协方差矩阵的特征值与特征向量;

4、对特征值从大到小排序;

5、保留最大的k个特征向量;

6、将数据转换到k个特征向量构建的新空间中。

C、PCA举例

     首先介绍PCA的计算过程:

     假设我们得到的2维数据如下:

     clip_image001[4]

     行代表了样例,列代表特征,这里有10个样例,每个样例两个特征。可以这样认为,有10篇文档,x是10篇文档中“learn”出现的TF-IDF,y是10篇文档中“study”出现的TF-IDF。也可以认为有10辆汽车,x是千米/小时的速度,y是英里/小时的速度,等等。

     第一步分别求x和y的平均值,然后对于所有的样例,都减去对应的均值。这里x的均值是1.81,y的均值是1.91,那么一个样例减去均值后即为(0.69,0.49),得到

     clip_image002[4]

     第二步,求特征协方差矩阵,如果数据是3维,那么协方差矩阵是

     clip_image003[4]

     这里只有x和y,求解得

     clip_image004[4]

     对角线上分别是x和y的方差,非对角线上是协方差。协方差大于0表示x和y若有一个增,另一个也增;小于0表示一个增,一个减;协方差为0时,两者独立。协方差绝对值越大,两者对彼此的影响越大,反之越小。

     第三步,求协方差的特征值和特征向量,得到

     clip_image005[4]

     上面是两个特征值,下面是对应的特征向量,特征值0.0490833989对应特征向量为clip_image007[4],这里的特征向量都归一化为单位向量。

    第四步,将特征值按照从大到小的顺序排序,选择其中最大的k个,然后将其对应的k个特征向量分别作为列向量组成特征向量矩阵。

     这里特征值只有两个,我们选择其中最大的那个,这里是1.28402771,对应的特征向量是clip_image009[6]

     第五步,将样本点投影到选取的特征向量上。假设样例数为m,特征数为n,减去均值后的样本矩阵为DataAdjust(m*n),协方差矩阵是n*n,选取的k个特征向量组成的矩阵为EigenVectors(n*k)。那么投影后的数据FinalData为

     clip_image011[4]

     这里是

     FinalData(10*1) = DataAdjust(10*2矩阵)×特征向量clip_image009[7]

     得到结果是

     clip_image012[4]

     这样,就将原始样例的n维特征变成了k维,这k维就是原始特征在k维上的投影。

     上面的数据可以认为是learn和study特征融合为一个新的特征叫做LS特征,该特征基本上代表了这两个特征。

     上述过程有个图描述:

     clip_image013[4]

     正号表示预处理后的样本点,斜着的两条线就分别是正交的特征向量(由于协方差矩阵是对称的,因此其特征向量正交),最后一步的矩阵乘法就是将原始样本点分别往特征向量对应的轴上做投影。

     如果取的k=2,那么结果是

     clip_image014[4]

     这就是经过PCA处理后的样本数据,水平轴(上面举例为LS特征)基本上可以代表全部样本点。整个过程看起来就像将坐标系做了旋转,当然二维可以图形化表示,高维就不行了。上面的如果k=1,那么只会留下这里的水平轴,轴上是所有点在该轴的投影。

     这样PCA的过程基本结束。在第一步减均值之后,其实应该还有一步对特征做方差归一化。比如一个特征是汽车速度(0到100),一个是汽车的座位数(2到6),显然第二个的方差比第一个小。因此,如果样本特征中存在这种情况,那么在第一步之后,求每个特征的标准差clip_image016[6],然后对每个样例在该特征下的数据除以clip_image016[7]

 

  •  注意1:虽然PCA有降维的效果,也许对避免过拟合有作用,但是最好不要用PCA去作用于过拟合。
  •  注意2:在训练集中找出PCA的主成分,(可以看做为映射 mapping),然后应用到测试集和交叉验证集中。而不是对所有数据集使用PCA然后再划分训练集,测试集和交叉验证集。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值