1.pca算法
主成分分析(Principal components analysis,PCA)是一种分析、简化数据集的技术。主成分分析经常用于减少数据集的维数,同时保持数据集中的对方差贡献最大的特征。
简而言之,PCA就是压缩数据,降低维度,把重要的特征留下来。
目的:
1.压缩数据
当你有上百上千个特征,它们可能来自不同的部门给的数据,可能这些来自不同的数据是可以互相推导的,或者某个特征是对结果没什么影响的,或者来自不同的部门的数据其实在描述同一个问题,那么这些冗余的特征是没有价值的。
我们可以通过降低维度(用机器学习的话来说就是去掉一些特征)来提高算法效率。
2.达到数据可视化
在解决机器学习问题时,如果能把数据可视化,可以大大帮助我们找到解决方案。但是,如果特征太多(即维数太多),你很难画出图,就算画出来了也不容易理解。
我们可以通过降低维度使数据反映在平面或者立体空间中,便于数据分析
2.过程
对于一组数据,如果它在某一坐标轴上的方差越大,说明坐标点越分散,该属性能够比较好的反映源数据。所以在进行降维的时候,主要目的是找到一个超平面,它能使得数据点的分布方差呈最大,这样数据表现在新的坐标轴上时候已经足够分散了。
我们要对数据样本进行中心化,中心化即是指变量减去它的均值。我们通过坐标轴变换,使得原本属于x轴的数据样本变成w轴样本。我们希望变化后的数据在坐标轴w的呈现的值z的方差最大,则我们会得到图示目标函数,并且由于w是坐标轴,所以我们会得到一个约束条件。根据拉格朗日乘子法可以解决该问题,经过处理后我们把问题变成了x协方差求特征值,求特征向量的问题了。
我们已经在上述过程中知道了问题的数学模型,我们可以解除p个特征值与对应的特征向量。我们可以对特征值进行大到小排序,如果我们要从p维 --> q维(q<p),那么我们只需要取前q个特征值对应的特征向量进行向量相乘。如果问题并没有给出具体q的值,那么我们可以通过计算如下式子便可以知道q的取值。其中t的取值相当于是一个阈值,比如我们需要保留80%,那么t=0.8即可。


3.演算一下(举例)
(1)假设我们有一个二维数据,我们要通过PCA的方法来将这个二维数据降到一维。

(2)因为数据已经中心化,所以我们就省去了中心化的步骤。我们开始求x协方差。
先来看看协方差的定义和计算方式。

计算结果如下

(3)求特征值和特征向量
同样的,了解一下特征值和特征向量的定义以及计算方式

以此题为例,分两步来做
a.由矩阵A的特征方程求特征值

b.把每个特征值代入线性方程组,求出基础解系。(打不出来莱姆达我也很难受)

结果如下

(4)对特征向量进行标准化

(5)得到w矩阵

⑥将二维变成一维,选择最大的特征值和对应的特征向量进行降维,结果如下

网友评论