本文主要参考周志华老师的西瓜书,对PCA算法的原理作简单总结。算法
1. 基本原理优化
通常来讲,但愿得到低维子空间,最简单的是对原始高维空间进行线性变换。给定d维空间中的样本X=(x1,x2,...,xm)∈Rd*m,变换以后获得d'≤d维空间中的样本排序
Z = WTX原理
其中W∈Rd*d'是变换矩阵,Z∈Rd'*m是样本在新空间中的表示。方法
基于线性变换进行降维的方法称为线性降维方法,都符合上式的基本形式。总结
所以,要求得新坐标须要先求得W。
2. 优化目标及求解思路
优化目标为W使得样本在新坐标系中的投影尽可能可以分开(方差和最大)。
投影后的样本点方差为∑iWTxixiTW,则优化目标可写为
max tr(WTXXTW)
s.t. WTW=I
使用拉格朗日乘子法可得
XXTW = λW
为求得W,转化为求协方差矩阵XXT的特征向量(λ为特征值)。对协方差矩阵XXT进行特征值分解,将求得的特征值(表明方差大小)排序,取前d’个特征值对应的特征向量构成W=(w1,w2,...,wd'),即为主成分分析的解。
3. 算法描述
输入:样本集D={(x1,x2,...,xm};低维空间维数d‘。
1. 对全部样本进行中心化:xi←xi−1/m*∑xi
2. 计算样本的协方差矩阵XXT
3. 对协方差矩阵作特征值分解
4. 取最大的d'个特征值对应的特征向量w1,w2,...,wd'
输出:投影矩阵W=(w1,w2,...,wd')。