Tensorflow2.0之实战汽车油耗预测

本文介绍如何使用TensorFlow 2.0构建神经网络预测汽车油耗。通过处理AutoMPG数据集,标准化特征,构建并训练了一个包含三层全连接层的网络模型。

Tensorflow2.0之实战汽车油耗预测


完整代码在最后面

数据集

我们采用Auto MPG 数据集,它记录了各种汽车效能指标与气缸数、重量、马力等其它因子的真实数据,查看数据集的前5 项,如表 6.1 所示,其中每个字段的含义列在表6.2 中。除了产地的数字字段表示类别外,其他字段都是数值类型。对于产地地段,1 表示美国,2 表示欧洲,3 表示日本。
在这里插入图片描述

代码(数据集处理)

导入模块

import tensorflow as tf
import pandas as pd
from tensorflow import keras
from tensorflow.keras import layers, losses
import matplotlib.pyplot as mp

读取数据集

Auto MPG 数据集一共记录了398 项数据,我们从UCI 服务器下载并读取数据集到DataFrame 对象中,代码如下:

# 在线下载汽车效能数据集
dataset_path = keras.utils.get_file("auto-mpg.data",
                                    "http://archive.ics.uci.edu/ml/machine-learning-databases/auto-mpg/auto-mpg.data")

# 效能(公里数每加仑),气缸数,排量,马力,重量
# 加速度,型号年份,产地
column_names = ['MPG', 'Cylinders', 'Displacement', 'Horsepower', 'Weight',
                'Acceleration', 'Model Year', 'Origin']
raw_dataset = pd.read_csv(dataset_path, names=column_names,
                          na_values="?", comment='\t',
                          sep=" ", skipinitialspace=True)

对数据集进行处理

首先我们发现数据集中又叫做Origin的一列,1表示美国,2表示欧洲,3表示日本。我们对这一列进行如下处理:

# delete origin row and get it
origin = raw_dataset.pop('Origin')
dataset = raw_dataset.copy()
# use continues' name instead origin
dataset['USA'] = (origin == 1) * 1.0
dataset['Europe'] = (origin == 2) * 1.0
dataset['Japan'] = (origin == 3) * 1.0

之后以为数据集中有一些空白项,所以我们将其删除

# clear blank data
dataset = dataset.dropna()

切割测试集和训练集

按8:2的比例分为训练集和测试集

# splice data to get train_db and test_db (8:2)
train_dataset = dataset.sample(frac=0.8, random_state=0)
test_dataset = dataset.drop(train_dataset.index)

获取标签

获取标签并将其从训练集和测试集中删除,同时使用panads中的decribe()方法获取训练集的均方差,标准差等信息

# splice data to get train_db and test_db (8:2)
train_dataset = dataset.sample(frac=0.8, random_state=0)
test_dataset = dataset.drop(train_dataset.index)
# get MPG labels meantime pop it from dataset
train_labels = train_dataset.pop('MPG')
test_labels = test_dataset.
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值