TensorFlow入门:实现简单线性回归(第10讲)

本节将针对波士顿房价数据集的房间数量(RM)采用简单线性回归,目标是预测在最后一列(MEDV)给出的房价。

波士顿房价数据集可从​ ​http://lib.stat.cmu.edu/datasets/boston​​处获取。

本小节直接从 ​ ​TensorFlow​​ contrib 数据集加载数据。使用随机梯度下降优化器优化单个训练样本的系数。

实现简单线性回归的具体做法


  1. 导入需要的所有软件包:

    TensorFlow从0到1之TensorFlow实现简单线性回归(10)_数据集
  2. 在神经网络中,所有的输入都线性增加。为了使训练有效,输入应该被归一化,所以这里定义一个函数来归一化输入数据:

    TensorFlow从0到1之TensorFlow实现简单线性回归(10)_数据_02
  3. 现在使用 TensorFlow contrib 数据集加载波士顿房价数据集,并将其分解为 X_train 和 Y_train。可以对数据进行归一化处理:

    TensorFlow从0到1之TensorFlow实现简单线性回归(10)_归一化_03
  4. 为训练数据声明 TensorFlow 占位符:

    TensorFlow从0到1之TensorFlow实现简单线性回归(10)_数据_04
  5. 创建 TensorFlow 的权重和偏置变量且初始值为零:

    TensorFlow从0到1之TensorFlow实现简单线性回归(10)_归一化_05
  6. 定义用于预测的线性回归模型:

    TensorFlow从0到1之TensorFlow实现简单线性回归(10)_数据集_06
  7. 定义损失函数:

    TensorFlow从0到1之TensorFlow实现简单线性回归(10)_tensorflow_07
  8. 选择梯度下降优化器:

    TensorFlow从0到1之TensorFlow实现简单线性回归(10)_归一化_08
  9. 声明初始化操作符:

    TensorFlow从0到1之TensorFlow实现简单线性回归(10)_数据集_09
  10. 现在,开始计算图,训练 100 次:

    TensorFlow从0到1之TensorFlow实现简单线性回归(10)_归一化_10
  11. 查看结果:

    TensorFlow从0到1之TensorFlow实现简单线性回归(10)_归一化_11

解读分析

从下图中可以看到,简单线性回归器试图拟合给定数据集的线性线:


TensorFlow从0到1之TensorFlow实现简单线性回归(10)_线性回归_12


在下图中可以看到,随着模型不断学习数据,损失函数不断下降:


TensorFlow从0到1之TensorFlow实现简单线性回归(10)_线性回归_13


下图是简单线性回归器的 TensorBoard 图:


TensorFlow从0到1之TensorFlow实现简单线性回归(10)_数据集_14



该图有两个名称范围节点 Variable 和 Variable_1,它们分别是表示偏置和权重的高级节点。以梯度命名的节点也是一个高级节点,展开节点,可以看到它需要 7 个输入并使用 GradientDescentOptimizer 计算梯度,对权重和偏置进行更新:


TensorFlow从0到1之TensorFlow实现简单线性回归(10)_归一化_15




总结


本节进行了简单的线性回归,但是如何定义模型的性能呢?


有多种方法可以做到这一点。统计上来说,可以计算 R2 或将数据分为训练集和交叉验证集,并检查验证集的准确性(损失项)。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空