pca算法介绍及简单实例

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即可。

《pca算法介绍及简单实例》 图片发自简书App

《pca算法介绍及简单实例》 图片发自简书App

3.演算一下(举例)

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

《pca算法介绍及简单实例》 兆小佳

(2)因为数据已经中心化,所以我们就省去了中心化的步骤。我们开始求x协方差。

先来看看协方差的定义和计算方式。

《pca算法介绍及简单实例》 兆小佳

计算结果如下

《pca算法介绍及简单实例》 兆小佳

(3)求特征值和特征向量

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

《pca算法介绍及简单实例》 图片发自简书App

以此题为例,分两步来做

a.由矩阵A的特征方程求特征值

《pca算法介绍及简单实例》 图片发自简书App

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

《pca算法介绍及简单实例》 图片发自简书App

结果如下

《pca算法介绍及简单实例》 图片发自简书App

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

《pca算法介绍及简单实例》 兆小佳

(5)得到w矩阵

《pca算法介绍及简单实例》 兆小佳

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

《pca算法介绍及简单实例》 兆小佳

OVER.

    原文作者:兆小佳
    原文地址: https://www.jianshu.com/p/a3f971f6bb2d
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞