机器学习之线性回归

机器学习之线性回归

本文参考吴恩达机器学习网课,以房价预测问题为实例分析,整理成为笔记,如有错误,感谢大家批评指正!

学习目标

- 掌握机器学习中线性回归的相关算法其中包括单变量线性回归、多变量线性回归
- 了解模型构建的过程
- 理解梯度下降算法

线性回归

回归问题属于机器学习中的监督学习部分,监督学习包括:
  1. 回归问题
  2. 分类问题

单变量线性回归

从模型构建过程入手:


首先准备训练数据集,将特征作为自变量,通过假设函数 h ( x ) h(x) h(x)对输出进行预估得到 y y y,与准备的数据集中对应的 y y y两者比较通过合适的方式构造代价函数(即Lost Function)。

以预测房价为例,假设评判放假的标准只有一个:房子的大小。我们收集到一批数据分别为房子的尺寸与价格,我们想要根据这批数据判断不同大小房子的价格,以房子的尺寸作为横轴,以房子的价格作为纵轴得到下图:
数据集
自然而然的想到根据数据拟合得到一条直线,这样就可以预测不同尺寸对应的价格了。如果我们想要得到最符合上述条件的一条直线就属于线性回归。表示为: h θ ( x ) = θ 0 + θ 1 x h_\theta(x)=\theta_0+\theta_1x hθ(x)=θ0+θ1x若所提供的数据集,利用直线拟合无法得到最优结果,需要进行非线性回归,即逻辑回归,非线性回归相关内容可以参考我的另一篇博客,这里不再赘述。


损失函数

给定一组 ( θ 0 , θ 1 ) (\theta_0,\theta_1) (θ0,θ1),便可得到一个一条直线,无数个参数组合得到无数条直线,那么如何确定最终的拟合结果呢?这就需要引入损失函数(Loss Function)(与上文中提到的代价函数是等价的)

在这里插入图片描述

给定一个假设函数 h ( x ) h(x) h(x)分别计算训练集提供的尺寸所对应的价格对于,每一个 x i {x^i} xi得到 h ( x i ) h(x^i) h(xi)与提供的 y i y^i yi存在偏差,构造计算两者偏差的函数就得到损失函数,我们选取最优拟合直线的原则就是确定合适的 θ 0 , θ 1 \theta_0,\theta_1 θ0,θ1使得损失函数 J ( θ 0 , θ 1 ) J(\theta_0,\theta_1) J(θ0,θ1)最小。
J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m [ h ( x i ) − y i ] 2 J(\theta_0,\theta_1)=\frac{1}{2m}\sum_{i=1}^m [h(x^i)-y^i]^2 J(θ0,θ1)=2m1i=1m[h(xi)yi]2


梯度下降

构造好损失函数后,又迎来一个关键问题,我们该采用什么方法对假设函数中的参数进行更新呢?这里就要引入梯度下降算法的概念。

我们知道函数的一阶导数表示此刻函数图像的变化方向,我们希望每一次更新参数使得函数 J ( θ ) J(\theta) J(θ)的值变小,所以利用导数来更新参数变化是可行的。
下图为梯度下降算法的具体公式:在这里插入图片描述
其中, α \alpha α为学习率,学习率控制参数每次步进的大小。
一般对参数进行初始化例如 θ 0 = 0 , θ 1 = 1 \theta_0=0,\theta_1=1 θ0=0,θ1=1,对该点求参数 θ 1 , θ 0 \theta_1,\theta_0 θ1,θ0的偏导,利用图片中的公式进行更新,参数应该是同步进行更新的。当我们参数选择不同的初始值,可能会得到不同的局部最小值。如下图所示:
在这里插入图片描述

梯度下降算法使用技巧

1. 设置合适的学习率

为了简化运算,我们将上述假设函数简化为过原点的直线,即 h θ ( x ) = θ 1 x h_\theta(x)=\theta_1x hθ(x)=θ1x以此来研究损失函数 J ( θ ) J(\theta) J(θ)最小化的过程,由于只有一个参数进行更新,上述三维图像变成二维图像,自变量为 θ 1 \theta_1 θ1,因变量为 J ( θ 1 ) J(\theta_1) J(θ1)的大小。
在这里插入图片描述

  • 如果学习率 α \alpha α设置的过小:
    梯度下降会变的非常缓慢,从而降低了收敛速度,需要迭代更多的次数。

  • 如果学习率 α \alpha α设置的过大:
    可能会越过局部最小值,甚至会变的发散。在这里插入图片描述
    如上图所示 ,当位于A点时,利用梯度下降的公式进行更新,如果学习率设置的过大,将会越多最小值达到右侧的某个点,如果这个点的斜率即倒数要比A点更大,那么下一次的步长将会更大,周而复始会得到发散的结果。

2. 进行特征尺度变化

假设有两个特征 x 1 , x 2 x_1,x_2 x1,x2,若 x 1 x_1 x1变化范围为 [ 0 , 2000 ] [0,2000] [0,2000], x 2 x_2 x2变化范围为 [ 0 , 1 ] [0,1] [0,1],可以看到两者有很大的差距,利用梯度下降进行同步更新,当 x 1 x_1 x1变化很大时, x 2 x_2 x2变化很小,这样会使得 J ( θ 1 , θ 2 ) J(\theta_1,\theta_2) J(θ1,θ2)图像变得畸形,用等高线表示为:
在这里插入图片描述
而我们进行特征缩放后,可以理解为归一化的过程,是的两个特征变化范围接近,上图右侧使得两个特征都限定在 [ 0 , 1 ] [0,1] [0,1]范围内,这样做的好处是加快收敛速度,减少迭代次数。
注意:特征缩放并不是唯一的,我们可以选择不同的缩放方式,只要不改变原来的变化趋势都可以使用,目的是为了加快在收敛速度,减少迭代次数。


多变量线性回归

在这里插入图片描述
上面研究的一直是利用一个特征预测房价,实际上对于房价的影响是多方面的,房子的新旧、层数、卧室的数目等都会对房价产生影响,如果仍然希望利用直线进行拟合,这就要引入多变量线性回归,假设函数变为: h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ n x n h_\theta(x)=\theta_0+\theta_1x_1+\theta_2x_2+...+\theta_nx_n hθ(x)=θ0+θ1x1+θ2x2+...+θnxn这里 n = 4 n=4 n=4。多变量线性回归仍然是线性回归,因此寻找最优拟合直线的过程与单变量线性回归一致,我们回顾一样单变量线性回归的研究过程:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值