机器学习预测汽车油耗效率 MPG

流程

  1. 数据获取
  2. 导入需要的包
  3. 引入文件,查看内容
  4. 划分训练集和测试集
  5. 调用模型
  6. 查看准确率

数据获取

python 复制代码
链接:https://pan.baidu.com/s/1KeIJykbcVpsfEk0xjhiICA?pwd=30oe 
提取码:30oe 
--来自百度网盘超级会员V1的分享

导入需要的包

python 复制代码
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression

引入文件,查看内容

python 复制代码
path = 'auto-mpg.data'
columns = ["mpg", "cylinders", "displacement", "horsepower", "weight", "acceleration", "model year", "origin", "car name"]
cars = pd.read_csv(path, delim_whitespace=True, names=columns)
cars.head()

划分训练集和测试集

这里先用重量做特征

python 复制代码
Y = cars['mpg']
X = cars[['weight']]
python 复制代码
X_train, X_test, Y_train, Y_test = train_test_split(X,Y,test_size=0.2,random_state=0)

引入模型

线性回归

python 复制代码
lr = LinearRegression()
lr = lr.fit(X_train,Y_train)

查看准确率

文字

python 复制代码
print('score = {}'.format(lr.score(X,Y)))
#score = 0.691680406988993

可视化查看

python 复制代码
plt.scatter(X_test, Y_test, color = 'red', alpha=0.3)
plt.scatter(X_test, lr.predict(X_test),color = 'green',alpha=0.3)
plt.xlabel('weight')
plt.ylabel('mpg')
plt.title('test data')
plt.show()

准确率只有0.69因为只用到了weight

此时使用多变量线性回归

选三个变量建模

python 复制代码
cars = cars[cars.horsepower != '?']
mul = ['weight','horsepower','displacement'] # 选择三个变量进行建立模型
mul_lr = LinearRegression()
mul_lr.fit(cars[mul],cars['mpg']) # 训练模型
cars['mpg_prediction'] = mul_lr.predict(cars[mul])
cars.head()

预测准确率

python 复制代码
mul_score = mul_lr.score(cars[mul],cars['mpg'])
mul_score
#0.7069554693444708

从这里可以看出准确率上升了一个点

python 复制代码
fig = plt.figure(figsize = (8,10))
ax1 = fig.add_subplot(3,1,1)
ax2 = fig.add_subplot(3,1,2)
ax3 = fig.add_subplot(3,1,3)
ax1.scatter(cars['weight'], cars['mpg'], c='blue', alpha=0.3)
ax1.scatter(cars['weight'], cars['mpg_prediction'], c='red', alpha=0.3)
ax1.set_title('weight')
ax2.scatter([ float(x) for x in cars['horsepower'].tolist()], cars['mpg'], c='blue', alpha=0.3)
ax2.scatter([ float(x) for x in cars['horsepower'].tolist()], cars['mpg_prediction'], c='red', alpha=0.3)
ax2.set_title('horsepower')
ax3.scatter(cars['displacement'], cars['mpg'], c='blue', alpha=0.3)
ax3.scatter(cars['displacement'], cars['mpg_prediction'], c='red', alpha=0.3)
ax3.set_title('displacement')
plt.show()
相关推荐
Java樱木2 分钟前
哈尔滨工业大学:大模型时代的具身智能
人工智能
weixin_5990739424 分钟前
第P10周:Pytorch实现车牌识别
人工智能·pytorch·深度学习
袖手蹲31 分钟前
宏碁笔记本电脑擎7PRO搭载的 NVIDIA RTX 5080 显卡安装pytorch
人工智能·pytorch·电脑
coding随想1 小时前
Ollama本地服务无法通过IP访问的终极解决方案
网络·人工智能·网络协议·tcp/ip
TGITCIC1 小时前
7B斗671B:扩散模型能否颠覆自回归霸权?
人工智能·自回归·扩散·deepseek·大模型自回归·大模型扩散
L_cl1 小时前
【NLP 面经 7、常见transformer面试题】
人工智能·自然语言处理·transformer
沙子可可2 小时前
深入学习Pytorch:第一章-初步认知
人工智能·pytorch·深度学习·学习
风吹落叶花飘荡2 小时前
2025年 能够有效提升AI的生成质量和逻辑严谨性 的通用型系统提示
人工智能
JinYoMo2 小时前
【手把手教你从零开始YOLOv8-入门篇】YOLOv8 数据集构建
算法·机器学习·计算机视觉
云卷风舒3 小时前
Fedora 40 开机启动失败,不重装系统,如何恢复成功 ?(附带恢复过程)
人工智能·claude·fedora