主成分分析(PCA)是一种常用的无监督学习方法,利用
正交变换把由
线性相关变量表示的观测数据转换为几个由
线性无关变量表示的数据。线性无关的变量称为主成分。主成分的个数通常小于原始变量的个数,所以PCA是一种降维算法。
实现方式与几何解释
主成分分析步骤如下:
(1)对给定数据进行规范化,使得数据每一变量的平均值为0,方差为1。
(2)对数据进行正交变换,原来由线性相关变量表示的数据,通过正交变换变成由若干个线性无关的新变量表示的数据。
新变量是可能的正交变换中变量的方差的和(信息保存)最大的,方差表示在新变量上信息的大小。将新变量依次称为第一主成分、第二主成分等。
举例说明:
设数据在原坐标系由变量x1和x2 表示,如图(a)。PCA对数据进行正交变换(对原坐标系进行旋转变换),通过正交变换后,在新坐标系里,由变量y1和y2表示。主成分分析选择方差最大的方向(第一主成分)作为新坐标系的第一坐标轴,即y1 。之后选择与第一坐标轴y1 正交,且方差次之的方向(第二主成分)作为新坐标系的第二坐标轴,即y2 轴,如图(b)。在新坐标系里,数据中的变量y1 和y2 是线性无关的。

那么怎么样才能确定方差最大呢?设坐标系由变量x1和x2 表示,三个样本点A、B、C。对坐标轴进行旋转变换得到新的坐标轴y1。样本点A,B,C在y1上投影得到A′,B′,C′ 。

坐标值的平方和OA′2+OB′2+OC′2 ,表示样本在变量y1 上的方差和。主成分分析旨在选取正交变换中方差最大的变量作为第一主成分,也就是旋转变换中坐标值的平方和最大的值轴。在旋转变换中样本点到原点的距离的平方和OA2+OB2+OC2 保持不变。由勾股定理可知: 坐标值的平方和OA′2+OB′2+OC′2 最大等价于样本到y1 轴的距离的平方和AA′2+BB′2+CC′2 最小。所以,第一主成分是指在旋转变换中选取离样本点的距离平方和最小的轴。第二主成分的选取要保证与已选坐标轴正交的条件下,类似进行。
定义
线性变换的协方差(相关)矩阵
假设数据样本矩阵X 如下:
X=[x1x2…xn]=⎣⎢⎢⎢⎡x11x21⋮xm1x12x22⋮xm2⋯⋯⋱⋯ x1nx2n⋮xmn⎦⎥⎥⎥⎤
其中,xj=(x1j,x2j,…,xmj) 表示第j 个观测样本(每一列均表示一个样本,一共n个样本,每个样本m个特征)。
样本均值为:
xˉ=n1j=1∑nxj
样本的协方差矩阵S为:
S=[sij]m×msij=n−11k=1∑n(xik−xˉi)(xjk−xˉj),i,j=1,2,…,m
其中,xˉi=n1∑k=1nxik
样本的相关矩阵R 为:
R=[rij]m×mrij=siisjjsij
定义 m 维向量x=(x1,x2…,xm)T 到 m 维向量y=(y1,y2,…,ym)T 的线性变换:
y=ATx
其中:
A=[a1a2…am]=⎣⎢⎢⎢⎡a11a21⋮am1a12a22⋮am2⋯⋯⋱⋯ a1na2n⋮amn⎦⎥⎥⎥⎤
对于任意一个线性变换:
yi=aiTx=a1ix1+a2ix2+…+amixm,i=1,2…,m
yi 是m维向量y 的第i 个变量,其样本均值为:
yˉi=n1j=1∑naiTxj=aiTxˉxˉ=n1j=1∑nxj
yi 的样本方差var(yi) 为:
var(yi)=n−11j=1∑n(aiTxj−aiTxˉ)2=aiT[n−11j=1∑n(xj−xˉ)(xj−xˉ)T]ai=aiTSai
推广:对任意两个线性变换yi=αiTxyk=αkTx ,其协方差为:
cov(yi,yk)=aiTSak
定义
给定样本矩阵X。
第一主成分: y1=a1Tx 是在a1Ta1=1 的条件下,使得a1Txj 的样本方差a1TSa1 最大的 x 的线性变换。
第二主成分:y2=a2Tx 除了要满足 a2Ta2=1 ,还要满足a1Txj 与a2Txj 的协方差a1TSa2=0 的条件下,使得a2Txj 的样本方差a2TSa2 最大的 x 的线性变换。
推广:第i 主成分:yi=aiTx 是在aiTai=1 和aiTxj 与akTxj 的协方差akTSai=0 的条件下,使得aiTxj 的样本方差aiTSai 最大的 x 的线性变换。
使用主成分分析时,要先对数据进行规范化,即:
xij=siixij−xiˉ
此时,样本的协方差矩阵S 就是样本的相关矩阵 R:
R=n−11XXT
相关矩阵的特征值分解算法
(1)先对数据进行规范化处理,得到规范化矩阵X。
(2)计算X 的相关矩阵R (协方差矩阵S)。
(3)求样本相关矩阵 R 的 k 个特征值:λ1≥λ2≥…≥λm 和对应的k 个单位特征向量:a1,a2,…am 。
(4)求样本主成分:
y=ATx
其中A=[a1a2…am]
(5)计算第k主成分的方差贡献率:
ηk=∑i=1mλiλk