机器学习常识 10: 线性回归

摘要: 线性回归是直接从问题到解决方案, 而岭回归之类则让我们理解正则项.

1. 一元线性回归

在二维平面有一系列数据点, x x x 坐标表示其数据, y y y 坐标表示其标签. 对于新的数据, 如何预测其标签? 为此, 我们可以建立一个线性函数 y = a x + b y = ax + b y=ax+b.

  • 输入: 数据点集合 { ( x i , y i ) } i = 1 n \{(x_i, y_i)\}_{i = 1}^n {(xi,yi)}i=1n.
  • 输出: 线性函数的系数 a , b a, b a,b.
  • 优化目标: min ⁡ ∑ i = 1 n ( y i − y i ′ ) 2 \min \sum_{i = 1}^n (y_i - y_i')^2 mini=1n(yiyi)2, 其中 y i ′ = a x i + b y_i' = a x_i + b yi=axi+b.

这个问题在高中学过, 称为最小二乘法. 从优化目标可以看出, 优化的是 l 2 l_2 l2 模.

图 1. 一元线性回归

图 1 给出了广告费与销售额之间的关系. 虚线所示的 f ( x ) f(x) f(x) 试图对所给的数据点进行拟合. 由此可以预测广告费为 2 万元、14万元等所对应的销售额. 直观地看, a a a 是斜率, b b b 是偏移量.

2. 多元线性回归

多元的情况, 只需要将 x x x a a a 从标量改为向量即可. y y y b b b 仍然为标量. 这时, 拟合直线换成了超平面.

  • 输入: 数据点集合 { ( x i , y i ) } i = 1 n \{(\mathbf{x}_i, y_i)\}_{i = 1}^n {(xi,yi)}i=1n, 其中 x i ∈ R m \mathbf{x}_i \in \mathbb{R}^m xiRm.
  • 输出: 线性函数的系数 a , b \mathbf{a}, b a,b.
  • 优化目标: min ⁡ ∑ i = 1 n ( y i − f ( x i ) ) 2 \min \sum_{i = 1}^n (y_i - f(\mathbf{x}_i))^2 mini=1n(yif(xi))2, 其中 f ( x i ) = a x i + b f(\mathbf{x}_i) = \mathbf{a} \mathbf{x}_i + b f(xi)=axi+b.

为了解该问题, 可以将数据集合用矩阵表示, 标签集合则用向量表示, 即:
Y = X θ + b . (1) \mathbf{Y} = \mathbf{X\theta} + b. \tag{1} Y=Xθ+b.(1)
X \mathbf{X} X 最左边加上一列全 1, 可以把 b b b 吸收进 a \mathbf{a} a 里面去, 获得
Y = X θ , (2) \mathbf{Y} = \mathbf{X\theta}, \tag{2} Y=Xθ,(2)
其中 θ = ( θ 0 , θ 1 , … , θ m ) \mathbf{\theta} = (\theta_0, \theta_1, \dots, \theta_m) θ=(θ0,θ1,,θm)
例如:
X = [ 1 0.2 0.4 0.3 1 0.3 0.5 0.4 1 0.3 0.7 0.5 1 0.4 0.6 0.6 1 0.2 0.8 0.6 ] , Y = [ 0.2 0.3 0.7 0.4 0.5 ] \mathbf{X} = \left[\begin{array}{lll} 1 & 0.2 & 0.4 & 0.3\\ 1 & 0.3 & 0.5 & 0.4\\ 1 & 0.3 & 0.7 & 0.5\\ 1 & 0.4 & 0.6 & 0.6\\ 1 & 0.2 & 0.8 & 0.6\\ \end{array}\right], \mathbf{Y} = \left[\begin{array}{l} 0.2\\ 0.3\\ 0.7\\ 0.4\\ 0.5\\ \end{array}\right] X= 111110.20.30.30.40.20.40.50.70.60.80.30.40.50.60.6 ,Y= 0.20.30.70.40.5

由于实例个数 (这里 n = 5 n = 5 n=5) 多于特征个数 (这里 m = 3 m = 3 m=3), (2) 式是一个超定方程组
{ 1 θ 0 + 0.2 θ 1 + 0.4 θ 2 + 0.3 θ 3 = 0.2 1 θ 0 + 0.3 θ 1 + 0.5 θ 2 + 0.4 θ 3 = 0.3 1 θ 0 + 0.3 θ 1 + 0.7 θ 2 + 0.5 θ 3 = 0.7 1 θ 0 + 0.4 θ 1 + 0.6 θ 2 + 0.6 θ 3 = 0.4 1 θ 0 + 0.2 θ 1 + 0.8 θ 2 + 0.6 θ 3 = 0.5 (3) \left\{\begin{array}{l} 1\theta_0 + 0.2\theta_1 + 0.4\theta_2 + 0.3\theta_3 = 0.2\\ 1\theta_0 + 0.3\theta_1 + 0.5\theta_2 + 0.4\theta_3 = 0.3\\ 1\theta_0 + 0.3\theta_1 + 0.7\theta_2 + 0.5\theta_3 = 0.7\\ 1\theta_0 + 0.4\theta_1 + 0.6\theta_2 + 0.6\theta_3 = 0.4\\ 1\theta_0 + 0.2\theta_1 + 0.8\theta_2 + 0.6\theta_3 = 0.5\\ \end{array}\right. \tag{3} 1θ0+0.2θ1+0.4θ2+0.3θ3=0.21θ0+0.3θ1+0.5θ2+0.4θ3=0.31θ0+0.3θ1+0.7θ2+0.5θ3=0.71θ0+0.4θ1+0.6θ2+0.6θ3=0.41θ0+0.2θ1+0.8θ2+0.6θ3=0.5(3)
即一般情况下不存在这样的 θ \mathbf{\theta} θ 使得该方程组成立. 为了理解这个事情, 可以回到一元线性回归, 当数据点 3 个或以上, 就不存在一条直线刚好穿过所有的点.
根据优化目标, 可以解得 (参见知乎上的推导CSDN 上其他作者的贴子):
θ = ( X T X ) − 1 X T Y . (4) \mathbf{\theta} = (\mathbf{X}^{\mathsf{T}}\mathbf{X})^{-1}\mathbf{X}^\mathsf{T}\mathbf{Y} \tag{4}. θ=(XTX)1XTY.(4)

如果这里求矩阵的逆出了问题 (有些矩阵没有逆), 就可以用梯度下降法来求解.

3. 岭回归

(3) 式在求逆矩阵的时候可能出问题, 为了解决它, 引入

新的优化目标: min ⁡ ∑ i = 1 n ( y i − f ( x i ) ) 2 + λ ∑ j = 1 m θ j 2 \min \sum_{i = 1}^n (y_i - f(\mathbf{x}_i))^2 + \lambda \sum_{j = 1}^m \theta_j^2 mini=1n(yif(xi))2+λj=1mθj2.
由此推导出
θ = ( X T X + λ I ) − 1 X T Y . (5) \mathbf{\theta} = (\mathbf{X}^{\mathsf{T}}\mathbf{X} + \lambda \mathbf{I})^{-1}\mathbf{X}^\mathsf{T}\mathbf{Y} \tag{5}. θ=(XTX+λI)1XTY.(5)
λ I \lambda \mathbf{I} λI 的加入使得矩阵一定可逆.
除了解决矩阵求逆的问题, 新的优化目标还有个非常重要的作用: 对 θ j \theta_j θj 的值进行惩罚. 也就是说, θ j \theta_j θj 的绝对值越大, 这个方案越不好.
λ ∑ j = 1 m θ j 2 \lambda \sum_{j = 1}^m \theta_j^2 λj=1mθj2 就是传说中的正则项, 它牺牲了模型在训练集中的拟合能力, 但提升了在新数据上的预测能力 (即泛化能力). 而模型的泛化能力是机器学习的核心.
这里的系数 λ \lambda λ 设置得越大, 对训练数据的拟合就越差. 但设置得太小, 就不能达到控制过拟合的目的.
很多机器学习的论文, 都致力于提升模型的泛化能力. 俗气一点, 就是使用不同的正则项, 然后再给出合理的解释, 并用良好的实验结果来证实. 系数 λ \lambda λ 的设置, 也通常是人为的.

4. 欠拟合

图 1 所示的糖葫芦串得不错, 但在现实世界中, 用一根直接把数据串起来很困难. 这很容易导致欠拟合, 也就是说, 很多点都拟合得不好.

4.1 局部线性回归

数据往往体现一定的局部性, 即与自己相邻的数据, 影响更大 (回头想想 k k kNN). 所以我们可以更重视局部点的影响, 由此引入局部线性回归, 如图 2 所示. 更多内容参见 其它CSDN 贴子.

图 2. 局部线性回归

4.2 离群点

如图 3 所示, 少量离群点导致拟合函数产生了较大的偏移 (下面这根线). 这些离群点可能是数据采集过程中错误导致. 一种解决方式如下: 生成拟合函数后, 可以把偏差最大的一部分 (如 1%) 训练数据去掉, 再进行拟合 (上面这根线). 这种简单的方式可以削弱离群点的影响.

图 3. 离群点的影响

5. 线性回归在机器学习常识中的意义

  • 是机器学习问题定义的一个典型案例.
  • 线性模型及其变种在很多地方被采用. 也不是因为线性模型的拟合能力强 (其实它是最弱的), 而是因为它简单, 易于计算.
  • 给出了一个典型的优化目标.
  • 能从优化目标直接获得最优解, 如 (3) 式所示. 对于绝大多数机器学习问题, 这点无法做到.
  • 给出了一个典型的正则项.

6. 常见误区

  • 可视化的时候, 标签本身需要占一个维度. 仅 1 个特征的时候,就需要在二维平面上表示. 例中有 3 个特征, 应该使用 4 维空间中的超平面表示. 这与后面的分类问题很容易弄混.
  • X \mathbf{X} X 最左边一列为 1, 实际是为了把偏移量放到 θ \mathbf{\theta} θ, 方便表达. 并不是数据多了一个特征.
  • 超定方程组不存在解. 误差是难免的. (4) 式理论上使得误差最小.
  • 系数 λ \lambda λ 的大小表示对过拟合的控制强度.
  • 从一元线性回归来看, 误差不是点到拟合直线的距离, 而是 y i y_i yi f ( x i ) f(x_i) f(xi) 的差值.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值