简介

一个非监督的机器学习算法
主要用于数据的降维
通过降维,可以发现更便于人类理解的特征
可视化好,可去燥

问题

如何找到这个让样本间间距最大的轴
如何定义样本间间距

答案

使用方差Variance
V a r ( x ) = 1 m <munderover> i = 1 m </munderover> ( x i <mover accent="true"> x ˉ </mover> ) 2 Var(x)=\frac{1}{m}\sum\limits_{i=1}^m(x_i -\bar x)^2 Var(x)=m1i=1m(xixˉ)2
找到一个轴,使得样本空间的所有点映射到这个轴后,方差最大。
第一步:将样例的均值归为0(demean),对所有的样本进行demean处理,我们想要求一个轴的方向 w = ( w 1 , w 2 ) w=(w_1,w_2) w=(w1,w2)使得我们所有的样本,映射到 w w w以后,得到的方差最大。
V a r ( X p r o j e c t ) = 1 m <munderover> i = 1 m </munderover> X p r o j e c t ( i ) 2 Var(X_{project})=\frac{1}{m}\sum\limits_{i=1}^m||X_{project}^{(i)}||^2 Var(Xproject)=m1i=1mXproject(i)2

目标:求w,使得 V a r ( X p r o j e c t ) = 1 m i = 1 m ( X ( i ) w ) 2 Var(X_{project})=\frac{1}{m}\sum\limits_{i=1}^m(X^{(i)}\centerdot w)^2 Var(Xproject)=m1i=1m(X(i)w)2最大

一个目标函数的最优化问题,使用梯度上升法解决

demean

使原点基本处于数据中心

def demean(X):
    return X - np.mean(X,axis=0)