单变量线性回归算法分析及python源码

本文深入解析单变量线性回归算法,通过实例演示如何利用梯度下降法找到最佳拟合直线,包括代价函数的概念、梯度下降算法的实现及Python代码实践。

      说明:本博客中的分析思路、举例、部分插图等均来源于吴恩达教授在斯坦福大学公开课《机器学习》中的讲解内容!

一、概述

单变量线性回归算法属于监督学习的一类,所谓回归是指我们根据之前的数据预测一个较为准确的输出值。即我们给算法一定的训练集,训练集中的每一个训练样本均为“正确答案”,算法通过对训练集的学习而建立起合适的模型用以预测新的输入值对应的输出值。

二、从一个例子说起

在斯坦福公开课中,通过这么一个例子引入单变量线性回归算法的问题,即“根据房子面积预测房子售价”。如图2.1所示,我们已知一组数据集,数据集中的数据描述了房屋面积与价格的对应关系,且该数据集中的每一个样本都是正确的。我们现在要做的就是根据已有训练集去建立起一个合适的模型,让我们可以通过这个模型去预测一些数据集中所没有的房屋面积对相应的房屋价格。在单变量线性回归算法中,这个所谓的“模型”便是一条“一元一次方程”直线。因此,通俗的讲,我们要做的就是寻找一条与已有数据集尽量拟合的一元一次方程。这里要提到一点,所谓“回归”与“拟合”并不完全等同,但作为初学者来说难以对两者进行明确的区分,且个人认为,在初学阶段,用“拟合”来帮助理解“回归”并无不妥。至于两者间的区别可参考文章线性回归中“回归”的含义,文章作者从历史发展的角度解读了“拟合”与“回归”。

图2.1  面积-价格对应离散图

 

三、获得模型的宏观过程

根据上述可以知道,我们所要建立的模型形式为一元一次方程,我们不妨将其设为h(x)=θ0+ θ1 *x,h(x)称为“假设(hypothesis)”,也就是我们要求的模型。设置好假设形式后,我们从更宏观的角度看一下我们得到最终h(x)的整个过程。如图3.1所示,我们将训练集(Training Set)输入学习算法(Learning Algorithm),经过训练之后得到假设h(x)。然后,我们便可通过假设h(x)对其他面积的房屋价格进行预测。

图3.1  宏观过程

 

四、对“假设”拟合程度的考察——代价函数(cost function)

在二维平面上有着无数条一元一次方程直线,那么该如何判断哪条直线是最合适、是跟训练集拟合程度最高的呢?这里就引入了“代价函数”的概念。顾名思义,一条直线的代价函数所描述的是“用这条直线代替训练集中的点后引起的误差”,我们将这个“误差”称为“代价”。

我们首先引入代价函数的形式,再对代价函数进行分析。代价函数形式如图4.1。

图  4.1 代价函数的形式

图中,x^(i)代表训练集中第i个样本的输入值,y^(i)代表训练集中第i个样本的输出值,hθ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值