利用全连接网络模型来完成汽车的效能指标 MPG(Mile Per Gallon,每加仑燃油英里数)的预测问题实战

数据集

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

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

利用 pandas 读取数据集,字段有效能(公里数每加仑),气缸数,排量,马力,重量加速度,型号年份,产地

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)
dataset = raw_dataset.copy()

pd.read_csv()

pd.read_csv(filepath_or_buffer, sep=',',delimiter=None, header='infer', names=None, index_col=None, usecols=None, squeeze=False, prefix=None, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=False, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, iterator=False, chunksize=None, compression='infer', thousands=None, decimal=b'.', lineterminator=None, quotechar='"', quoting=0, escapechar=None, comment=None, encoding=None, dialect=None, tupleize_cols=False, error_bad_lines=True, warn_bad_lines=True, skipfooter=0, skip_footer=0, doublequote=True, delim_whitespace=False, as_recarray=False, compact_ints=False, use_unsigned=False, low_memory=True, buffer_lines=None, memory_map=False, float_precision=None)

重要参数

1.filepath_or_buffer:(这是唯一一个必须有的参数,其它都是按需求选用的) 文件所在处的路径

2.sep: 指定分隔符,默认为逗号’,’

3.delimiter : str, default None 定界符,备选分隔符(如果指定该参数,则sep参数失效)

4.header:int or list of ints, default ‘infer’ 指定哪一行作为表头。默认设置为0(即第一行作为表头),如果没有表头的话,要修改参数,设置header=None

5.names: 指定列的名称,用列表表示。一般我们没有表头,即header=None时,这个用来添加列名就很有用啦!

6.index_col: 指定哪一列数据作为行索引,可以是一列,也可以多列。多列的话,会看到一个分层索引

7.prefix: 给列名添加前缀。如prefix=“x”,会出来"x1"、“x2”、"x3"酱纸

8.nrows : int, default None 需要读取的行数(从文件头开始算起)

9.encoding: 乱码的时候用这个就是了,官网文档看看用哪个: https://docs.python.org/3/library/codecs.html#standard-encodings

10.skiprows : list-like or integer, default None 需要忽略的行数(从文件开始处算起),或需要跳过的行号列表(从0开始)。

# 查看部分数据
dataset.head()

原始表格中的数据可能含有空字段(缺失值)的数据项,需要清除这些记录项:

dataset.isna().sum() # 统计空白数据
dataset = dataset.dropna() # 删除空白数据项
dataset.isna().sum() # 再次统计空白数据

由于 Origin 字段为类别类型数据,我们将其移除,并转换为新的 3 个字段:USA、Europe 和 Japan,分别代表是否来自此产地:

# 处理类别型数据,其中 origin 列代表了类别 1,2,3,分布代表产地:美国、欧洲、日本
# 先弹出(删除并返回)origin 这一列
origin = dataset.pop('Origin')
# 根据 origin 列来写入新的 3 个列
dataset['USA'] = (origin == 1)*1.0
dataset['Europe'] = (origin == 2)*1.0
dataset['Japan'] = (origin == 3)*1.0
dataset.tail() # 查看新表格的后几项
按着 8:2 的比例切分数据集为训练集和测试集:
# 切分为训练集和测试集
train_dataset = dataset.sample(frac=0.8,random_state=0)
test_dataset = dataset.drop(train_dataset.index)
将 MPG 字段移出为标签数据:
# 移动 MPG 油耗效能这一列为真实标签 Y
train_labels = train_dataset.pop('MPG')
test_labels = test_dataset.pop('MPG')
统计训练集的各个字段数值的均值和标准差,并完成数据的标准化,通过 norm()函数
实现,代码如下:
# 查看训练集的输入 X 的统计数据
train_stats = train_dataset.describe()
train_stats.pop("MPG") # 仅保留输入 X
train_stats = train_stats.transpose() # 转置
# 标准化数据
def norm(x): # 减去每个字段的均值,并除以标准差return (x - train_stats['mean']) / train_stats['std']
normed_train_data = norm(train_dataset) # 标准化训练集
normed_test_data = norm(test_dataset) # 标准化测试集#打印出训练集和测试集的大小:print(normed_train_data.shape,train_labels.shape)
print(normed_test_data.shape, test_labels.shape)
(314, 9) (314,) # 训练集共 314 行,输入特征长度为 9,标签用一个标量表示
(78, 9) (78,) # 测试集共 78 行,输入特征长度为 9,标签用一个标量表示#利用切分的训练集数据构建数据集对象:train_db = tf.data.Dataset.from_tensor_slices((normed_train_data.values,
train_labels.values)) # 构建 Dataset 对象
train_db = train_db.shuffle(100).batch(32) # 随机打散,批量化

创建网络

创建一个 3 层的全连接网络来完成 MPG值的预测任务。输入

Auto MPG 汽车油耗预测(tensorflow深度学习龙书笔记)相关推荐

  1. tensorflow2 auto mpg汽车油耗预测实践(3.5节)

    tensorflow2 汽车油耗预测实践 tensorflow2 汽车油耗预测实践 1. 数据集 1.1 Auto MPG 1.2 数据清洗 1.3 数据处理 1.4 标准化 2. 搭建神经网络 3. ...

  2. TensorFlow深度学习-龙曲良-学习笔记1

    TensorFlow深度学习-龙曲良-学习笔记 1. 经典的深度学习网络规模 AlexNet(8 层) VGG16(16 层) GoogLeNet(22 层) ResNet50(50 层) Dense ...

  3. Dataset之mpg:mpg汽车油耗数据集的简介、下载、使用方法之详细攻略

    Dataset之mpg:mpg汽车油耗数据集的简介.下载.使用方法之详细攻略 目录 mpg汽车油耗数据集的简介 1.origin产地详解 mpg汽车油耗数据集的下载 mpg汽车油耗数据集的使用方法 m ...

  4. TensorFlow 深度学习第二版:6~10

    原文:Deep Learning with TensorFlow Second Edition 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自[ApacheCN 深度学习 译文集],采用译 ...

  5. TensorFlow 深度学习笔记 TensorFlow实现与优化深度神经网络

    TensorFlow 深度学习笔记 TensorFlow实现与优化深度神经网络 转载请注明作者:梦里风林 Github工程地址:https://github.com/ahangchen/GDLnote ...

  6. TensorFlow 深度学习中文第二版(初稿)

    TensorFlow 深度学习中文第二版 第 1 章深度学习入门 人工神经网络 ANN 如何学习? 神经网络架构 深度学习框架 总结 第 2 章 TensorFlow 的首次观察 TensorFlow ...

  7. 基于京东云GPU云主机搭建TensorFlow深度学习环境

    TensorFlow是一个开放源代码软件库,用于进行高性能数值计算.借助其灵活的架构,用户可以轻松地将计算工作部署到多种平台(CPU.GPU.TPU)和设备(桌面设备.服务器集群.移动设备.边缘设备等 ...

  8. 预测:深度学习未来的6种可能

    文章讲的是预测:深度学习未来的6种可能,即使你是掌握了人工智能和神经网络基础知识的数据科学家,你可能还需要更多的时间来了解卷积,了解通过组合低层特征形成更加抽象的高层表示属性类别或特征的深度学习算法的 ...

  9. 基于TensorFlow深度学习框架,运用python搭建LeNet-5卷积神经网络模型和mnist手写数字识别数据集,设计一个手写数字识别软件。

    本软件是基于TensorFlow深度学习框架,运用LeNet-5卷积神经网络模型和mnist手写数字识别数据集所设计的手写数字识别软件. 具体实现如下: 1.读入数据:运用TensorFlow深度学习 ...

最新文章

  1. 机器学习误差分析(Error Analysis)实战
  2. 【SSH网上商城项目实战23】完成在线支付功能
  3. 乔布斯的斯坦福大学演讲:你必须要找到你所爱的东西
  4. java程序设计_这份Java程序设计手册被刷爆了,1000G视频+50大项目+200面试题
  5. ExecutorCompletionService分析及使用
  6. Linux内核和Linux发行版(了解)
  7. java清除运行窗口内容,Java实现软件运行时启动信息窗口的方法
  8. Sublime Text3 python交互式环境+快捷键设置
  9. lisp 角平分线_《最佳Visual-LISP-及VBA-for-AutoCAD-2000程序123例》.pdf
  10. Vue简易购物车实例
  11. 《 Python笔记》— 将pyinstalller打包封装的exe文件反编译为pyc文件和python文件
  12. 华为android怎么换字体大小,华为手机设置字体大小的具体步骤
  13. steam桌面图标空白问题解决
  14. 利用canvas绘制表盘
  15. cocos小小打飞机游戏项目源码资源共享学习
  16. pytorch RuntimeError: size mismatch, m1: [16 x 86016], m2: [25088 x 512] at /opt/conda/conda-bld/pyt
  17. 对List中的map的key按中文拼音进行排序。
  18. mysql如果忘记密码怎么办
  19. ros python 控制手柄数据发布频率
  20. 基于DM6467的TVP7002 Linux驱动程序开发

热门文章

  1. python图形显示不出来_Matplotlib无法显示图像的问题
  2. TR069服务器配置DHCP/IP/PING/Tracert/HTTP/PPPoE等仿真诊断模板及IPWAN和PPPoE WAN模板创建
  3. Ubuntu常用操作
  4. 在SQL Server 2008上遇到了删除作业失败的问题。 547错误
  5. 【高德地图API】如何转到高德坐标系?
  6. 法线向量扰动、副法线
  7. 根据url读取html文件
  8. python中outside loop_未知环境下的Lidar概率占位栅格图(Occupancy Grid Map) Python代码实现...
  9. AutoCAD快速入门(十三):倒角和圆角
  10. 该怎么学好软件工程这门课?