主成分分析和判别函数
标签: 模式分类
@author lancelot-vim
主成分分析
考虑n个d维的样本 x1,x2...xn ,如何使用一个d维的向量 x0 ,来代表这n个样本,确切说,我们希望这n个样本和它的代表 x0 之间的距离的和越小越好,特别的,使用欧几里得距离来定义误差函数 J0(x0) : J0(x0)=∑nk=1||x0−xk||2
我们的目标是寻找 x0 ,使得 J0 最小,很容易可以得到: x0=1n∑nk=1xk
实际上,样本均值是样本数据集的零维表达,它表达了样本之间的相似,但不能表达样本的差异性。过样本均值做一条直线,并将所有的样本向这条直线上做投影,那么我们能得到代表所有样本的一维向量,若 e⃗ 表示这条直线的单位向量,那么直线方程为 x⃗ =m⃗ +ae⃗ ,其中 m⃗ 代表样本均值
其中 a 是一个实数,表示某点离开
J1(a1,a2...an,e)=∑nk=1||(m+ake)−xk||2=∑nk=1a2k||e||2−2∑nk=1akeT(xk−m)+∑nk=1||xk−m||2
由于 ||e||=1 ,通过对 ak 求偏导,令结果为0有: ak=eT(xk−m) ,直观上表示为点到直线的距离
这就引出一个问题,什么方向的直线才是最好的直线,对此定义”散布矩阵”(scatter matrix)
S=∑k=1n(xk−m)(xk−m)T
将上式代入 J1 ,有:
J1(e)=∑nk=1a2k−2∑nk=1a2k+∑nk=1||xk−m||2 =−∑nk=1