机器学习笔记-day06

十四、降维

14.1 动机一:数据压缩

采用的方式是所谓的“投射”。

我的理解是:

1,若两个特征之间有直接关系,如线性关系,则只需要保留其中一个就可以。

2,如果在某个维度数据的变化范围很小,则可以将这个维度忽略。

3,所谓“投射”,就是忽略某维度的变化量,视其为不变的。

14.2 动机二:数据可视化

将数据降至二维,就可以用二维的图像来显示。

这样做的问题在于,降维的算法只负责减少维数,新产生的特征的意义就必须由我们自己去发现了。

14.3 主成分分析问题

主成分分析(PCA)是最常见的降维算法。

主成分分析问题的描述:

问题是要将\(n\)维数据降至\(k\)维,目标是找到向量\(u^{(1)}\),\(u^{(2)}\),...\(u^{(k)}\),使得总的投射误差最小。

主成分分析与线性回顾的比较:主成分分析与线性回归是两种不同的算法。主成分分析最小化的是投射误差(Projected Error),而线性回归尝试的是最小化预测误差。线性回归的目的是预测结果,而主成分分析不作任何预测。

上图中,左边的是线性回归的误差(垂直于横轴投影),右边则是主要成分分析的误差(垂直于红线投影)。

PCA将个\(n\)特征降维到\(k\)个,可以用来进行数据压缩,如果100维的向量最后可以用10维来表示,那么压缩率为90%。同样图像处理领域的KL变换使用PCA做图像压缩。但PCA 要保证降维后,还要保证数据的特性损失最小。

PCA技术的一大好处是对数据进行降维的处理。我们可以对新求出的“主元”向量的重要性进行排序,根据需要取前面最重要的部分,将后面的维数省去,可以达到降维从而简化模型或是对数据进行压缩的效果。同时最大程度的保持了原有数据的信息。

PCA技术的一个很大的优点是,它是完全无参数限制的。在PCA的计算过程中完全不需要人为的设定参数或是根据任何经验模型对计算进行干预,最后的结果只与数据相关,与用户是独立的。

但是,这一点同时也可以看作是缺点。如果用户对观测对象有一定的先验知识,掌握了数据的一些特征,却无法通过参数化等方法对处理过程进行干预,可能会得不到预期的效果,效率也不高。

14.4 主成分分析算法

降维步骤:

一、对数据进行预处理,执行均值标准化或者特征缩放。

二、计算协方差矩阵covariance matrix):\(\Sigma\)

\(\Sigma = \frac{1}{m}\sum^{n}_{i=1}(x^{(i)})(x^{(i)})^T\)

三、计算特征向量

Octave 里我们可以利用奇异值分解singular value decomposition)来求解

[U, S, V]= svd(sigma)

这里主要用到\(U\)矩阵,它是一个n*n的矩阵,如果想要降维到\(k\),则只去前\(k\)列即可,即:\(\left[u^{(1)},u^{(2)},...,u^{(k)}\right]\),该矩阵是一个n*k的矩阵,也记为\(U_{reduce}\)

之后计算新特征向量:\(z^{(i)}\):\(z^{(i)} = U^T_{reduce}*x^{(i)}\)

其中\(x\)是n * 1维的,因此结果为 k * 1 维。

14.5 选择主成分的数量

如何选择K?减少投射的平均均方误差。

svd之后,所得到的的\(S\)是一个n * n的矩阵,只有对角线上有值,其他都是0,可以使用这个矩阵来计算平均均方误差与训练集方差的比例:

\(k=1\)开始逐渐尝试,知道误差比例达到预期。

14.6 压缩重现

无法百分百还原,只能还原为相近的值。

右图中线上的点,就是还原后的点,与原来的点还是有些许差距的。

14.7 主成分分析法的应用建议

使用PCA的步骤:

1,压缩特征

2,使用压缩的特征进行学习

3,预测时,采用之前学习而来的\(U_{reduce}\)将输入的特征\(x\)转换成特征向量\(z\),然后再进行预测

PCA的错误用法:

1,用来预防过拟合。不如尝试正则化处理。PCA只是丢掉一些特征,并不考虑任何与结果有关的信息,有可能丢失的信息非常重要。

2,默认将PCA作为学习过程的一部分。最好是在有必要的时候才考虑使用。

posted on 2020-10-21 00:05  moket  阅读(87)  评论(0)    收藏  举报