波士顿房价数据集包括506个样本,每个样本包括12个特征变量和该地区的平均房价。房价显然和多个特征变量是相关的,因此需要选择多个特征变量来建立线性方程,这就是典型的多变量线性回归问题,下面是多元线性回归模型公式:y=w0+w1x1+w2x2+...+wn*xn+b
下面是波士顿房价的数据集部分展示,后面我们将使用数据集进行模型实现。
通过pandas读取数据文件,列出统计概述。
登录后复制
1.
登录后复制
1.
首先定义特征数据和标签数据的占位符,shape中None表示行的数量未知,在实际训练时决定一次代入多少行样本,从一个样本的随机SDG到批量SDG都可以。
登录后复制
x = tf.placeholder(tf.float32,[None,12],name="x")y = tf.placeholder(tf.float32,[None,1],name="y")1.
定义模型函数
设置训练超参数
登录后复制
#迭代次数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.
声明会话
登录后复制
sess = tf.Session()1.
变量初始化
登录后复制
init = tf.global_variables_initializer()sess.run(init)1.
模型训练阶段,设置迭代次数,每次通过将样本逐个输入模型,进行梯度下降优化操作,每轮迭代后,绘制出模型曲线
下图为最后的训练结果
登录后复制
plt.plot(loss_list)1.
声明会话
登录后复制
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.
查看计算图TensorBoard查看loss好啦,最后赶快动手尝试一下属于你们的第一个多元回归模型的建立吧!
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删