TensorFlow从0到1之TensorFlow实现多元线性回归(16)
在 TensorFlow 实现简单线性回归的基础上,可通过在权重和占位符的声明中稍作修改来对相同的数据进行多元线性回归。
在多元线性回归的情况下,由于每个特征具有不同的值范围,归一化变得至关重要。这里是波士顿房价数据集的多重线性回归的代码,使用 13 个输入特征。
波士顿房价数据集可从http://lib.stat.cmu.edu/datasets/boston处获取。
多元线性回归的具体实现
- 导入需要的所有软件包:
- 因为各特征的数据范围不同,需要归一化特征数据。为此定义一个归一化函数。另外,这里添加一个额外的固定输入值将权重和偏置结合起来。为此定义函数 append_bias_reshape()。该技巧有时可有效简化编程:
- 现在使用 TensorFlow contrib 数据集加载波士顿房价数据集,并将其划分为 X_train 和 Y_train。注意到 X_train 包含所需要的特征。可以选择在这里对数据进行归一化处理,也可以添加偏置并对网络数据重构:
- 为训练数据声明 TensorFlow 占位符。观测占位符 X 的形状变化:
- 为权重和偏置创建 TensorFlow 变量。通过随机数初始化权重:
- 定义要用于预测的线性回归模型。现在需要矩阵乘法来完成这个任务:
- 为了更好地求微分,定义损失函数:
- 选择正确的优化器:
- 定义初始化操作符:
- 开始计算图:
- 绘制损失函数:
在这里,我们发现损失随着训练过程的进行而减少:

本节使用了 13 个特征来训练模型。简单线性回归和多元线性回归的主要不同在于权重,且系数的数量始终等于输入特征的数量。下图为所构建的多元线性回归模型的 TensorBoard 图:
现在可以使用从模型中学到的系数来预测房价:
TensorFlow从0到1之TensorFlow实现多元线性回归(16)的更多相关文章
- TensorFlow从0到1之TensorFlow优化器(13)
高中数学学过,函数在一阶导数为零的地方达到其最大值和最小值.梯度下降算法基于相同的原理,即调整系数(权重和偏置)使损失函数的梯度下降. 在回归中,使用梯度下降来优化损失函数并获得系数.本节将介绍如何使 ...
- TensorFlow从0到1之TensorFlow损失函数(12)
正如前面所讨论的,在回归中定义了损失函数或目标函数,其目的是找到使损失最小化的系数.本节将介绍如何在 TensorFlow 中定义损失函数,并根据问题选择合适的损失函数. 声明一个损失函数需要将系数定 ...
- TensorFlow从0到1之TensorFlow Keras及其用法(25)
Keras 是与 TensorFlow 一起使用的更高级别的作为后端的 API.添加层就像添加一行代码一样简单.在模型架构之后,使用一行代码,你可以编译和拟合模型.之后,它可以用于预测.变量声明.占位 ...
- TensorFlow从0到1之TensorFlow多层感知机函数逼近过程(23)
Hornik 等人的工作(http://www.cs.cmu.edu/~bhiksha/courses/deeplearning/Fall.2016/notes/Sonia_Hornik.pdf)证明 ...
- TensorFlow从0到1之TensorFlow实现反向传播算法(21)
反向传播(BPN)算法是神经网络中研究最多.使用最多的算法之一,它用于将输出层中的误差传播到隐藏层的神经元,然后用于更新权重. 学习 BPN 算法可以分成以下两个过程: 正向传播:输入被馈送到网络,信 ...
- TensorFlow从0到1之TensorFlow常用激活函数(19)
每个神经元都必须有激活函数.它们为神经元提供了模拟复杂非线性数据集所必需的非线性特性.该函数取所有输入的加权和,进而生成一个输出信号.你可以把它看作输入和输出之间的转换.使用适当的激活函数,可以将输出 ...
- TensorFlow从0到1之TensorFlow逻辑回归处理MNIST数据集(17)
本节基于回归学习对 MNIST 数据集进行处理,但将添加一些 TensorBoard 总结以便更好地理解 MNIST 数据集. MNIST由https://www.tensorflow.org/get ...
- TensorFlow从0到1之TensorFlow csv文件读取数据(14)
大多数人了解 Pandas 及其在处理大数据文件方面的实用性.TensorFlow 提供了读取这种文件的方法. 前面章节中,介绍了如何在 TensorFlow 中读取文件,本节将重点介绍如何从 CSV ...
- TensorFlow从0到1之TensorFlow超参数及其调整(24)
正如你目前所看到的,神经网络的性能非常依赖超参数.因此,了解这些参数如何影响网络变得至关重要. 常见的超参数是学习率.正则化器.正则化系数.隐藏层的维数.初始权重值,甚至选择什么样的优化器优化权重和偏 ...
随机推荐
- 填坑!线上Presto查询Hudi表异常排查
1. 引入 线上用户反馈使用Presto查询Hudi表出现错误,而将Hudi表的文件单独创建parquet类型表时查询无任何问题,关键报错信息如下 40931f6e-3422-4ffd-a692-6c ...
- Excel_通过单元格的值来引用以单元格值命名的sheet
1.通过单元格的值来引用以单元格值命名的sheet,在做多个类似sheet的统计结果时效率比较高 当一项测试中有很多个模块,每个模块中有很多条测试用例 将以上测试用例整理在Excel中,每个模块一个s ...
- java导入web项目httpservlet报错
于是开始了,调错之路. 解决方法:鼠标右击项目工程——>Build Path——>点击comfigure Build Path进入----->选择java Bulid Path--- ...
- [PHP学习教程 - 数字]001.数字补0(Num padding)
引言:在日常工作中,经常要用到数字前后补0的操作,如:日期格式yyyy-MM-dd等等. 在php中有多种前后填充函数——今天,我们就介绍常用的两种,实现数字补零: str_pad sprintf 大 ...
- [翔哥高手无敌之路]0-002.如何提取apk中的信息?
面对一款apk软件,我们如何去获取它的信息,如何获取它的版本号,包名,或者ID,用户权限,这些信息都隐藏在apk包中的AndroidManifest.xml文件中,解开它我们就能获取任何想要的信息.但 ...
- idea本地Maven仓库不能下载依赖jar包的解决方案
1.确认maven是否正正常安装,是否配置了环境变量,可以通过命令 mvn -version 看是否显示maven的版本信息. 2.检查maven的setting.xml配置文件中本地仓库位置配置是否 ...
- Zabbix漏洞学习
Zabbix介绍 zabbix([`zæbiks])是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵 ...
- 14 . Python3之MysSQL
数据库概念 数据库: 按照数据结构来组织.存储.管理数据的仓库` 诞生 计算机的发明是为了做科学计算的,而科学计算需要大量的输入和输出. 早期,可以使用打孔卡片的孔.灯泡的亮灭表示数据输入,输出. 后 ...
- Linux题目
1.删除某目录下所有文件,只保留指定文件. 例:假设/abc文件夹下有a1.a2....a10文件,保留a5和a6文件,其他全部删除 [root@localhost abc]# touch a{1.. ...
- jchdl - RTL Event
https://mp.weixin.qq.com/s/P9uoJwIYdM-mbiR9WCtJCg hardware modeling基于事件驱动模型,RTL中定义了多种事件. jchdl 参考了 ...