线性回归模型

线性回归

一、理论部分

线性回归:在有限的数据中,通过调整参数,来拟合出一条直线,并以此直线(模型)来对未知的数据进行预测

直线的一般形式
y = w × x + b y = w \times x + b y=w×x+b
其中整个直线的状态由 w 和 b w和b wb决定, w w w决定直线的斜率(也就是倾斜角度), b b b决定直线在Y轴上的截距(控制直线的上下平移,也称为偏置)。因此,我们只需要计算出 w w w b b b的值即可确定出一条具体的直线,接下来研究如何找到 w w w b b b

在这里插入图片描述

w和b对直线形状的影响

专有名词

名词 释义
训练集 用于训练模型的数据集
测试集 用于检验模型的质量的数据集
训练样本/训练点(Training Sample) 训练集中的每一项数据
特征(Features) 输入到模型中的数据,可以是数值、类别标签、图像像素值等。
标签(Label) 模型需要预测的目标值。对于分类问题,标签通常是类别名称;对于回归问题,标签则是一个连续值。

1. 单变量线性回归

1)数据预处理

我们先研究单变量线性回归,所谓单变量线性回归是指只有一个自变量的一次函数,如: y = w ⋅ x + b y = w\cdot x +b y=wx+b即为单变量直线,只具有一个输入变量 x x x。该直线可以表示在二维平面上(横轴为X,纵轴为Y)。

在拿到一组未划分的数据时,我们通常会将数据分为训练集与测试集,一个简单的划分方式是:取样本的前80%作为训练集,剩余20%作为测试集。

2)定义代价函数

假定我们已经求出来了 w w w b b b,那么我们就确定了一条直线,就可以使用该直线进行预测了,为了方便判断我们所预测出来的值y’与真实的值y之间的误差是多少,我们要定义*“一把尺子”*,用于衡量预测值 y ′ y' y与真实值 y y y之间的误差。这里我们使用均方误差来定义代价函数

J ( w , b ) = 1 2 m ∑ i = 1 m ( f w , b ( x ( i ) ) − y ( i ) ) 2 J(w,b) = \frac{1}{2m}\sum\limits_{i = 1}^m(f_{w,b}(x^{(i)}) - y^{(i)})^2 J(w,b)=2m1i=1m(fw,b(x(i))y(i))2
公式拆解

f w , b ( x ( i ) ) − y ( i ) f_{w,b}(x^{(i)}) - y^{(i)} fw,b(x(i))y(i):其中 f w , b ( x ( i ) ) f_{w,b}(x^{(i)}) fw,b(x(i))代表了使用训练好的模型预测得到的值,而 y ( i ) y^{(i)} y(i)代表了每一个训练样本的真实结果,这两者的差值表示了模型预测得到的值与真实的值之间的误差。

为什么要将误差进行平方?

在所有样本集中,每一个误差可能为正数也可能为负数,进行求和的过程中会有一定概率抵消,这样做会导致在每一项的误差都很大时(如:-100,+90,-25,+30),进行求和之后得到一个小的值(-5),最终得出一个错误的判断。

1 2 m \frac{1}{2m} 2m1:代表了对所有数据误差之和取平均值(这个平均值从某种意义上来讲可以代表整个模型的误差),得到均方误差。

为什么要除以2

因为在后面进行梯度下降的时候,求导会将指数2给划分到系数上,因为对于大量的数据而言,一个常数对模型的影响不大,为了求导公式的简介,这里提前除以2,以便之后的抵消。

知道了代价函数,只需要想办法将代价降低即可,代价越低,说明我们预测的值与真实的值越接近。

通过观察误差成本函数,可以看到误差成本函数是一个二次函数,即是一个凸函数,凸函数的一个性质是:极值点就是最值点,由于代价函数是一个开口向上的二次函数(可以将公式进行展开,能够直观的感受到平方项的系数是大于0的),因此该凸函数只具有最小值,我们只需要找到代价函数的极小值就得到了最小值。对于误差成本函数 J ( w , b ) J(w,b) J(w,b) , 其公式展开可以写为:
J ( w , b ) = 1 2 m ∑ i = 1 m ( ( w x ( i ) + b ) − y ( i ) ) 2 J(w,b) = \frac{1}{2m}\sum\limits_{i = 1}^m((wx^{(i)}+b) - y^{(i)})^2 J(w,b)=2m1i=1m((wx(i)+b)y(i))2
J J J的大小取决于参数 w w w b b b,这可以通过梯度下降的方法进行求解,代价函数的形状大致如下:

在这里插入图片描述

3)梯度下降

梯度下降的思想,主要运行了求偏导的方法,这与生物学上的控制变量的方法很相似,如:在控制 b b b不变的情况下去更新 w w w(可视 b b b为常数),公式: w ′ = w − α ∂ J ( w ) ∂ w w' = w - \alpha \frac{\partial J(w)}{\partial w} w=wαwJ(w) 表示依次更新了 w w w,其中 α \alpha α 代表了学习率 用于表示步长,也可以理解为下降的速度, ∂ J ( w ) ∂ w \frac{\partial J(w)}{\partial w} wJ(w) 表示对 w w w求偏导,得到的是 W − J W - J WJ(权重W与代价J的函数) 凸函数上的一个切线,用于表示函数值下降最快的方向,这两者的乘积表示向函数值下降最快的方向进行移动一个步长。这个距离需要依据数据集进行调整,如果 α \alpha α过大(步长过大),会导致 w w w直接越过最低点而到另一端的高点,以至于永远无法接近最小值,如果 α \alpha α过小(步长过小),会导致 w w w接近最小值时越来越慢,消耗计算成本。


学习率( α \alpha α)的调整方法

  1. 先设置一个较小的 α \alpha α 如:0.001 。

  2. 然后每次增加10倍,最大为1。

  3. 确定某一值后,如:0.01。

  4. 再进行3倍的处理,如: 0.01 × 3 = 0.03 , 0.03 × 3 = 0.09 0.01 \times 3 = 0.03 , 0.03 \times 3 = 0.09 0.01×3=0.03,0.03×3=0.09 (这样做的目的是使收敛的速度更快)。


求解偏导数的过程(寻找梯度下降的方向):

  • ∂ J ( w ) ∂ w \frac{\partial J(w)}{\partial w} wJ(w) :

    ∂ J ( w ) ∂ w \frac{\partial J(w)}{\partial w} wJ(w) = ∂ ∂ w 1 2 m ∑ i = 1 m ( f w , b ( x ( i ) ) − y ( i ) ) 2 \frac{\partial}{\partial w}\frac{1}{2m}\sum\limits_{i = 1}^{m}(f_{w,b}(x^{(i)}) - y^{(i)})^2 w2m1i=1m(fw,b(x(i))y(i))2

    ​ = ∂ ∂ w 1 2 m ∑ i = 1 m w x ( i ) − y ( i ) ) 2 \frac{\partial}{\partial w}\frac{1}{2m}\sum\limits_{i = 1}^{m}w x^{(i)} - y^{(i)})^2 w2m1i=1mwx(i)y(i))2

    ​ = 1 2 m ∑ i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值