机器学习 - 数据降维 主成分分析PCA Principal Components Analysis(学习笔记)

数据降维技术中,应用最多的方法就是PCA(Principal Components Analysis)。数据降维,是指在某些限定条件下,降低随机变量个数,得到一组“不相关”主变量的过程。

PCA简介

目标:

寻找k(k

核心:

在信息损失尽可能少的情况下,降低数据维度。

例如,要把三维数据降为二维数据,就需要把三维数据投影到一个平面,然后为了使损失的数据尽可能少,就希望三维数据的各点到这个平面的距离尽可能小。
我们可以把这个投影的线或面理解成主成分,而各点到它们的距离可以理解成损失的信息。

如何保留主要信息?

那就是投影后不同的数据要尽可能分得开(即不相关) 。这是因为维度很高的数据是有很多的相关性的,而我们希望数据尽可能少,那我们就要保证每个维度里的数据在不同的维度之间没有太多的关系,也就可以理解成上述所说的投影后不同的数据要尽可能分得开(即不相关) 。

如何实现?

使投影后数据的方差最大,因为方差越大数据也越分散。

作用?

1.减少模型分析数据量,提升处理效率,降低计算难度。

2.实现数据可视化。

计算过程:

1.原始数据预处理。(标准化 u=0,sigma=1)

from sklearn.preprocessing import StandardScaler 
X_norm = StandardScaler().fit_transform(X)

2.计算协方差矩阵特征向量,及数据在各特征向量投影后的方差。

from sklearn.decomposition import PCA
pca = PCA(n_components=4)#原数据是维度是4,要进行同等维度的PCA处理,故n_components=4
X_pca = pca.fit_transform(X_norm) #这里已经是经过PCA处理的主成分了

#计算各维度下的主成分的方差比例
var_ratio = pca.explained_variance_ratio_

#最后两项的方差比例是比较小的,数据间的相关性较高,很多信息是重复的,所以舍弃掉而选择前面两项。

3.根据需求(任务指定或方差比例)确定降维维度k。

4.选取k维特征向量,计算数据在其形成空间的投影。

pca = PCA(n_components=2) #因为我们要把数据维度降为2,所以这里n_components=2
X_pca = pca.fit_transform(X_norm)
X_pca.shape #看一下维度,这里已经为2了

PCA实例

机器学习 - 数据降维 主成分分析PCA Principal Components Analysis(学习笔记)_第1张图片

核主成分分析KPCA介绍

在上面的PCA算法中,我们假设存在一个线性的超平面,可以让我们对数据进行投影。但是有些时候,数据不是线性的,不能直接进行PCA降维。这里就需要用到和支持向量机一样的核函数的思想,先把数据集从n维映射到线性可分的高维N>n,然后再从N维降维到一个低维度n', 这里的维度之间满足n'

使用了核函数的主成分分析一般称之为核主成分分析(Kernelized PCA, 以下简称KPCA。假设高维空间的数据是由n维空间的数据通过映射ϕ产生。则对于n维空间的特征分解:

映射为:

通过在高维空间进行协方差矩阵的特征值分解,然后用和PCA一样的方法进行降维。一般来说,映射ϕ不用显式的计算,而是在需要计算的时候通过核函数完成。由于KPCA需要核函数的运算,因此它的计算量要比PCA大很多。

总结

作为一个非监督学习的降维方法,它只需要特征值分解,就可以对数据进行压缩,去噪。因此在实际场景应用很广泛。为了克服PCA的一些缺点,出现了很多PCA的变种,比如上文提到的为解决非线性降维的KPCA,还有解决内存限制的增量PCA方法Incremental PCA,以及解决稀疏数据降维的PCA方法Sparse PCA等。

优点:

1.仅仅需要以方差衡量信息量,不受数据集以外的因素影响。 

2.各主成分之间正交,可消除原始数据成分间的相互影响的因素。

3.计算方法简单,主要运算是特征值分解,易于实现。

缺点:

1.主成分各个特征维度的含义具有一定的模糊性,不如原始样本特征的解释性强。

2.方差小的非主成分也可能含有对样本差异的重要信息,因降维丢弃可能对后续数据处理有影响。

PCA和线性回归之间的关系

在线性回归中,我们试图预测一个特别的变量y,线性回归要做的是,用所有的x值来预测y。用左下图表示线性回归,当给定某个输入特征量x时,预测出某变量y的值。在线性回归中,要做的是拟合一条直线来最小化点和直线之间的平方误差,所以要最小化的是点到直线的垂直距离的平方,是某个点与假设的得到预测值之间的距离。

在PCA中,没有区别对待,没有特殊的变量y是需要预测的。相反,一系列特征都是同等对待的,没有一个是特殊的。在处理PCA中,要做的是试图最小化点到拟合直线之间的长度,这些距离直线是倾斜的,实际上,这些距离是点到直线的最短的正交距离。

机器学习 - 数据降维 主成分分析PCA Principal Components Analysis(学习笔记)_第2张图片

 

你可能感兴趣的:(机器学习,学习笔记,机器学习,pca降维)