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

devtools/2024/10/25 8:22:42/

流程

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

数据获取

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

导入需要的包

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

引入文件,查看内容

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()

在这里插入图片描述

划分训练集和测试集

这里先用重量做特征

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

引入模型

线性回归

lr = LinearRegression()
lr = lr.fit(X_train,Y_train)

查看准确率

文字

print('score = {}'.format(lr.score(X,Y)))
#score = 0.691680406988993

可视化查看

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

此时使用多变量线性回归

选三个变量建模

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()

在这里插入图片描述

预测准确率

mul_score = mul_lr.score(cars[mul],cars['mpg'])
mul_score
#0.7069554693444708

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

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()

在这里插入图片描述


http://www.ppmy.cn/devtools/3956.html

相关文章

AndroidStudio右下角显示内存使用情况

目录 一.具体效果 二.4.0以下版本 三.4.0以上版本 四.增加内存配置 一.具体效果 二.4.0以下版本 1.打开 Android Studio. 2.进入设置界面。点击 Android Studio 左上角的“File”,然后选择“Settings” 3.在设置界面中,选择“Appearance & Beha…

【栈】Leetcode 739. 每日温度【中等】

每日温度 给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。 示例 1: 输入…

Android studio顶部‘app‘红叉- Moudle ‘XX.app’ dosen’t exist in project

Android studio顶部app红叉- Moudle ‘XX.app’ dosen’t exist in project 1、现象: 运行老项目或者有时候替换项目中的部分代码,明明没有错但是Android studio就编译报错了。 1.1 Android studio顶部app红叉。 1.2 点击Build没有clear菜单&#xff0…

git 快问快答

我在实习的时候,是用本地开发,然后 push 到 GitHub 上,之后再从 Linux 服务器上拉 GitHub 代码,然后就可以了。一般程序是在 Linux 服务器上执行的,我当时使用过用 Linux 提供的命令来进行简单的性能排查。 在面试的时…

使用socket client源码,调用addresstool地址关联算法

之前使用httpserver方式发布地址关联服务,发现每秒只能处理1800条地址,远远没有达到本地计算每秒1万条的速度,于是改变思路,使用socket发布服务。 这是客户端代码 直接上代码 package org.socket;import org.address.AddressTool…

c语言-快速排序

文章目录 代码工程运行结果 这个是升序排列&#xff0c;如果想降序排列,将下面两行的符号反过来即可; arr[right] < arr[key] arr[left] > arr[key]代码工程 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h>void swap(int *v1, int *v2) {int temp *v1;*v1 …

C++如何把图片转成base64数据

在C++中将图片转换为Base64格式涉及几个步骤,主要是读取图片文件的二进制数据,然后将这些数据编码为Base64字符串。这个过程通常需要用到额外的库来辅助完成,例如使用开源库如OpenSSL来进行Base64编码,以及使用标准库来处理文件输入输出。 下面提供一个基本的示例,展示如…

Linux:常用软件、工具和周边知识介绍

上次也是结束了权限相关的知识&#xff1a;Linux&#xff1a;权限相关知识详解 文章目录 1.yum-管理软件包的工具1.1基本介绍1.2yum的使用1.3yum的周边生态1.4软件包介绍 2.vim-多模式的文本编辑器2.1基本介绍2.2基本模式介绍2.2.1命令模式&#xff08;Normal mode&#xff09;…