首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >机器学习第3天:预测汽车的燃油效率

机器学习第3天:预测汽车的燃油效率

作者头像
K同学啊
发布于 2020-08-05 07:33:47
发布于 2020-08-05 07:33:47
51400
代码可运行
举报
运行总次数:0
代码可运行

文章目录
  • 一、具体实现步骤
    • 1.导入数据
    • 2.探究数据关系
    • 3.提取数据
    • 4.拆分数据
    • 5.训练模型
  • 二、可视化结果展示
    • 1.训练集
    • 2. 测试集
    • 3.计算模型得分
  • 三、多元线性回归
    • 1.训练模型
    • 2.计算得分
    • 3.可视化预测结果


写在前面: 这篇文章将通过线性回归模型预测汽车的燃油效率,文本所用到的数据以及代码可根据文末的联系方式向我索取

一、具体实现步骤

1.导入数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pandas as pd
import matplotlib.pyplot as plt

cars = pd.read_csv('../data/auto-mpg.data',names=["燃油效率","气缸","排量","马力","重量","加速度","型号年份","编号","原产地"],delim_whitespace = True)
cars.head()

2.探究数据关系

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np
import matplotlib.ticker as ticker
#删除horsepower值为'?'的行
cars = cars[cars.马力 != '?']
#设置中文显示
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']

#用散点图分别展示气缸、排量、重量、加速度与燃油效率的关系
fig = plt.figure(figsize = (13,10))
ax1 = fig.add_subplot(321)
ax2 = fig.add_subplot(322)
ax3 = fig.add_subplot(323)
ax4 = fig.add_subplot(324)
ax5 = fig.add_subplot(325)
ax1.scatter(cars['气缸'], cars['燃油效率'], alpha=0.5)
ax1.set_title('气缸')
ax2.scatter(cars['排量'], cars['燃油效率'], alpha=0.5)
ax2.set_title('排量')
ax3.scatter(cars['重量'], cars['燃油效率'], alpha=0.5)
ax3.set_title('重量')
ax4.scatter(cars['加速度'], cars['燃油效率'], alpha=0.5)
ax4.set_title('加速度')
ax5.scatter([ float(x) for x in cars['马力'].tolist()], cars['燃油效率'], alpha=0.5)
ax5.set_title('马力')

从上图中可以看出汽车的燃油效率与排量、重量、马力三者都存在一定的线性关系,其中汽车重量与燃油效率线性关系最为明显,下面我们取这二者来构建一元线性回归模型,看看是否能通过汽车重量来预测汽车的燃油效率。

3.提取数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Y = cars['燃油效率']
X = cars['重量']
X = X.reshape(len(X),1)
Y = Y.reshape(len(Y),1)

4.拆分数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from sklearn.model_selection import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=0)

5.训练模型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from sklearn.linear_model import LinearRegression
LR = LinearRegression()
LR = LR.fit(X_train, Y_train)

二、可视化结果展示

1.训练集

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import matplotlib.pyplot as plt

plt.scatter(X_train, Y_train, color='red', alpha=0.3)
plt.scatter(X_train, LR.predict(X_train), color='green', alpha=0.3)
plt.xlabel("重量")
plt.ylabel("燃油效率")  
plt.title("这是训练数据")
plt.show()

2. 测试集

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
plt.scatter(X_test, Y_test, color='blue', alpha=0.3)
plt.scatter(X_train, LR.predict(X_train), color='green', alpha=0.3)
plt.xlabel("重量")
plt.ylabel("燃油效率")
plt.title("这是测试集数据")
plt.show()

3.计算模型得分

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
score = LR.score(cars[['重量']],cars['燃油效率'])
score
"""
得分为:0.6925641006507041
"""

通过汽车重量与燃油效率构建的一元线性回归模型的得分为0.69,上文我们得知汽车的燃油消耗率不仅和汽车重量是线性线性关系,也和汽车排量、马力存在着线性关系。如果采用多元线性回归模型预测效果是否更好呢?

三、多元线性回归

1.训练模型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#初始化模型
mul_LR_model = LinearRegression()
"""
拟合模型
多元线性回归模型的调用相对于一元线性回归,仅需要将X的传入由一个变为多个,即
由:LR_model.fit(cars['重量'], cars['燃油效率'])
变为:LR_model.fit(cars[['重量','马力','排量']], cars['燃油效率'])
"""
mul_LR_model.fit(cars[['重量','马力','排量']], cars['燃油效率'])
#预测
cars['燃料效率预测值'] = mul_LR_model.predict(cars[['重量','马力','排量']])
#显示
cars.head(5)

2.计算得分

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mul_score = mul_LR_model.score(cars[['重量','马力','排量']], cars['燃油效率'])
mul_score
"""
mul_score得分为:0.7069554693444708
"""

多元线性回归模型的得分为0.71相对于一元线性回归模型(0.69分)得分更高,预测效果更好。

3.可视化预测结果

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fig = plt.figure(figsize = (16,8))
ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,2,3)
ax1.scatter(cars['重量'], cars['燃油效率'], c='blue', alpha=0.3)
ax1.scatter(cars['重量'], cars['燃料效率预测值'], c='red', alpha=0.3)
ax1.set_title('重量')
ax2.scatter([ float(x) for x in cars['马力'].tolist()], cars['燃油效率'], c='blue', alpha=0.3)
ax2.scatter([ float(x) for x in cars['马力'].tolist()], cars['燃料效率预测值'], c='red', alpha=0.3)
ax2.set_title('马力')
ax3.scatter(cars['排量'], cars['燃油效率'], c='blue', alpha=0.3)
ax3.scatter(cars['排量'], cars['燃料效率预测值'], c='red', alpha=0.3)
ax3.set_title('排量')
plt.show()
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/08/04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
机器学习第4天:预测1立方米混凝土抗压强度
今天之所以选择这个主题是因为无意间看到另外一个博主做了这方面的预测,上一篇文章不是刚讲到多元线性回归这个点嘛,然后今天本来打算就这个点进行延伸,写一点相关知识点,然后觉得这个案例挺合适的,就准备拿它来进行扩展了。
K同学啊
2020/08/06
1.1K0
【机器学习笔记】:大话线性回归(一)
线性回归作为监督学习中经典的回归模型之一,是初学者入门非常好的开始。宏观上考虑理解性的概念,我想我们在初中可能就接触过,y=ax,x为自变量,y为因变量,a为系数也是斜率。如果我们知道了a系数,那么给我一个x,我就能得到一个y,由此可以很好地为未知的x值预测相应的y值。这很符合我们正常逻辑,不难理解。那统计学中的线性回归是如何解释的呢?
Python数据科学
2018/12/05
1.5K0
kaggle实战-基于机器学习的中风病人预测
基于随机森林、逻辑回归、SVM的中风病人预测 原数据地址:https://www.kaggle.com/datasets/fedesoriano/stroke-prediction-dataset?d
皮大大
2023/08/25
1.7K0
TensorFlow2 开发指南 | 02 回归问题之汽车燃油效率预测
这个专栏我将分享我的 TensorFlow2 学习过程,力争打造一个的轻松而高效的TensorFlow2入门学习教程,想学习的小伙伴可以关注我的动态!我们一起学习,一起进步!
AI菌
2020/10/24
7460
TensorFlow2 开发指南 | 02 回归问题之汽车燃油效率预测
Python3《机器学习实战》学习笔记(十一):线性回归基础篇之预测鲍鱼年龄
版权声明:本文为博主原创文章,未经博主允许不得转载。个人网站:http://cuijiahua.com。 https://blog.csdn.net/c406495762/article/details/78760239
Jack_Cui
2019/05/25
8240
机器学习:基于逻辑回归的分类预测
尽管名为“回归”,逻辑回归实际上是一种分类模型,广泛应用于各个领域。当今社会,深度学习在许多方面已取得了显著成果,使得传统方法相形见绌。然而,正是由于这些传统方法所具有的独特优势,它们依然在各个领域发挥着重要作用。
用户3578099
2023/09/01
5240
机器学习:基于逻辑回归的分类预测
Python二手车价格预测(二)—— 模型训练及可视化
一般的预测任务分为回归任务和分类任务,二手车的价格是一个明确的固定值,因此二手车价格预测是一个回归任务。
吉吉的机器学习乐园
2022/07/13
2.5K1
Python二手车价格预测(二)—— 模型训练及可视化
机器学习算法(一): 基于逻辑回归的分类预测
项目链接参考fork一下直接运行:https://www.heywhale.com/home/column/64141d6b1c8c8b518ba97dcc
汀丶人工智能
2023/03/22
5960
爱数课实验 | 首尔共享自行车需求数据可视化分析
简介:近些年,“共享单车”模式迅速地在全球各大城市中流行起来,但随着资本的逐步退潮,共享单车企业需寻求新的盈利模式,首要任务便是探究共享单车使用量的影响因素。本案例使用Matplotlib包和Seaborn的可视化库,对首尔地区一共享单车公司在2017年到2018年的使用量数据集进行可视化分析,并利用线性回归等模型预测单车使用量,得出共享单车使用量影响因素分析结论。
数据科学人工智能
2022/04/01
1.6K0
爱数课实验 | 首尔共享自行车需求数据可视化分析
符号回归和遗传规划
回归分析是一种常用的统计方法,用来分析自变量和因变量的线性相关关系,在线性回归分析中,变量间的关系形式是确定的,只需要对关系式的系数做出估计。
量化小白
2019/10/17
5.9K2
快速入门Python机器学习(八)
sklearn.preprocessing.StandardScaler:通过去除均值和缩放单位方差来标准化特征
顾翔
2022/05/22
4670
快速入门Python机器学习(八)
【机器学习与实现】线性回归示例——波士顿房价分析
链接:https://pan.quark.cn/s/fc4b2415e371 提取码:ZXjU
Francek Chen
2025/01/22
2960
【机器学习与实现】线性回归示例——波士顿房价分析
逼疯懒癌:“机器学习100天大作战”正式开始!
机器学习已经成为人工智能中发展最快,应用最广、最重要的分支之一。但是这条学习之路似乎并不是那么容易,也不总是一帆风顺的。
AI科技大本营
2018/08/17
9580
逼疯懒癌:“机器学习100天大作战”正式开始!
完全汇总,十大机器学习算法!!
接下来我会从每个算法模型的介绍、基本原理、优缺点以及适用场景注意叙述,最后会基于开源数据集给出一个比较入门型的案例供大家学习~
Python编程爱好者
2024/04/12
5710
完全汇总,十大机器学习算法!!
机器学习总结(一):线性回归、岭回归、Lasso回归
其中λ称为正则化参数,如果λ选取过大,会把所有参数θ均最小化,造成欠拟合,如果λ选取过小,会导致对过拟合问题解决不当,因此λ的选取是一个技术活。 岭回归与Lasso回归最大的区别在于岭回归引入的是L2范数惩罚项,Lasso回归引入的是L1范数惩罚项,Lasso回归能够使得损失函数中的许多θ均变成0,这点要优于岭回归,因为岭回归是要所有的θ均存在的,这样计算量Lasso回归将远远小于岭回归。
全栈程序员站长
2022/07/01
8340
机器学习总结(一):线性回归、岭回归、Lasso回归
汽车分析,随时间变化的燃油效率
在当今快速发展的科技时代,汽车不仅是交通工具,更是科技和工程的结晶。随着社会对可持续性和环境友好的关注不断增加,燃油效率成为汽车设计和制造中的一个关键议题。一辆车的燃油效率不仅关系到驾驶者的经济负担,还直接影响到环境的可持续性。本文将深入分析汽车燃油效率,并着眼于这一指标随着时间的推移所经历的变化。通过揭示背后的技术创新、市场趋势以及制度变革,我们将追溯汽车燃油效率的发展历程,以期带领读者深入了解这个引人注目的领域。
老虎也淘气
2024/01/30
3580
汽车分析,随时间变化的燃油效率
机器学习 学习笔记(5) 线性回归
给定数据集D={(x1,y1),(x2,y2),...,(xm,ym)},其中xi=(xi1;xi2;xi3;...;xid),yi是实数。线性回归试图学得一个线性模型以尽可能准确地预测实值输出标记。
2018/09/03
9070
机器学习 学习笔记(5) 线性回归
最强总结!8个线性回归核心点!!
那从今天开始,我预计会陆陆续续出一些内容,来论述各个算法的基础核心点,大家感兴趣可以关注起来。
Python编程爱好者
2024/05/13
1K0
最强总结!8个线性回归核心点!!
关于重温机器学习笔记-线性模型
由于高等数学底子太差的原因,机器学习总是无法深入学习下去,只能做一个简单的尝试者,甚至连调优也未必能算的上,不过这样也好,可以把重心放到对业务的理解上,以及业务和模型的选择上。
python与大数据分析
2022/03/11
5050
关于重温机器学习笔记-线性模型
《机器学习实战》学习笔记(十一):线性回归基础篇之预测鲍鱼年龄
作者:崔加华 编辑:祝鑫泉 前言 1 好久没有更新了,最近中耳炎,晚上耳鸣,一度影响正常工作,慢慢吃药调理中。在学习之余,记得加强体育锻炼! 前面的文章介绍了很多分类算法,分类的目标变量是标称型数据,而本文将会对连续型的数据做出预测。主要讲解简单的线性回归和局部加权线性回归,并通过预测鲍鱼年龄的实例进行实战演练。 什么是回归 2 回归的目的是预测数值型的目标值。最直接的办法是依据输入写出一个目标值的计算公式。假如你想预测小姐姐男友汽车的功率,可能会这么计算: HorsePower = 0.0015 * an
机器学习算法工程师
2018/03/06
1.8K0
《机器学习实战》学习笔记(十一):线性回归基础篇之预测鲍鱼年龄
推荐阅读
相关推荐
机器学习第4天:预测1立方米混凝土抗压强度
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档