机器学习 | 回归算法原理——多重回归

Hi,大家好,我是半亩花海。接着上次的多项式回归继续更新《白话机器学习的数学》这本书的学习笔记,在此分享多重回归这一回归算法原理。本章的回归算法原理基于《基于广告费预测点击量》项目,欢迎大家交流学习!

目录

一、多重回归概述

二、案例分析

1. 设置问题

2. 定义模型

3. 多重回归


一、多重回归概述

多重线性回归模型即描述一个因变量 Y 如何随多个自变量 X 的改变而改变。假定对 n 例观察对象逐一测定了因变量 Y 与 m 个自变量 X_1, X_2, \ldots, X_m 的数值,多重线性回归模型的一般形式为:

Y=\beta_0+\beta_1 X_1+\beta_2 X_2+\cdots+\beta_m X_m+e

式中,\beta_0 为常数项,又称截距。\beta_1, \beta_2, \ldots, \beta_m 称为偏回归系数,或简称回归系数。e 则是去除 m 个自变量对 Y 的影响后的随机误差,即残差。


二、案例分析

1. 设置问题

之前我们是根据广告费来预测点击量的,但实际中要解决的很多问题是变量超过2个的复杂问题。对于上一节的“多项式回归”问题,里面确实会涉及不同次数的项,但是使用的因变量依然只有广告费一项。比如,决定点击量的除了广告费之外,还有广告的展示位置广告版面的大小等多个要素。

2. 定义模型

为了让问题尽可能地简单,这次我们只考虑广告版面的大小,设 广告费为 x_1、广告栏的宽为 x_2、广告栏的高为 x_3,那么 f_\theta 可以表示如下:

f_\theta\left(x_1, x_2, x_3\right)=\theta_0+\theta_1 x_1+\theta_2 x_2+\theta_3 x_3

接下来,思路和之前相同,分别求目标函数对 \theta_0, · · · , \theta_3偏微分,然后更新参数即可。但在实际去求偏微分之前,我们可以先试着简化表达式的写法。

刚才我们说有 x_1, x_2, x_3 共 3 个变量,下面我们把它推广到有 n 个变量的情况。这时候 f_\theta 会变成什么样子呢?

f_\theta\left(x_1, \cdots, x_n\right)=\theta_0+\theta_1 x_1+\cdots+\theta_n x_n

不过每次都像这样写 nx 会比较麻烦,所以我们还可以把参数 \theta 和变量 x 看作向量

为了确保参数 \theta 和变量 x 的维度相同,我们可以在变量 x 的向量一开始加上1,如此会显得更自然。

\boldsymbol{\theta}=\left[\begin{array}{c} \theta_0 \\ \theta_1 \\ \theta_2 \\ \vdots \\ \theta_n \end{array}\right] \quad \boldsymbol{x}=\left[\begin{array}{c} 1 \\ x_1 \\ x_2 \\ \vdots \\ x_n \end{array}\right]

\theta 的下标是从 0 开始的,为了与其相配合,设 x_0 = 1,让 x 的第一个元素为 x_0 会更加整齐。

\boldsymbol{\theta}=\left[\begin{array}{c} \theta_0 \\ \theta_1 \\ \theta_2 \\ \vdots \\ \theta_n \end{array}\right] \quad \boldsymbol{x}=\left[\begin{array}{c} x_0 \\ x_1 \\ x_2 \\ \vdots \\ x_n \end{array}\right] \quad\left(x_0=1\right)

\theta 转置后计算它与 x 相乘的结果,即计算 \boldsymbol{\theta}^{\mathrm{T}} \boldsymbol{x} (运用线性代数的知识将二者相应的元素相乘,然后全部加起来),结果如下,最终发现和上述的 f_\theta\left(x_1, \cdots, x_n\right) 的表达式结果一致。

\boldsymbol{\theta}^{\mathrm{T}} \boldsymbol{x}=\theta_0 x_0+\theta_1 x_1+\theta_2 x_2+\cdots+\theta_n x_n

换句话说,之前用多项式表示的 f_\theta,可以像下面这样用向量来表示。虽然我们说的是向量,但实际在编程时只需用普通的一维数组就可以了。

f_{\boldsymbol{\theta}}(\boldsymbol{x})=\boldsymbol{\theta}^{\mathrm{T}} \boldsymbol{x}

3. 多重回归

接下来我们就使用 f_\theta(x) 来求参数更新表达式吧,方法与之前一样:

设 u=E(\boldsymbol{\theta})v=f_{\boldsymbol{\theta}}(\boldsymbol{x}) 的部分是一样的。为了一般化,我们可以考虑对第 j 个元素 \theta_j 偏微分的表达式,如下所示。

uv 微分的部分是一样的,详情移步上一节《机器学习 | 回归算法原理——最速下降法(梯度下降法)-CSDN博客》,即对 \frac{\partial u}{\partial v}=\frac{\partial}{\partial v}\left(\frac{1}{2} \sum_{i=1}^n\left(y^{(i)}-v\right)^2\right) 这一部分的微分,所以接下来只需要求 v\theta_j 的微分即可。

\begin{aligned} \frac{\partial v}{\partial \theta_j} & =\frac{\partial}{\partial \theta_j}\left(\boldsymbol{\theta}^{\mathrm{T}} \boldsymbol{x}\right) \\ & =\frac{\partial}{\partial \theta_j}\left(\theta_0 x_0+\theta_1 x_1+\cdots+\theta_n x_n\right) \\ & =x_j \end{aligned}

那么第 j 个参数的更新表达式如下:

\theta_j:=\theta_j-\eta \sum_{i=1}^n\left(f_{\boldsymbol{\theta}}\left(\boldsymbol{x}^{(i)}\right)-y^{(i)}\right) x_j^{(i)}

我们之前还给每个 \theta 都写了更新表达式,现在它们可以汇总为一个表达式,像这样包含了多个变量的回归称为多重回归。如此看来,可以基于一般化的思路来思考问题正是数学的优点。

  • 15
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半亩花海

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值