前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器学习实战 - 读书笔记(08) - 预测数值型数据:回归

机器学习实战 - 读书笔记(08) - 预测数值型数据:回归

作者头像
绿巨人
发布2018-05-17 11:27:17
1K0
发布2018-05-17 11:27:17
举报
文章被收录于专栏:绿巨人专栏绿巨人专栏

前言

最近在看Peter Harrington写的“机器学习实战”,这是我的学习心得,这次是第8章 - 预测数值型数据:回归。

基本概念

  • 回归(regression) - 估算一个依赖变量和其它独立变量的关系。不同于分类的是,它计算的是连续数值,也就是数值型数据。 回归多用于预测。
  • 回归方程(regression equation) : 就是回归分析的结果。一个方程式使用独立变量来计算依赖变量。
  • 线性回归(linear regression) : 回归方程是一个多元一次方程,它是由常量乘以每个独立变量,然后再求和的结果。
  • 过拟合(over-fitting) : 理解过拟合,可以想象有两个人:小明和小强。我们让他们做开平方计算。 小明计算能力强,他使用计算的方法求开平方的结果。 小强记忆能力强,他记住1~10000所有数开平方的结果,通过匹配的方式算出结果。 小强的方法就是过拟合,过于依靠记忆(训练数据),而没有发现一个通用的规律。
  • 欠拟合(under-fitting) 在机器学习的回归分析中,希望发现训练数据和目标数据之间的关系。这个关系是未知的。 寻找这个通用关系有一些困难:
    • 训练数据和目标数据的覆盖度问题。是否能够完全体现了数据关系?
    • 训练数据和目标数据的精确度问题。
    • 关系的复杂性 这种关系可能是线性的(我们喜欢),也可能是二次方程式、三次方程式、求对数等等。 如果我们简单的使用线性回归方程,则很可能满足了部分数据,对某些数据却造成了偏差。 这种现象就是欠拟合。

线性回归

使用线性回归方程,求解系数向量w

核心公式

  • 线性回归方程 y = f(x) = w^Tx
  • 求w 求w, 是求方程式y = w^Tx的最小平方误差。 平方误差: \textstyle sum_{i=1}^n(y_i - w_i^Tw)^2

平方误差的矩阵表示: (y-xw)(y-xw) 对w求导: \begin{array}{lcl} ((y-xw)^T(y-xw))' & = (y^2 - 2xyw + (xw)^2)' \\ & = -2xy + 2xw \\ & = -2x^T(y- xw) \\ -2x^T(y- xw) & = 0 \\ x^T(y- xw) & = 0 \\ x^Ty- x^Txw) & = 0 \\ w & = (x^T y)(x^T x)^{-1} \end{array} \\ where \\ \qquad x \text{ : training data, it is a matrix.} \\ \qquad x^T \text{ : x's transpose.} \\ \qquad y \text{ : result data of training data.} \\ \qquad w \text{ : it is a vector.}

  • 测试算法 使用相关系数验证回归方程式 numpy.corrcoef(yEstimate, yActual) R_{ij} = \frac{C_{ij}}{\sqrt{C_{ii}C_jj}}

优势

  • 方法简单,易于实现。

劣势

  • 不能求解 (x^Tx)^{-1},是对矩阵求逆,然而,矩阵的逆可能并不存在。
  • 欠拟合 由于线性回归计算的是所有的训练数据,因此不会考虑局部上的细节,这样会出现欠拟合的现象。

局部加权线性回归(Locally Weighted Linear Regression,LWLR)

为了解决线性回归欠拟合的问题,一个思路是:我们用离测试数据比较近的训练数据进行线性回归分析。 因此我们给每个训练数据赋予一个权重\alpha,太远的训练数据的权重为0,离测试数据越近,权重越大。 这个思路有点像KNN算法。

  • 求w w = (x^T \alpha y)(x^T \alpha x)^{-1} \\ \alpha(i, i) = exp \left ( \frac{\left | x^{(i)} - x^{(t)} \right |}{-2k^2} \right) \\ where \\ \qquad x \text{ : training data, it is a matrix.} \\ \qquad x^T \text{ : x's transpose.} \\ \qquad y \text{ : result data of training data.} \\ \qquad w \text{ : it is a vector.} \\ \qquad \alpha \text{ : weight of training data, it is a matrix.} \\ \qquad \alpha(i, i) \qquad \text{ : a result is from a kernel function, here we use radial basis function.} \\ \qquad \left | x^{(i)} - x^{(t)} \right | \text{ : the square of the distance of }\ x^{(i)} \text{ and}\ x^{(t)} \text{.} \\ \qquad x^{(t)} \text{ : the testing data.} \\ \qquad k \text{ : it is an input value. 0 < k } \leqslant { 1. } 注: k越小,细分程度越大。 过于小的K会导致过拟合问题。

岭回归(ridge regression)

岭回归是一种缩减(shrinkage)技术。缩减方法可以去掉不重要的参数,因此能更好地理解数据。

逻辑过程

  • 首先对训练数据做标准化处理。 标准化处理的目的是使得每个特征的重要性相同。 比如:一个特征的年龄(单位是年龄),另外一个特征是年收入(单位是元)。 如果使用原始数据,年龄变化比较小,所以可能对应的w会比较大。同理,年收入对应的w会比较小。 对于岭回归来说,\lambda就不太好取值。
  • 然后使用不同的\lambda,进行岭回归计算。

核心公式

  • 标准化处理 y^{(mean)} = \frac{sum(y)}{count(y)} \\ y = y - y^{(mean)} \\ x^{(mean)} = \frac{sum(x)}{count(x)} \\ x^{(var)} = \frac{sum((x - x^{(mean)}))^2}{count(x)} \\ x = \frac{x - y^{(mean)}}{x^{(var)}} \\ where \\ \qquad x \text{ : training data, it is a matrix.} \\ \qquad y \text{ : result data of training data.} \\ \qquad y^{(mean)} \text{ : the arithmetic mean along the y.} \\ \qquad x^{(mean)} \text{ : the arithmetic mean along the x.} \\ \qquad x^{(var)} \text{ : the variance along the x.}
  • 岭回归方程 w = (x^T y)(x^T x + \lambda I)^{-1} \\ where \\ \qquad x \text{ : training data, it is a matrix.} \\ \qquad x^T \text{ : x's transpose.} \\ \qquad y \text{ : result data of training data.} \\ \qquad w \text{ : it is a vector.} \\ \qquad I \text{ : is a m * m matrix, 对角线上的元素为1(就是岭), 其它元素都为0. } \\ \qquad m \text{ : dimension of a training data.} \\ \qquad \lambda \text{ : an input value. 缩减系数} 注:\lambda非常小时,系数与普通回归一样。而\lambda非常大时,所有回归系数缩减为0。可以在中间某处找到使得预测的结果最好的\lambda值。
  • 前向逐步线性回归 逻辑过程 对训练数据做标准化处理(和岭回归的标准化处理方式相同). 初始化w的每个元素为1. 每次对w的一个元素增大一点或者减少一点,计算误差,如果误差比上次的少,就将当前的w记为w_best。 按照上面的方法循环许多次后,返回w_best.

核心公式

  • 计算误差的方法 y^{(test)} = w x \\ error = \textstyle sum_{i=1}^n (y_i - y_i^{(test)})^2 \\ where \\ \qquad x \text{ : training data, it is a matrix.} \\ \qquad w \text{ : the current w.} \\ \qquad y \text{ : result data of training data.}

参考

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-07-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 基本概念
  • 线性回归
    • 核心公式
      • 优势
        • 劣势
        • 局部加权线性回归(Locally Weighted Linear Regression,LWLR)
        • 岭回归(ridge regression)
          • 逻辑过程
            • 核心公式
              • 核心公式
              • 参考
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档