新年过后,小编就已进入机器学习旅程,经过大约一周的学习,学习了机器学习中最经典的模型:线性回归模型(LinearRegression)。今天小编就通过波士顿房价预测这个项目向大家介绍线性回归模型。
一、线性回归模型介绍
分析按照自变量和因变量之间的关系类型,可分为线性回归分析和非线性回归分析。如果在回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。
在波士顿房价预测中,有三个自变量:住宅平均房间数量、社区中低收入人群占比、镇上学生和老师的比例。故此为三元线性关系。
设房价y和三个自变量x1、x2、x3之间的关系如下
上面的公式在线性回归模型中,通常被称为假设,现在我们的任务就是求出公式中的未知参数θ。
二、梯度下降算法
怎样求出参数θ呢,小编在这里介绍 Gradient Descent算法。在梯度下降算法中首先有一个评价函数(cost function),在这里小编不证明的给出评价函数。
我们的任务就是求出θ,使得J(θ)最小。在Gradient Descent算法中,利用沿着梯度(偏微分)是下降最快的方向,这样经过有限步一定能达到全局最小值,即J(θ)最小。
每次下降的公式如下,其中α为学习速率:
为了能在计算机上执行,必须计算出上式的偏微分,计算结果如下:
三、编写代码
大家可以利用上述的知识一步一步的实现,也可以利用sklearn库的LinearRegression类来实现。为了让大家更好的理解Gradient Descent算法,小编附上自己写的Gradient Descent算法代码。
四、实验结果
小编一共有489个房价信息作为数据集,将数据集按8:2的比例分为训练集和测试集。在训练集上训练模型,并用测试集量化模型的拟合程度。
训练集散点图和训练集拟合效果图如下
测试集散点图和测试集拟合效果图如下
领取专属 10元无门槛券
私享最新 技术干货