关于机器学习:机器学习16吴恩达笔记

37次阅读

共计 1546 个字符,预计需要花费 4 分钟才能阅读完成。

最风行降维算法:主成分分析法(PCA)

  • 在利用 PCA 前,要先进行均值归一化和特色规范化,使得数值在能够比拟的范畴内
PCA 指标
  • 当把数据集从二维降到一维时,要求咱们找到一个向量,使得数据集每个点到向量所在直线的投影之间的间隔尽可能小。即蓝色线段的长度,称为投影误差

  • 当从 n 维到 k 维时,就是找到 k 个向量,使得数据的投影误差最小
  • 总之,PCA 的指标就是找到一个低维立体,将数据投影到低维立体上,而后最小化投影误差的平方,即每个点和投影到直线的点的间隔
PCA 和线性回归的关系
  • PCA 和线性回归很类似,但不是线性回归。线性回归时,咱们须要输入 x 预测 y,要最小化点和平行 y 轴方向交点的均匀平方误差;而 PCA 不必预测 y,要最小化点到直线上投影的误差

PCA 算法流程
  • 应用 PCA 前,有一个数据预处理的过程:先进行均值归一化,而后进行特色缩放。这两步和监督学习完全相同,先计算 x 的均值,而后用 x - 均值代替每个 x(均值归一化);若变量的范畴差距比拟大(预测房价一个是大小一个是卧室数目),x- 均值 /s(示意 x 向量的度量范畴,最大值 - 最小值)

  • 而后应用 PCA 设法找到一个低维子空间,使得数据投影到低维子空间的投影误差最小。总之,PCA 要找到一种办法来计算出两个货色:(1)计算出低维空间的向量(2)计算出数据在低维空间的坐标

步骤

  • 首先计算出协方差方阵(留神协方差方阵的符号和求和符号相似,不要搞混了),并存入变量 Sigma
  • 而后计算出 Sigma 矩阵的特征向量,应用【U,S,V】=svd(Sigma)命令实现(在 matlab 中 svd 和 eig 都能用来计算特征向量,只是 svd 更稳固;在其余编程环境中,咱们只有找到一个能进行奇怪值合成的函数库也能够实现)
  • 奇怪值合成失去的 U 矩阵是一个 n n 矩阵,咱们想从 n 维降到 k 维,就只有前 k 列,失去一个 n k 矩阵,咱们记为 U ’reduce
  • 低维立体向量 z =U’reduce 的转置 x,失去一个 k 1 的矩阵


当特征向量用矩阵示意时,间接能够通过下图计算失去 sigma 矩阵

反压缩

  • PCA 作为压缩数据的算法,能把 1000 维降到 100 维;那么是否有算法能把压缩过的数据近似的还原到原始的高纬度数据呢
  • X’approx=U’reducez,失去 n 1 维向量,相似于将数据还原到二维立体的直线上,和原始数据十分靠近了曾经

怎么抉择 k

  • k 是一个参数,称为主成分的数量。人们如何抉择参数 k,使得均匀平方误差最小化呢
  • X(原始数据)-X’approx(映射数据)。咱们想最小化 x 和投影点的均匀平方误差,位置立体映射回去正好是投影点
  • 数据的总变差:样本长度平方的均值。咱们抉择能使均匀平方误差 / 数据的总变差小于等于 0.01 的最小 k 值。抉择了 k,使得 99% 的差异性得以保留。还能够 0.05、0.1、0.15

计算流程
  • 依照上边来看,咱们要从 k = 1 开始,算出每一个 z,继而失去 X ’approx,带入公式看比值。若不满足 k+1,反复上述步骤直到满足为止。这个过程的效率是相当低的
  • 前边应用 svd 命令失去的矩阵 S 是一个 n * n 方阵,主对角线非 0,其余元素为 0。对于给定的 k,1- s 的 k 求和 / n 求和小于等于 0.01 即可;即 s / s 大于 0.99. 这样咱们只有调用一次 svd 即可,不须要反复计算 X ’approx

PCA 的利用

  • 进步机器学习算法的速度。将 10000 维的向量降到 1000 维,放慢计算速度。这时要留神,不仅仅训练集要降维为低维向量,测试集、穿插验证集都要降维为低维向量

  • 压缩数据,缩小内存、磁盘的应用,来存储更多数据
  • 数据可视化。高维数据不好作图,降为二维或者三维好作图
谬误利用
  • 过拟合。的确参数少了不容易过拟合,然而成果很差。因为 pca 不思考标签,是在对标签 y 不知情的状况下,将某些信息舍弃掉了,里边不免有无效信息;过拟合拟合数据时则要率标签 y。因而正则化才是最好的形式

正文完
 0