首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

机器学习之数据降维(一)PCA(主成分析

PCA(Principal Component Analysis,主成分分析)。降维致力于解决三类问题。

1. 降维可以缓解维度灾难问题;

2. 降维可以在压缩数据的同时让信息损失最小化;

3. 理解几百个维度的数据结构很困难,两三个维度的数据通过可视化更容易理解。

基础概念

方差(Variance)是度量一组数据的分散程度。方差是各个样本与样本均值的差的平方和的均值:

协方差(Covariance)是度量两个变量的变动的同步程度,也就是度量两个变量线性相关性程度。如果两个变量的协方差为0,则统计学上认为二者线性无关。注意两个无关的变量并非完全独立,只是没有线性相关性而已。计算公式如下:

如果协方差大于0表示一个变量增大是另一个变量也会增大,即正相关,协方差小于0表示一个变量增大是另一个变量会减小,即负相关。

协方差矩阵(Covariance matrix)由数据集中两两变量的协方差组成。矩阵的第(i,j)个元素是数据集中第i和第j个元素的协方差。例如,三维数据的协方差矩阵如下所示:

向量是具有大小(magnitude)和方向(direction)的几何概念。

特征向量(eigenvector)是由满足如下公式的矩阵得到的一个非零向量:

其中, v是特征向量,A是方阵,λ是特征值。经过A变换之后,特征向量的方向保持不变,只是其大小发生了特征值倍数的变化。也就是说,一个特征向量左乘一个矩阵之后等于等比例放缩的特征向量。

PCA降维步骤原理

主成分析需要度量那些是否存在相关的属性,就要用到协方差,而协方差是由原特征矩阵得到的,比如有N个特征,就会得到N*N的协方差方阵。特征向量和特征值只能由方阵得出,且并非所有方阵都有特征向量和特征值。如果一个矩阵有特征向量和特征值,那么它的每个维度都有一对特征向量和特征值。矩阵的主成分是由其协方差矩阵的特征向量,按照对应的特征值大小排序得到的(这就是为什么说PCA是按原数据方差最大的方向做坐标轴转换操作来降维的)。最大的特征值就是第一主成分,第二大的特征值就是第二主成分,以此类推。

总结:(设有m条n维数据)

1)将原始数据按列组成m行n列矩阵X

2)将X的每一列(代表一个属性字段)进行零均值化,即减去这一行的均值,得到矩阵T

3)求出协方差矩阵

4)求出协方差矩阵的特征值及对应的特征向量r

5)将特征向量按对应特征值大小按列排列成矩阵,取前k列组成矩阵V

6)Y=TV即为降维到k维后的数据

举例一

假设我们有如下二维数据:

该数据集有10条数据,每个数据有两个维度(即两个特征),现在我们需要将两维降成一个维度。python3代码及运行结果如下:

举例二

以《机器学习实战》PCA章节为例,使用python3对数据集 testSet.txt 进行降维;数据集共有1000行,部分截图:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181011G0WWEZ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券