对于波士顿房间这种多元线性回归问题,完成了一版代码。
在网上搜索了很多波士顿房价数据,发现免费下载的多是data格式,txt格式,方便大家敲码,我转成了excel格式并且上传到csdn。代码随便拿,整理数据不易。发到csdn给大家做练习用,我也顺便攒点积分。希望大家理解。
https://download.csdn.net/download/weixin_40983190/11832951
下面这段代码是完整的可运行代码,注释应该是相当清楚了。另外有几点需要特别说明的
1、数据预处理部分由于下载的房价中位数中有部分数据显示为空,采用平均房价填补了这部分空数据
2、损失韩式还是用来均方差,通过训练发现40步左右就可以下降到29左右,而且后续改善不明显,我自己的机器比较渣,大家可以多试试其他超参数
3、不同于12个因素影响版本的波士顿房价数据,本例使用的是13个因素
4、本例还是用单例来做的,可以用批量来修改,但是对这样的样本规模,意义不大
5、项目添加了tensorboard图,默认生成的数据文件放在D:\log下

#波士顿房价问题是标准的多元线性回归问题
#波士顿房价数据整理好后放在本地
import os
import pandas as pd
import numpy as np
import tensorflow as tf
from sklearn import preprocessing#读取boston房价数据,我保存在当前目录下的data文件夹下
data_file_path = "data/boston_price.xlsx"#使用pandas来处理数据
df_data = pd.read_excel(data_file_path)
'''
波士顿房价表头说明,供13个特征参数和一个输出,且没有空值
CRIM:城镇人均犯罪率
ZN:住宅用地所占比例,25000英尺
INDUS:城镇中非商业用地的所占比例
CHAS:查尔斯和虚拟变量,用于恢复分析
NOX:环保指标
RM:每栋住宅的房间数
AGE:1940年以前建成的自主单位的比例
DIS:距离五个波士顿就业中心的加权距离
RAD:距离高速公路的遍历指数
TAX:每一万美元的不动产税率
PTRATIO:城镇中教师学生比率
B:城镇中黑人比率
LSTAT:地区有多少百分比的房东属于是低收入阶层
MEDV:自住房屋房价的中位数
'''#定义预处理函数
def prepare_date(df_data):#将数据表中的空值使用平均值填充medv_mean = df_data['MEDV'].mean()df_data['MEDV'] = df_data['MEDV'].fillna(medv_mean)#将数据转化为多维数组ndarray = df_data.values#获取特征值0~13列是特征值features = ndarray[:,:13]label = ndarray[:,13:]#将特征值标准化minmax_scale = preprocessing.MinMaxScaler(feature_range = (0,1))norm_features = minmax_scale.fit_transform(features)return norm_features,label#将节点使用tensorboard展示出来
tf.reset_default_graph()  #清空之前的计算图#定义两个变量,也就是要求的变量
#其中w是一个13*1维矩阵
w = tf.Variable(tf.random_normal([13,1],stddev=0.01),name='w')
b = tf.Variable(1.0,name='b')#给出预处理后的数据
x_data,y_data = prepare_date(df_data)
print(y_data)#定义模型,线性模型
def model(x,w,b):return tf.matmul(tf.cast(x,tf.float32),w)+b#定义预测操作节点
pred = model(x_data,w,b)#定义均方差损失函数
loss_function = tf.reduce_mean(tf.pow(y_data-pred,2))#定义两个占位符
x = tf.placeholder(tf.float64,[None,13],name="x")
y = tf.placeholder(tf.float64,[1,1],name="y")#定义超参数
train_epochs = 100 #迭代轮数
learning_rate = 0.1 #学习率#创建优化器
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss_function)#申明一个会话,并启动
sess = tf.InteractiveSession()
init = tf.global_variables_initializer() #初始化变量节点
sess.run(init)#迭代训练网络
for epoch in range(train_epochs):loss_sum = 0.0 #记录损失值for xs,ys in zip(x_data,y_data):#将张量变为矩阵xs = xs.reshape(1,13)ys = ys.reshape(1,1)#将数据取出并传入到占位符中_,loss = sess.run([optimizer,loss_function],feed_dict={x:xs,y:ys})loss_sum=loss_sum+loss;   #统计损失函数总和#为防止假性训练成果,打乱数据顺序from sklearn.utils import shufflex_data,y_data = shuffle(x_data,y_data)b0temp = b.eval(session = sess)w0temp = w.eval(session = sess)loss_average = loss_sum/len(y_data)#每训练10步做一次打印if (epoch%10 == 0):print("epoch = ",epoch+1,"loss=",loss_average,"b=",b0temp,"w=",w0temp)#训练结束将w和b打印出来下来
print("The boston_price is :",sess.run(w),sess.run(b))#将计算图日志保存,用以tensorBoard显示
logdir = 'D:\log'
#使用writer写入
writer = tf.summary.FileWriter(logdir,tf.get_default_graph())
writer.close()

训练出的损失函数在29左右就收敛了,超参数选择100,0.1
运行tensorboard --logdir=D:\log启动tensorboad
进入 http://LAPTOP-0AIT3G5I:6006/查看节点流图

多远线性回归代码-波士顿房价问题相关推荐

  1. 使用线性回归实现波士顿房价预测

    使用线性回归实现波士顿房价预测 本文不进行线性回归基础知识讲解,只提供三种方法对波士顿房价进行预测,这三种方法分别是: 1.使用正规方程的优化方法对波士顿房价进行预测 2.使用梯度下降的优化方法对波士 ...

  2. 使用线性回归构建波士顿房价预测模型

    使用线性回归构建波士顿房价预测模型 描述 波士顿房价数据集统计了波士顿地区506套房屋的特征以及它们的成交价格,这些特征包括周边犯罪率.房间数量.房屋是否靠河.交通便利性.空气质量.房产税率.社区师生 ...

  3. 机器学习(三):基于线性回归对波士顿房价预测

    文章目录 专栏导读 1.线性回归原理 2.实战案例 2.1数据说明 2.2导入必要的库并加载数据集 2.3划分训练集和测试集 2.4创建线性回归模型 2.5模型预测评价 专栏导读 ✍ 作者简介:i阿极 ...

  4. python学习笔记 4 - 线性回归、波士顿房价数据分析

    1 什么是机器学习? 给定一组(x(i), y(i)),给定一个模型,将x(i)输入模型后得到y(i)^ 计算y(i)和y(i)^的差距,差距越小,模型越优. 通过不断地优化模型,使得差距越来越小,这 ...

  5. 【sklearn】线性回归 - 预测波士顿房价

    目的 本文使用Python的sklearn类库,基于对机器学习线性回归算法的理论学习,利用sklearn中集成的波士顿房价数据,以此来对线性回归的理论知识进行一次实践总结. 本文不以预测的准确率为目的 ...

  6. 基于线性回归的波士顿房价预测

    折线图代码 #-*-coding:utf-8-*- import pandas as pd import numpy as np import matplotlib.pyplot as plt #加载 ...

  7. 人工智能与大数据—线性回归之波士顿房价预测

    一,首先导入必要的包 1,paddle.fluid--->PaddlePaddle深度学习框架 2,numpy---------->python基本库,用于科学计算 3,os------- ...

  8. 机器学习(11)线性回归(2)实战 -- 正规方程优化、梯度下降优化(波士顿房价预测)

    目录 一.波士顿房价预测(正规方程优化) API 1.获取数据集 2.划分数据集 3.标准化 4. 创建预估器,得到模型 5.模型评估(均方差评估) 代码 二.波士顿房价预测(正规方程优化) API ...

  9. 线性回归 波士顿房价预测

    目录 线性回归对波士顿房价进行预测 一.基础概念: 1. 线性回归 2. 平均绝对误差,均方误差的理解 3. 决定系数 二.实验步骤与分析 1. 数据背景 2. 数据读入 3. 定义特征值.目标值 4 ...

最新文章

  1. 工程师进阶之路(四)
  2. 50万高奖金!2022年第一场赛事来了
  3. 如何选择正确的RAID级别
  4. 是时候搁置Grunt,耍一耍gulp了
  5. keras cnn注意力机制_TensorFlow、PyTorch、Keras:NLP框架哪家强
  6. android popupwindow 自定义背景,android – 无法将PopupWindow背景设置为透明
  7. 用java实现冒泡排序_Java实现冒泡排序
  8. 【白皮书分享】站外种草白皮书.pdf(附下载链接)
  9. php初学遇到的问题。
  10. 2432功率计使用说明_Quarq功率计的安装、使用和维护
  11. python distance matrix_Python 矩阵转置的几种方法小结
  12. ffmpeg+rtmp推流/拉流(十)
  13. LanguageTool精简的两个思路
  14. 如何构建健商品期carry组合
  15. JavaScript判断中英文字符
  16. centos:/usr/bin/perl is needed by mysql-community-server
  17. 计算机与小学教学联系论文,湖南自考本科论文从小学计算机教学实践谈学生“主体性”的发展 - 湖南自考生网...
  18. hadoop集群搭建与使用
  19. Centos7 配置netatalk搭建mac Time Machine
  20. 【定义】向量与向量组

热门文章

  1. java对象与byte[]数组之间的相互转化,压缩解压缩操作
  2. 董事会审计委员会职能是什么?
  3. 帮助文档的使用和制作
  4. 查看终端设备接入交换机的端口方法
  5. 各种常见的word格式符号(回车字符、软回车、分页符等)
  6. mPEG2000-EP,含有环氧基的线性单功能PEG,mPEG2000-Epoxide
  7. 4-Arm PEG-DSPE 四臂-聚乙二醇-磷脂 可用于修饰小分子材料
  8. AltiumDesigner工具使用
  9. AST实战|免安装一键还原ob混淆详细使用教程
  10. 生产者与消费者问题C语言实现