上一篇使用tensorflow实现了简单的线性回归,这次在简单的线性回归基础上,通过在权重和占位符声明中
修改来对相同的数据进行多元线性回归。
同样以波士顿房价数据为例
波士顿房价数据集可从http://lib.stat.cmu.edu/datasets/boston处获取。

多元线性回归具体实现步骤

1:导入需要的所有软件包
2:因各特征的数据范围不同,需要归一化特征数据,为此定义一个归一化函数
定义一个append_bias_reshape()函数,来将固定输入值和偏置结合起来
3:加载数据集,并划分为X_train,Y_train。注意X_train包含所需要的特征,可以选择在这里对数据
进行归一化处理。也可以添加偏置并对网络数据重构
4:为训练数据声明Tensorflow占位符,观测占位符X的形状变化
5:为权重和偏置创建Tensorflow变量。通过随机数初始化权重
6:定义要用于预测的线性回归模型,这个实例需要矩阵乘法来完成这个任务
7:定义损失函数
8:选择正确的优化器
9:定义初始化操作符
10:开始计算图
11绘制损失函数
12利用从模型学到的系数来预测房价

具体代码如下:

#1:导入所需要的软件包
import tensorflow as tf
import numpy as np
import  matplotlib.pyplot as plt
from sklearn.datasets import load_bostontf.compat.v1.disable_eager_execution()'''使用Tensorflow实现多元线性回归'''#2:因为各特征的数据范围不同,需要归一化特征数据。为此定义一个归一化函数
#另外,这里添加一个额外的固定输入值将权重和偏置结合起来。
#为此定义函数append_bias_reshape()。该技巧可简化编程
def normalize(X):'''归一化数组 X''''''np.mean:计算均值np.std:计算标准差'''mean = np.mean(X)std = np.std(X)X = (X-mean)/stdreturn X
def append_bias_reshape(features,labels):'''param features: 对于矩阵来说,shape[0]:表示矩阵的行数shape[1]:表示矩阵的列数'''m = features.shape[0]n = features.shape[1]'''np.c_:按行将矩阵组合起来'''x = np.reshape(np.c_[np.ones(m),features],[m,n+1])y = np.reshape(labels,[m,1])return x,y#3:加载波士顿房价数据集,并划分为X_train,Y_train
#可以选择这里对数据进行归一化处理,也可以添加偏置并对网络数据重构boston = load_boston()
X_train,Y_train = boston.data,boston.target
X_train = normalize(X_train)
X_train,Y_train = append_bias_reshape(X_train,Y_train)
# 训练示例数
m = len(X_train)
#特征+偏置的数量
n = 13+1
#4:为训练数据声明Tensorflow占位符,观测占位符X的形状变化
X = tf.compat.v1.placeholder(tf.float32,name='X',shape=[m,n])
Y = tf.compat.v1.placeholder(tf.float32,name='Y')#5:为权重和偏置创建Tensorflow变量,通过随机数初始化权重
w = tf.compat.v1.Variable(tf.random.normal([n,1]))
b = tf.compat.v1.Variable(tf.zeros(1))#6:定义用于预测的线性回归模型。需要矩阵乘法完成任务Y_hat = tf.matmul(X,w)#7:为了更好的求微分,定义损失函数
loss = tf.reduce_mean(tf.square(Y-Y_hat,name='loss'))#8:选择正确的优化器
optimizer = tf.compat.v1.train.GradientDescentOptimizer(learning_rate=0.01).minimize(loss)#9:定义初始化操作符
init_op = tf.compat.v1.global_variables_initializer()
total = []#10:开始计算图with tf.compat.v1.Session() as sess:sess.run(init_op)writer = tf.compat.v1.summary.FileWriter('graphs2',sess.graph)for i in range(100):l = sess.run([optimizer,loss],feed_dict={X:X_train,Y:Y_train})total.append(l)print('Epoch {0}:Loss {1}'.format(i,l))writer.close()w_value,b_value = sess.run([w,b])#11:绘制损失函数
plt.plot(total)
plt.show()#12:从模型中学到的系数来预测房价
N = 500
X_new = X_train[N,:]
Y_pred = (np.matmul(X_new,w_value)+b_value).round(1)
print('Predicted value:${0} Actual value: / ${1}'.format(Y_pred[0]*1000,Y_train[N]*1000,'\nDone'))

Tensorflow实现多元线性回归相关推荐

  1. 利用TensorFlow实现多元线性回归

    利用TensorFlow实现多元线性回归,代码如下: # -*- coding:utf-8 -*- import tensorflow as tf import numpy as np from sk ...

  2. python多元线性回归模型_python – 使用Tensorflow的多元线性回归模型

    我想通过使用Tensorflow构建一个多元线性回归模型. 一个数据示例:2104,3,399900(前两个是功能,最后一个是房价;我们有47个示例) 代码如下: import numpy as np ...

  3. TensorFlow进行多元线性回归

    设置四个输入x1,x2,x3,x4,y为输出,通过TensorFlow拟合得到各自系数. 自定义数据集,x1,x2,x3,x4为随机生成(0,1)之间的随机数,y为x1+x2+x3+x4+随机噪声. ...

  4. 波士顿房价预测的TensorFlow实现(多元线性回归)

    import tensorflow as tf import numpy as np import pandas as pd from sklearn.utils import shuffle fro ...

  5. TensorFlow多元线性回归实现

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

  6. TensorFlow实现梯度下降法求解一元和多元线性回归问题

    使用TensorFlow求解一元线性回归问题 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt# 设 ...

  7. TensorFlow基础3-机器学习基础知识(解析法实现一元线性回归、多元线性回归)

    记录TensorFlow听课笔记 文章目录 记录TensorFlow听课笔记 一,机器学习基础 1.1一元线性回归 1.2解析法实现一元线性回归 1.3解析法实现多元线性回归 二,代码实现一元/多元回 ...

  8. TensorFlow笔记(5) 多元线性回归

    TensorFlow笔记(5) 多元线性回归 1. 多变量的线性方程 2. 数据读取 3. 特征缩放 4. 构建模型 5. 训练模型 6. 模型预测 7. TensorBoard可视化 1. 多变量的 ...

  9. MOOC网深度学习应用开发1——Tensorflow基础、多元线性回归:波士顿房价预测问题Tensorflow实战、MNIST手写数字识别:分类应用入门、泰坦尼克生存预测

    Tensorflow基础 tensor基础 当数据类型不同时,程序做相加等运算会报错,可以通过隐式转换的方式避免此类报错. 单变量线性回归 监督式机器学习的基本术语 线性回归的Tensorflow实战 ...

最新文章

  1. 性能测试vs负载测试vs压力测试
  2. 字符串的初值 正则表达式 sed应用
  3. 也说说TIME_WAIT状态
  4. *【HDU - 6201】transaction transaction transaction(树形dp 或 spfa最长路 或 网络流)
  5. Java Web中相对路径与绝对路径的分析
  6. BeanUtils.copyProperties使用
  7. 使用Java语言借助Quartz jar包实现定时器的方法
  8. api 文件长度_上传下载API
  9. java 大字符集_JAVA语言之java 乱码 字符集编码
  10. 逻辑面试题:猴子搬香蕉
  11. Easy Connect连接网络请求异常
  12. Linux 中设置计划任务(定时任务)
  13. Ubuntu使用lightdm避坑
  14. GitHub-demo:Image-Stitching
  15. D:\eclipse-workspace\.metadata\.plugins\org.eclipse.core.resources\.projects
  16. mybatis show sql 打印 SQL 语句到控制台
  17. 亲子操打开孩子感官能力
  18. Swift - iOS应用的国际化与本地化
  19. 韩信点兵计算公式与代码
  20. excel怎样汇总多表格平均值

热门文章

  1. jmeter 计数器_JMeter函数
  2. final关键字_Java面试-谈谈对final关键字的理解
  3. ecology9 后端开发环境搭建_利用Vagrant快速搭建开发环境
  4. 吃鱼可以不挑刺了?华中农业大学发现鳊鱼肌间刺表达基因,可培育“无刺鱼”...
  5. STAR直接就可以输出readsCount,为什么还需要featurecounts?
  6. 引号吃掉了我的数据~~~
  7. 32销售是合理的引导用户购买
  8. windows下环境变量配置后没生效,不重启电脑的解决办法
  9. thinkphp5 接入百度语音合成接口,前台播报功能实例
  10. 最大尺寸分辨率_未来就在眼前!全球最大尺寸、最高分辨率硅基OLED显示屏在肥点亮...