数据压缩
在存储数据和使用数据的时候,过多的数据会造成空间上的占用和时间上的消耗。
如果我们能够将数据压缩的更少一点,即可使用更少的空间和时间进行训练模型。
例1:从2维到1维。
当2维的点均匀的分布在某一条直线附近,即可使用该直线所在的1维值来表示之前的2维的值。
当二维变量能够通过一条线表示出来的时候,我们就可以用一个变量来表示该二维变量了,即:
x
(
i
)
∈
R
2
−
>
z
(
i
)
∈
R
x
(
i
)
表
示
第
i
个
样
本
.
z
(
i
)
表
示
第
i
个
样
本
映
射
出
来
的
1
维
结
果
。
x^{(i)}\in\mathbb{R}^2\qquad->\qquad z^{(i)}\in\mathbb{R}\\ x^{(i)}表示第i个样本.\\ z^{(i)}表示第i个样本映射出来的1维结果。
x(i)∈R2−>z(i)∈Rx(i)表示第i个样本.z(i)表示第i个样本映射出来的1维结果。
同理,当3维的点均匀分布在某一个平面上。即可使用2维的数据表示3维的数据。
PCA降维
PCA(Principal Component Analysis) 是一种将高维数据降维,提取数据的主要特征分量的方法。叫做主成分分析法。
降维思路
如何使用低纬度超平面的值表达高纬度的值?
直观上看,使用超平面表达高纬度,需要满足两个点
- 最近重构性。样本的点到这个超平面的距离足够近(足够近,才好拟合)。
- 最大可分性。样本点在这个超平面上的投影尽可能分开(降维后,映射到超平面上,减少重合点,确保保留信息足够多)。
这里的超平面就是直线的高维推广。相当于三维的超平面是直线,4维的超平面是个面或者线,5维的是4维或者3维等等。
降维步骤
输 入 : 样 本 集 D = { x 1 , x 2 , . . , x n } ; 低 维 空 间 维 度 d ′ 过 程 : 1. 对 所 有 样 本 进 行 去 中 心 化 ∑ x i = 0 2. 计 算 样 本 的 协 方 差 矩 阵 X X T 3. 对 协 方 差 矩 阵 X X T 特 征 值 分 解 4. 取 最 大 的 d ′ 个 特 征 值 所 对 特 征 向 量 W 。 输 出 : 投 影 矩 阵 W 。 该 投 影 矩 阵 W 即 主 成 分 分 析 的 结 果 \begin{aligned} 输入:& 样本集D=\{x_1,x_2,..,x_n\};\\ & 低维空间维度d'\\ \\ 过程:\\ & 1.对所有样本进行去中心化\sum x_i=0\\ & 2.计算样本的协方差矩阵XX^T\\ & 3.对协方差矩阵XX^T特征值分解\\ & 4.取最大的d'个特征值所对特征向量W。\\ 输出:\\ & 投影矩阵W。该投影矩阵W即主成分分析的结果 \end{aligned} 输入:过程:输出:样本集D={x1,x2,..,xn};低维空间维度d′1.对所有样本进行去中心化∑xi=02.计算样本的协方差矩阵XXT3.对协方差矩阵XXT特征值分解4.取最大的d′个特征值所对特征向量W。投影矩阵W。该投影矩阵W即主成分分析的结果
原理分析。
为了能使得降维后,映射到超平面上的点足够分散,我们尽量使映射后的方差较大。
Step1:去中心化
去中心化。方便方差计算.
去 中 心 化 后 , 均 值 μ = 0 , 方 差 ∑ ( x − μ ) 2 = ∑ x 2 . 去中心化后,均值\mu=0,方差\sum(x-\mu)^2=\sum x^2. 去中心化后,均值μ=0,方差∑(x−μ)2=∑x2.
Step2:计算协方差矩阵
X X T = [ x 1 2 x 1 x 2 . . . x 1 x n x 2 x 1 x 2 2 . . . x 2 x n . . . . . . . . . . . . x n x 1 x n x 2 . . . x n 2 ] = [ D ( x 1 ) C o v ( x 1 , x 2 ) . . . C o v ( x 1 , x n ) C o v ( x 2 , x 1 ) D ( x 2 ) . . . C o v ( x 2 , x n ) . . . . . . . . . . . . C o v ( x n , x 1 ) C o v ( x n , x 2 ) . . . D ( x n ) ] XX^T=\begin{bmatrix} x_1^2 &x_1x_2 &... &x_1x_n\\ x_2x_1 &x_2^2 &... &x_2x_n\\ ... &... &... &...\\ x_nx_1 &x_nx_2 &... &x_n^2 \end{bmatrix}= \begin{bmatrix} D(x_1) &Cov(x_1,x_2) &... &Cov(x_1,x_n)\\ Cov(x_2,x_1) &D(x_2) &... &Cov(x_2,x_n)\\ ... &... &... &...\\ Cov(x_n,x_1) &Cov(x_n,x_2) &... &D(x_n) \end{bmatrix} XXT=⎣⎢⎢⎡x12x2x1...xnx1x1x2x22...xnx2............x1xnx2xn...xn2⎦⎥⎥⎤=⎣⎢⎢⎡D(x1)Cov(x2,x1)...Cov(xn,x1)Cov(x1,x2)D(x2)...Cov(xn,x2)............Cov(x1,xn)Cov(x2,xn)...D(xn)⎦⎥⎥⎤
可见主对角线元素为方差,其他都为协方差。
为了使得最后得到的基相关性低,方差大。所以我们选择将该协方差矩阵进行特征值对角化。
这样可以使得协方差都为0.
Step3:特征值分解
使用算法进行特征值分解。(拉格朗日乘子法)。
后得出特征值λ对角矩阵,以及对应特征向量W。
按照特征值排序。取高方差的前d‘项。这里是为了使得降维后的样本结果,方差最大。
Step4:输出W作为低维的空间
以上就完成了降维。
参考资料
B站吴恩达机器学习相关课程:https://www.bilibili.com/video/BV164411b7dx