TensorFlow实战:解决多元线性回归问题

1、 情景引入

波士顿房价数据集包括506个样本,每个样本包括12个特征变量和该地区的平均房价。房价显然和多个特征变量是相关的,因此需要选择多个特征变量来建立线性方程,这就是典型的多变量线性回归问题,下面是多元线性回归模型公式:y=w0+w1x1+w2x2+...+wn*xn+b
下面是波士顿房价的数据集部分展示,后面我们将使用数据集进行模型实现。TensorFlow 实战多元线性回归问题_JAVA

2、读取数据并归一化

通过pandas读取数据文件,列出统计概述。

登录后复制

1.
  1. %matplotlib inline
  2. import matplotlib.pyplot as plt
  3. import numpy as np
  4. import tensorflow as tf
  5. import pandas as pd
  6. #读取数据文件
  7. df = pd.read_csv("./boston.csv",header=0)
  8. #显示数据摘要描述信息
  9. print(df.describe())

TensorFlow 实战多元线性回归问题_JAVA_02

登录后复制

1.
  1. #对数据归一化到0-1之间
  2. for i in range(12):
  3. df[:,i]=(df[:,i]-df[:,i].min())/(df[:,i].max()-df[:,i].min())
  4. #x_data为归一化后的前12列特征数据
  5. x_data = df[:,:12]
  6. #y_data为最后一列标签数据
  7. y_data = df[:12]

3、模型定义

首先定义特征数据和标签数据的占位符,shape中None表示行的数量未知,在实际训练时决定一次代入多少行样本,从一个样本的随机SDG到批量SDG都可以。

登录后复制

x = tf.placeholder(tf.float32,[None,12],name="x")y = tf.placeholder(tf.float32,[None,1],name="y")1.

定义模型函数TensorFlow 实战多元线性回归问题_JAVA_03

4、训练模型

设置训练超参数

登录后复制

#迭代次数train_epochs = 50#学习率learning_rate = 0.011.

定义均方差损失函数

登录后复制

with tf.name_scope("LossFunction"):    loss_function = tf.reduce_mean(tf.pow(y-pred,2)) #均方误差1.

选择优化器,初始化一个GradientDescentOptimizer

登录后复制

#梯度下降优化器optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss_function)1.

5、创建会话

声明会话

登录后复制

sess = tf.Session()1.

变量初始化

登录后复制

init = tf.global_variables_initializer()sess.run(init)1.

6、迭代训练

模型训练阶段,设置迭代次数,每次通过将样本逐个输入模型,进行梯度下降优化操作,每轮迭代后,绘制出模型曲线

TensorFlow 实战多元线性回归问题_JAVA_04下图为最后的训练结果

TensorFlow 实战多元线性回归问题_JAVA_05

7、训练结果的可视化

TensorFlow 实战多元线性回归问题_JAVA_06


登录后复制

plt.plot(loss_list)1.

TensorFlow 实战多元线性回归问题_JAVA_07

8、TensorBoard 可视化

声明会话

登录后复制

sess = tf.Session()#定义初始化变量的操作init = tf.global_variables_initializer()1.

为 TensorBoard 可视化准备数据

登录后复制

#设置日志存储目录logdir = 'd:/log'sum_Loss = tf.summary.scalar("loss",loss_function)merged = tf.summary
.merge_all()1.

创建摘要的文件写入器

登录后复制

sess.run(init)writer = tf.summary.FileWwriter(logdir,sess.graph)1.

查看计算图TensorFlow 实战多元线性回归问题_JAVA_08TensorBoard查看lossTensorFlow 实战多元线性回归问题_JAVA_09好啦,最后赶快动手尝试一下属于你们的第一个多元回归模型的建立吧!

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

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

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

* 公司名称:

姓名不为空

手机不正确

公司不为空