首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

简单的线性回归入门

这是菜鸟学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(palette="muted",color_codes=True)

sns.pairplot(boston_df,vars=['RM','Target'])

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

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

4.简单线性回归

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

2).构建线性模型

3).看一下预测分数

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

结论:

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

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

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180115G02U1R00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券