知行编程网知行编程网  2022-03-12 17:00 知行编程网 隐藏边栏 |   抢沙发  101 
文章评分 0 次,平均分 0.0

这是菜鸟学Python的第133篇原创文章

阅读本文大概需要3分钟

菜鸟独白

前面介绍完了knn算法(小白入门最简单的机器学习算法),算是机器学习里的Hello World. 机器学习还有好多好多算法,监督学习算法里面有两大类,一类是分类,一类是回归!回归更有趣,可以做很多事情比如数据的预测,这个很牛逼啊!今天我们通过对美国波士顿的房价数据,来学习一下最最简单的线性回归算法。


怎么玩呢:

  • 了解波士顿房价数据

  • 分析数据的特征值

  • 可视化数据

  • 选择线性回归模型来训练数据

  • 测试模型的准确性



1.什么是线性回归

线性回归一般用来解决连续值变量预测问题,针对的是数值型的样本。用来探索自变量和因变量之间是线性相关关系。今天我们介绍入门级别的简单线性回归算法(也叫一元线性回归),何为简单线性回归呢,说白了就是样本特质只有一个值.


比如我们有一份房屋面积和价格的数据,很明显自变量(面积)和因变量(房价)是强相关的,房屋的面积为x,房价为y,这里会有一个方程:y=ax+b


线性回归就是指利用样本(已知数据),产生拟合方程,回归的求解就是求这个回归方程的回归系数。一旦我们得到了这个方程,预测的方法当然十分简单,回归系数乘以输入值再全部相加就得到了预测值。

预测波士顿的房价|简单的线性回归入门(文末中奖名单)


既然是要找出一个最佳的拟合线,就是求解线性回归方程,我们喂给机器一堆数据,只要能解析出a和b就可以了!a术语叫斜率,b叫截距.只要我们拿到了a,b就可以画出直线,也就可以预测数据了,下面我们通过一个实例来讲解!



2.导入波士顿房价的数据

1).房价问题是一个热门的话题

通过机器学习算法可以对房价进行预测的,今天我们来看一组美国波士顿房价的数据集。这个数据集是sklearn里面的默认数据集,非常有趣,我们直接导入即可.

预测波士顿的房价|简单的线性回归入门(文末中奖名单)


2).数据的大概情况

一共有506套房屋的数据,每个房屋有13个特征值

预测波士顿的房价|简单的线性回归入门(文末中奖名单)

这个13个特征值很有意思,比如下面几个:

  • CRIM:城市的人均犯罪率

  • ZN:住宅用地的比例

  • INDUS:城镇中非住宅用地的所占比例

  • RM:每个房子的房间数

  • DIS:距离5个波士顿的就业中心的距离

  • B:城镇的黑人比例

  • LSTAT:低收入房东的比例


看一下数据集

预测波士顿的房价|简单的线性回归入门(文末中奖名单)


预测波士顿的房价|简单的线性回归入门(文末中奖名单)


3.分析数据并可视化

也就是说有13个变量决定了房子的价格,我们需要先探索一下这些变量和房屋价格的相关行:

预测波士顿的房价|简单的线性回归入门(文末中奖名单)

我们发现相关系数最高的是RM高达0.69.也就是说房间数和房价是强相关性.


用sns可视化房间数和房屋价格的图

sns.set(<span style="color:#aa4926;">palette</span><span style="color:#f92672;">=</span><span style="color:#a5c261;">"muted"</span><span style="color:#cc7832;">, </span><span style="color:#aa4926;">color_codes</span><span style="color:#f92672;">=</span><span style="color:#66d9ef;font-style:italic;">True</span>) <br  />sns.pairplot(boston_df<span style="color:#cc7832;">, </span><span style="color:#aa4926;">vars</span><span style="color:#f92672;">=</span>[<span style="color:#a5c261;">'RM'</span><span style="color:#cc7832;">, </span><span style="color:#a5c261;">'Target'</span>])

我们放大看一下房间 vs 房价的关系图

预测波士顿的房价|简单的线性回归入门(文末中奖名单)

最上面的50万美金的房价的数据点特别密集,构成了一条直线,估计是数据集采集的时候,大于50W都写50W,下面我会处理一下这块数据.



4.简单线性回归

1).去掉一些脏的数据,比如50W美金的数据

预测波士顿的房价|简单的线性回归入门(文末中奖名单)

2).构建线性模型

预测波士顿的房价|简单的线性回归入门(文末中奖名单)


3).看一下预测分数

预测波士顿的房价|简单的线性回归入门(文末中奖名单)

这个模型的准确率只有74.5%,然后我们得到的13个相关系数,发现相关性最强的是第5个,这个就是RM,也就是房间数.


结论:


好,简单线性回归就讲到这样,机器学习的难度比爬虫和数据分析要大很多,小伙伴学的时候要有耐心,虽然是简单的套用公式,但是对算法本身的理解其实非常重要,至少我觉得线性代数一定要恶补一下。


衡量线性回归有误差有很多方法:比如均方误差,均方根误差和和平均绝对误差.这些背后全部都是公式,而简单线性回归模型后面还有多项式回归,逻辑回归,路漫漫其修远兮,吾将上下而求索,我们继续加油!


中奖名单

另外上次送上留言有近500份的留言,小程序抽中奖的同学,目前只有一位给我的快递地址,如果到周二(1/16)中午12:00前还是没有跟我联系,我会把机会直接挪给上次留言区的小伙伴.

预测波士顿的房价|简单的线性回归入门(文末中奖名单)




欢迎加入小密圈

跟我一起玩数据分析


 推荐阅读:

2017年度电影榜单出炉

双十二来了,我爬取了淘宝上所有的羽绒服

探秘全国近1600个Python岗位数据分析

学好Python薪水有多少|我爬取了所有的Python职位

一份值得了解的Google Python风格规范指南

南京楼市火吗|16000套二手房数据分析

5分钟带你了解Python2和3的区别|从此不再纠结

本篇文章来源于: 菜鸟学Python

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享