TensorFlow简单线性回归

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

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

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

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

  1. 导入需要的所有软件包:                                                                                                                                                                                                                                                                                        
  2. 在神经网络中,所有的输入都线性增加。为了使训练有效,输入应该被归一化,所以这里定义一个函数来归一化输入数据:                                   
  3. 现在使用 TensorFlow contrib 数据集加载波士顿房价数据集,并将其分解为
    X_train 和 Y_train。可以对数据进行归一化处理:                                                                                                                       
  4. 为训练数据声明 TensorFlow 占位符:                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
  5. 创建 TensorFlow 的权重和偏置变量且初始值为零:                                                                                                                                                                                                                                                    
  6. 定义用于预测的线性回归模型:                                                                                                                                                                                                                                                                             
  7. 定义损失函数:                                                                                                                                                                                                                                                                                                     
  8. 选择梯度下降优化器:                                                                                                                                                                                                                                                                                         
  9. 声明初始化操作符:                                                                                                                                                                                                                                                                                             
  10. 现在,开始计算图,训练 100 次:                                                                                                                                                                                                                                                                       
      11. 查看结果:                                                                                                                                                                                                                                                                                                                   

解读分析

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

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

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

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

总结

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

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

TensorFlow简单线性回归的更多相关文章

  1. 机器学习与Tensorflow(1)——机器学习基本概念、tensorflow实现简单线性回归

    一.机器学习基本概念 1.训练集和测试集 训练集(training set/data)/训练样例(training examples): 用来进行训练,也就是产生模型或者算法的数据集 测试集(test ...

  2. TensorFlow从0到1之TensorFlow实现简单线性回归(15)

    本节将针对波士顿房价数据集的房间数量(RM)采用简单线性回归,目标是预测在最后一列(MEDV)给出的房价. 波士顿房价数据集可从http://lib.stat.cmu.edu/datasets/bos ...

  3. TensorFlow多元线性回归实现

    多元线性回归的具体实现 导入需要的所有软件包:   因为各特征的数据范围不同,需要归一化特征数据.为此定义一个归一化函数.另外,这里添加一个额外的固定输入值将权重和偏置结合起来.为此定义函数 appe ...

  4. SPSS数据分析—简单线性回归

    和相关分析一样,回归分析也可以描述两个变量间的关系,但二者也有所区别,相关分析可以通过相关系数大小描述变量间的紧密程度,而回归分析更进一步,不仅可以描述变量间的紧密程度,还可以定量的描述当一个变量变化 ...

  5. TensorFlow简单介绍和在centos上的安装

    ##tensorflow简单介绍: TensorFlow™ is an open source software library for numerical computation using dat ...

  6. Tensorflow简单CNN实现

    觉得有用的话,欢迎一起讨论相互学习~Follow Me 少说废话多写代码~ """转换图像数据格式时需要将它们的颜色空间变为灰度空间,将图像尺寸修改为同一尺寸,并将标签依 ...

  7. sklearn学习笔记之简单线性回归

    简单线性回归 线性回归是数据挖掘中的基础算法之一,从某种意义上来说,在学习函数的时候已经开始接触线性回归了,只不过那时候并没有涉及到误差项.线性回归的思想其实就是解一组方程,得到回归函数,不过在出现误 ...

  8. day-12 python实现简单线性回归和多元线性回归算法

    1.问题引入  在统计学中,线性回归是利用称为线性回归方程的最小二乘函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析.这种函数是一个或多个称为回归系数的模型参数的线性组合.一个带有一个自变 ...

  9. 机器学习(2):简单线性回归 | 一元回归 | 损失计算 | MSE

    前文再续书接上一回,机器学习的主要目的,是根据特征进行预测.预测到的信息,叫标签. 从特征映射出标签的诸多算法中,有一个简单的算法,叫简单线性回归.本文介绍简单线性回归的概念. (1)什么是简单线性回 ...

随机推荐

  1. 【ElasticSearch】ES 读数据,写数据与搜索数据的过程

    ES读数据的过程: 1.ES客户端选择一个node发送请求,该请求作为协调节点(coordinating node): 2.corrdinating node 对 doc id 对哈希,找出该文档对应 ...

  2. hdu1255 扫描线,矩形重叠面积(两次以上)

    题意:       给你n个矩形,然后问你这n个矩形所组成的画面中被覆盖至少两次的面积有多大. 思路:       和1542差距并不是很大,大体上还是离散化+线段树扫面线,不同的地方就是这个题目要求 ...

  3. 【python】Leetcode每日一题-寻找旋转排序数组中的最小元素2

    [python]Leetcode每日一题-寻找旋转排序数组中的最小元素2 [题目描述] 已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组.例如,原数组nums ...

  4. apache-tomcat-7.0.92

    链接:https://pan.baidu.com/s/1wnTSjTknYfaeDV_pakrC9g 提取码:see7

  5. 【我给面试官画饼】Python自动化测试面试题精讲

    那今天给家分享的是一个面试主题. 就比如说我们的自动化测试,自动化如何去应对面试官,和面试官去聊一聊自动化的心得,自动化你现在去面试的时候是一个非常重要的一个关键点,所以如果你在这方面有一定的心得.那 ...

  6. PowerBI开发 第十九篇:基于Page创建Tooltip

    在PowerBI 报表中,常规的Tooltip是一段文本,当光标悬停在Visual上,Visual上方会自动显示Tooltip的文本.PowerBI 支持用户自定义内容丰富的Tooltip,用户通过创 ...

  7. c语言编程学习之字符串

    字符串字面量与字符变量 1.字符串字面量 字符串字面量是一对双引号括起来的字符序列.当c语言编译器在程序中遇到长度为n的字符串字面量时,它会为字符串字面量分配长度为n+1的内存空间.这块内存空间用来存 ...

  8. 用JIRA管理你的项目——(三)基于LDAP用户管理

    JIRA提供了基于LDAP方式的用户管理,也就是用户密码的管理交给LDAP,而JIRA只管理用户在系统中的角色. 要打开JIRA的LDAP设置,首先需要验证下你的LDAP服务是否正常! 几乎有所有的L ...

  9. Zabbix5.0服务端部署

    Zabbix5.0服务端部署 基础环境配置 [root@localhost ~]# systemctl disable --now firewalld Removed symlink /etc/sys ...

  10. Kubernetes 部署微服务电商平台(16)

    一.概念 微服务就是很小的服务,小到一个服务只对应一个单一的功能,只做一件事.这个服务可以单独部署运行,服务之间可以通过RPC来相互交互,每个微服务都是由独立的小团队开发,测试,部署,上线,负责它的整 ...