美文网首页AI
我对线性回归算法的理解

我对线性回归算法的理解

作者: AnuoF | 来源:发表于2018-08-28 22:12 被阅读0次

概述

本文旨在简明扼要的阐述我对线性回归算法的理解,线性回归是属于监督学习,根据其特征取值可分为一元线性回归和多元线性回归,本文主要以一元线性回归为主。

首先,插播一则小广告(本人笔名由以前的Allen改为Anuo.)谢谢!

例子

假设您要出售一套房子,您想预测下到底能买多少钱?您从中介那里得到一些房价信息,我们拿到的数据如下: 在图表上画出的效果如下:

我们的目标就是要找出如上图的红色线条函数,让它尽可能的拟合实际的数据,这样我们就可以预测出房子大小x时可卖y刀啦。

上面从中介那里得到的数据就是我们的训练集,我们希望通过它来预测,当房子大小为x时能买多少钱y。所以,我们的假设函数如下:

根据上面的训练数据,可以推导出:
x=852时,y=178
x=1416时,y=232
以此类推,我们的最终目标就是通过这些训练数据,找到θ_0 和θ_1 的取值,来确定我们的线性函数,这个过程就叫线性拟合。那么如何进行线性拟合呢?

模型

线性回归中我们要解决的是最小化的问题,上面说了,我们的目标是要找到θ_0和θ_1的取值,来使我们的预测值ℎ𝜃 (x)最接近真实值y,所以需要得到的是ℎ𝜃 (x) − y的值最小,公式如下:

进一步演变公式:

其中,m为训练集样本数,1/2𝑚是我们要尝试尽量减少平均误差,只是为了数学更直白一点。因此对这个求和值的二分之一求最小值,应该得出θ_0和θ_1的值来。

简单地说,我们要做的就是找到能使训练集中预测值和真实值的差的平方和的1/2m最小的θ_0和θ_1的值,这就是线性回归的整体目标函数。最终得到我们的代价函数如下:

代价函数

假设θ_0 =0,那么我们的公式就得以简化,如下图所示:

假设我们的训练集为(1,1),(2,2),(3,3)…

我们假设θ_1=1,套用公式: 假设θ_1=0.5,套用公式:

假设θ_1=0,继续套用公式,可以得到J(0)=2.3,以此类推,根据假设值我们可以得到若干个点,(0,2.3),(0.5,0.58),(1,0)... 可以画出如下所示的图形:

如上图所示,每一个θ_1 的取值都对应着一条hθ(x) 函数直线,如上图所示,当θ_1=1时J(θ1) 的值最小,且刚好与我们的训练集重合,完美的拟合了训练数据。

当我们只有一个参数θ_1时,我们画出的图形是一个二维的平面碗状图形,当我们有两个参数θ_0和θ_1时,我们的代价函数的图形就变成如下图形:

这是一个3D曲面图,坐标为𝜃_0和𝜃_1,曲面的高度就是J(θ0, θ1)的值,当取不同的𝜃_0和𝜃_1值时,可以得到对应的J(θ0, θ1)的值。

如何得到𝜃_0和𝜃_1的值呢?我们可以采用梯度下降法。

梯度下降

梯度下降的算法为重复以下算法直到收敛:

其中 := 为赋值,𝛼为学习率,𝜕/𝜕𝜃𝑗求𝐽(𝜃0, 𝜃1) 的偏导。

学习率相当于步进,决定收敛算法的快慢,学习率较小,则收敛速度较慢,学习率较大,则收敛速度较快,但如果学习率过大,则可能导致发散而无法收敛。

线性回归与梯度下降

前面我们已经得到线性回归模型和梯度下降算法,这里将介绍如何结合两者,产生机器学习的第一个算法线性回归算法。

根据已得到的模型,进行如下推导:

采用多元微分法可得到j=0(𝜃_0)和1(𝜃_1 )时的偏导函数如下:

最终,我们得到线性回归梯度下降算法如下:

结束

好啦,以上是最基本、最简单的线性回归算法,本文注重理论,可能稍显枯燥,后面我会继续分析算法的优化,多元线性回归,并结合实例进行阐述。

让人遗憾的是,简书不支持数学公式,所以我大部分地方是从我的word文档里面贴图过来的,花费我大量的时间不说,可能有些地方难免会失去数学本来的味道。

写这篇文章的目的,一是帮助自己加深对机器学习算法的理解;二是很希望能帮助到需要的同学,大家共同进步。
本人知识水平有限,如有错误之处,还请不吝斧正。

致谢:Andrew Ng发布的教学视频和资料。

Anuo.
成都
Aug 28,2018

相关文章

  • 回归算法学习

    回归算法是机器学习中的经典算法之一,本文是对学习线性回归和逻辑回归算法进行的总结,线性回归与逻辑回归算法解决的分别...

  • 我对线性回归算法的理解

    概述 本文旨在简明扼要的阐述我对线性回归算法的理解,线性回归是属于监督学习,根据其特征取值可分为一元线性回归和多元...

  • 《机器学习实战》笔记(八):Ch8 - 预测数值型数据:回归

    第八章 预测数值型数据:回归(代码) 线性回归算法的优缺点优点:结果容易理解,计算上下不复杂缺点:对非线性问题数据...

  • 机器学习系列(十一)——线性回归Linear Regressio

    线性回归算法 和knn算法不同,线性回归算法主要用于解决回归问题,它同样思想简单,实现容易,而且是许多强大的非线性...

  • 线性回归

    线性回归是机器学习算法的入门,通过该算法,管中窥豹,研究该算法的精髓之处。 线性回归 线性回归的损失函数为最小二乘...

  • 机器学习算法总结

    回归算法 线性回归算法: 支持向量机&向前逐步回归&惩罚线性回归(岭回归/套索回归/ElasticNet/最小角度...

  • task1

    线性回归 反向传播算法 什么叫反向传播,有没有直观理解? 如何直观地解释 backpropagation 算法? ...

  • 线性模型

    线性回归模型有两种理解角度1、多元线性回归1)最小二乘法2)大似然估计2、算法常用的方法3、岭回归,lasso回归...

  • 2019-10-29

    Day2 简单线性回归模型 机器学习入门--简单线性回归机器学习算法之线性回归算法 导入库matplotlib 绘...

  • 通俗地说逻辑回归【Logistic regression】算法(

    在说逻辑回归前,还是得提一提他的兄弟,线性回归。在某些地方,逻辑回归算法和线性回归算法是类似的。但它和线性回归最大...

网友评论

    本文标题:我对线性回归算法的理解

    本文链接:https://www.haomeiwen.com/subject/iuxcwftx.html