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. Android NDK工程的编译和链接以及使用gdb进行调试

    前提条件:已经安装了JDK 6.0.android SDK.NDK r9和eclipsele4.2开发环境. 推荐下载Android开发的综合套件adt-bundle-windows-x86,再下载A ...

  2. Android内核的编译和调试

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/70500488 一.Android内核源码的选择 Android手机设备内核源码的调 ...

  3. hdu4720 三角形的外接圆

    题意:       给你四个点,问你第四个点是否在前三个点围成的三角形的外接圆上. 思路:       水题,就是练练用魔板罢了,当该三角形是锐角三角形的时候,圆心是任意两条边中垂线的交点,半径是圆心 ...

  4. poj 2472

    题意:      给你一个无向图,然后每条边的权值就是不被抓的概率,有个货要从1逃到n,问你他的最安全概率是多少? 思路:       水题,直接跑就行了,一开始自己想多了,还转换了一下log,后来发 ...

  5. Portswigger web security academy:DOM Based XSS

    Portswigger web security academy:DOM Based XSS 目录 Portswigger web security academy:DOM Based XSS DOM ...

  6. postman使用教程7-参数化引用外部文件测试数据

    前言 当同一个接口需要测试不同的参数时,需用到参数化的概念.postman支持从外部文件读取测试数据参数化 设置参数化变量 新建一个collections 专门测试登录接口 设置集合变量usernam ...

  7. 【Git】5. 远程库(GitHub)相关操作

    之前也提到了,在整个协作的过程中,必不可少的就是远程库了.Github作为一个全球最大的同性交友网站,同样也是一个非常强大的远程库. 现在希望将本地的hello.txt文件也推到github上去,那首 ...

  8. 解决@Autowired警告

    在使用spring框架中的依赖注入注解@Autowired时,idea报了一个警告 被警告的代码如下: @Autowired UserDao userDao; 警告提示信息:Field injecti ...

  9. maven工程添加servlet依赖

    实现导入HttpServlet <!-- Servlet依赖--> <dependency> <groupId>javax.servlet</groupId& ...

  10. CM5.11与CDH5.11安装使用说明

    1.cdh5 支持jdk7和jdk82.cloudera只支持oracle发布的jdk3.集群中所有主机的jdk版本必须一致4.生态圈中用到的所有组件所依赖的jdk版本必须一致5.cloudera m ...