《速通机器学习》-第2章 线性回归

本文详细介绍了机器学习中的线性回归,包括基本概念、损失函数、梯度下降法、训练集与测试集的划分以及多项式回归。讨论了线性回归在处理不同数据分布时的效果,强调了模型复杂度与数据匹配的重要性,并探讨了特征敏感性和损失函数选择的问题。适合初学者了解线性回归的基础知识和实践应用。
摘要由CSDN通过智能技术生成

(由于知乎平台稿件格式问题,公式格式不能正确写上;如若读写困难可后台私信我要完整电子版)

在企业中,技术人员会将商品的价格、品牌等作为输入来预测商品的销量,甚至通过上市公司的财报、行业信息等来预测公司股票价格的变化。它们的共同点是通过输入来预测输出。在机器学习中,这类业务有一个专门的名字——回归(Regression)。

回归是指通过大量已知数据发现输入 x 和输出 y 的内在关系,并对新的输入进行预测。发现内在关系后,就可以通过它来预测新的输入 x 所对应的输出 y^'。在本章中,我们用 y 表示真实的输出,用 y^' 表示预测的输出。

在使用回归前,需要假设 y^' 和 x 之间的关系类型。这种关系类型称为模型。例如,在 y^'=wx+w_0 中,y^' 和 x 成线性关系(x 的变化按比例影响 y^'),因此该模型也称为线性回归。需要注意的是,y 和 x 之间的关系未必满足我们的假设,它甚至是未知的。

以上只对 y^' 和 x 之间的关系进行了假设,而 w 和 w_0 的值是未知的,因此,需要通过一些方法求解 w 和 w_0。

要想求解 w 和 w_0,首先需要 x 和 y 的一些过往真实数据,例如 (x=3,y=4)、(x=1,y=2.5) 等。这些数据称为训练数据。通过训练数据求解未知的 w 和 w_0 的过程称为学习。学习过程通常是由机器自动进行的,这也是“机器学习”这个词的由来。总之,模型选择是一项人工假设工作,而求解 w 和 w_0 是一个自动定量过程。

当模型训练完毕,w 和 w_0 将对应于已知的数值,例如

y^'=3.2x+1.1

有一个新的输入(可以是从未在训练数据中出现的),就可以计算相应的 y^',这个过程称为预测。

在使用回归时,y^' 和 x 之间的对应关系不仅可以假设成 y^'=wx+w_0 这种简单的线性形式,也可以由诸如 y^'=w_1 x^2+w_2 x+w_0 这种复杂的形式来表示。形式越复杂,模型蕴含的 x 和 y^' 之间的关系就越复杂,捕捉 x 和 y 之间的关系的能力就越强。但是,复杂的模型会带来一些负面效应,本书后续会进行系统的论述。

2.1 线性回归的基本概念

当输入为1维数据时,线性回归模型如下式所示。

y^'=wx+w_0

显然,此时线性回归在平面上对应于一条直线,这也是“线性回归”名称的由来。

线性回归模型在平面上对应的直线,如图2-1所示。

图2-1

w_0 也称作偏置项。尽管它和输入并无直接关系,但它有重要的作用。如果没有 w_0,那么直线 y^'=wx 必须经过原点,而这极大地限制了模型的能力。

更为一般的情况是,线性回归模型往往是多输入(m 个输入)的。此时,线性回归可以由下式表示。

y^'=w_1 x_1+w_2 x_2+⋯+w_m x_m+w_0

为了简化书写,上式通常可以表示成矩阵相乘的形式。

y^'=w^T x+w_0

其中

有了线性回归模型 y^'=w^T x+w_0,就可以利用训练数据计算模型中的未知参数 w=[w_1,⋯,w_m ]^T 和 w_0 了。

已知数据 〖{x_((i)),y_((i))}〗_(i=1)^N(训练样本)是客观事实。样本数据 x_((i)),y_((i)) 都是成对出现的,

角标 (i) 表示第 i 个训练样本。训练样本一般是通过收集已经发生的事件数据得到的,例如人工标注数据、互联网公司产生的大量日志。

如果输入 x 可以通过运算得到 y^'=w^T x+w_0,那么 y^' 和真实的 y 越接近,w 和 w_0 就越合理,也就是我们越想要的。

有些读者可能会问:是否能够通过解方程的方法求解 w 和 w_0 呢?在这里,我们简单讨论一下。例如,通过已知数据,可以得到如下方程组。

在这里,w_0,w_1,⋯,w_m 为未知数。从数学的角度看,这是一个典型的多元一次方程组。多元一次方程组的求解比较简单,本书不再赘述。然而,在机器学习场景中,解方程本身会遇到以下问题。

训练样本量通常很大(例如,互联网公司的日志数据量往往都以GB为单位计),这意味着可能有海量的方程。这些方程之间往往存在矛盾,很难协调。而如果采用矩阵的形式求解方程,则涉及百万维的矩阵运算,这对算力、机器配置等提出了巨大的挑战,中小型公司通常无法承担。

在线性回归中,因为对应的是多元一次方程,所以方程尚有解析解。但是,模型远不止线性回归一种,当模型非常复杂时,例如

y^'=1/(1+e^(〖-(w〗^T x+w_0)) )

就很难找到有效的解析解了。即使有了解析解,也需要“特事特办”,为每种模型设计一套特有的方法,而这对机器学习的大规模普及和应用是不利的。

在互联网公司中,数据量往往非常大。例如,以过去半年的日志作为训练样本是非常困难的(因为如此规模的数据很难被一次性加载到机器中)。但是,在解方程时需要加载全部数据,这对实操性提出了不小的挑战。

综合上述三个原因,在机器学习领域,很少会采用解方程的方法求解模型的未知参数。为了顺利求解模型参数 w 和 w_0,梯度下降法诞生了。

2.2 损失函数和梯度下降法

首先,让训练数据图形化。当 x 是1维数据时,{x,y} 为二维坐标系中的一个点。训练样本在该坐标系中对应于若干散点,每个点都代表一个样本,如图2-2所示。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值