DL之DNN:基于sklearn自带california_housing加利福尼亚房价数据集利用GD神经网络梯度下降算法进行回归预测(数据较多时采用mini-batch方式训练会更快)

简介: DL之DNN:基于sklearn自带california_housing加利福尼亚房价数据集利用GD神经网络梯度下降算法进行回归预测(数据较多时采用mini-batch方式训练会更快)


目录

基于sklearn自带california_housing加利福尼亚房价数据集利用GD神经网络梯度下降算法进行回归预测(数据较多时采用mini-batch方式训练会更快)

输出结果

实现代码


基于sklearn自带california_housing加利福尼亚房价数据集利用GD神经网络梯度下降算法进行回归预测(数据较多时采用mini-batch方式训练会更快)

       该数据包含9个变量的20640个观测值,该数据集包含平均房屋价值作为目标变量和以下输入变量(特征):平均收入、房屋平均年龄、平均房间、平均卧室、人口、平均占用、纬度和经度。

输出结果

epoch: 20 batch_id: 83 Batch loss 0.5640518069267273
……
epoch: 90 batch_id: 203 Batch loss 0.6403363943099976
epoch: 90 batch_id: 204 Batch loss 0.45315566658973694
epoch: 90 batch_id: 205 Batch loss 0.5528439879417419
epoch: 90 batch_id: 206 Batch loss 0.386596143245697

实现代码

1. import tensorflow as tf
2. import numpy as np 
3. from sklearn.datasets import fetch_california_housing 
4. from sklearn.preprocessing import StandardScaler 
5. 
6. scaler = StandardScaler()  #将特征进行标准归一化
7. #获取房价数据
8. housing = fetch_california_housing() 
9. m,n = housing.data.shape 
10. print (housing.keys())        #输出房价的key
11. print (housing.feature_names) #输出房价的特征:
12. print (housing.target)  
13. print (housing.DESCR)  
14. 
15. 
16. housing_data_plus_bias = np.c_[np.ones((m,1)), housing.data] 
17. scaled_data = scaler. fit_transform(housing.data) 
18. data = np.c_[np.ones((m,1)),scaled_data] 
19. 
20. # #T1、传统方式
21. # A = tf.placeholder(tf.float32,shape=(None,3)) 
22. # B = A + 5 
23. # with tf.Session() as sess: 
24. #     test_b_l = B.eval(feed_dict={A:[[1,2,3]]}) 
25. #     test_b_2 = B.eval(feed_dict={A:[[4,5,6],[7,8,9]]}) 
26. #     print(test_b_1) 
27. #     print(test_b_2) 
28. 
29. #T2、采用mini-batch方式
30. X = tf.placeholder(tf.float32, shape=(None, n + 1), name="X") 
31. y = tf.placeholder(tf.float32, shape=(None, 1), name="y") 
32. #采用optimizer计算梯度,设置参数
33. n_epochs = 100
34. learning_rate = 0.01
35. batch_size=100
36. n_batches = int(np.ceil(m / batch_size)) 
37. theta = tf.Variable(tf.random_uniform([n + 1, 1], -1.0, 1.0, seed=42), name="theta")
38. y_pred = tf.matmul(X, theta, name="predictions") 
39. error = y_pred - y 
40. mse = tf.reduce_mean(tf.square(error), name="mse") 
41. optimizer = tf.train.GradientDescentOptimizer(learning_rate=learning_rate) 
42. training_op = optimizer.minimize(mse) 
43. init = tf.global_variables_initializer() 
44. 
45. #定义mini-batch取数据方式
46. def fetch_batch(epoch, batch_index, batch_size): 
47.     np.random.seed(epoch * n_batches + batch_index) 
48.     indices = np.random.randint(m, size=batch_size)
49.     X_batch  = data[indices] 
50.     y_batch = housing.target.reshape(-1, 1)[indices] 
51. return X_batch, y_batch
52. #mini-batch计算过程
53. with tf.Session() as sess: 
54.     sess.run(init) 
55. for epoch in range(n_epochs):#/gfeMat 
56.         avg_cost = 0.
57. for batch_index in range(n_batches): 
58.             X_batch, y_batch = fetch_batch(epoch, batch_index, batch_size) 
59.             sess.run(training_op, feed_dict={X: X_batch, y: y_batch}) 
60. 
61. if epoch % 10 == 0: 
62.                 total_loss = 0
63.                 acc_train = mse.eval(feed_dict={X: X_batch, y: y_batch}) 
64.                 total_loss += acc_train 
65. #print(acc_train, total_loss)
66. print("epoch:",epoch, "batch_id:",batch_index, "Batch loss", total_loss) 
67.


相关文章
|
4月前
|
机器学习/深度学习 算法 前端开发
别再用均值填充了!MICE算法教你正确处理缺失数据
MICE是一种基于迭代链式方程的缺失值插补方法,通过构建后验分布并生成多个完整数据集,有效量化不确定性。相比简单填补,MICE利用变量间复杂关系,提升插补准确性,适用于多变量关联、缺失率高的场景。本文结合PMM与线性回归,详解其机制并对比效果,验证其在统计推断中的优势。
1390 11
别再用均值填充了!MICE算法教你正确处理缺失数据
|
5月前
|
传感器 机器学习/深度学习 算法
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
357 1
|
5月前
|
存储 监控 算法
企业电脑监控系统中基于 Go 语言的跳表结构设备数据索引算法研究
本文介绍基于Go语言的跳表算法在企业电脑监控系统中的应用,通过多层索引结构将数据查询、插入、删除操作优化至O(log n),显著提升海量设备数据管理效率,解决传统链表查询延迟问题,实现高效设备状态定位与异常筛选。
157 3
|
4月前
|
机器学习/深度学习 人工智能 算法
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
211 0
|
机器学习/深度学习 算法 PyTorch
OpenCV-图像着色(采用DNN模块导入深度学习模型)
OpenCV-图像着色(采用DNN模块导入深度学习模型)
471 0
来自OpenCv的DNN模块助力图像分类任务
来自OpenCv的DNN模块助力图像分类任务
342 0
来自OpenCv的DNN模块助力图像分类任务
|
机器学习/深度学习
DNN 模块MVP 模式学习中的一些问题
为了让View部分可以测试,我们使用interface来分离View和业务逻辑的耦合。 我的问题是: Q:对于在aspx.design.cs中声明的控件,我们也需要在interface中声明吗?如果要声明,那么在aspx.design.cs中的控件声明是不是就是interface的实现? 我们不能在interface直接声明跟aspx.design.cs控件同名的变量,我们应该认为aspx.design.cs中的控件就是view的一部分,我们无法控制。
570 0
|
机器学习/深度学习 前端开发
介绍一些免费的DNN模块
Administration Advanced Control Panel Free fully featured ajax enabled control panel replacement for Dot...
944 0
|
机器学习/深度学习
如何使用NAnt 自动打包DNN模块 之一
一、安装NAnt 每次开发完毕一个DNN模块的版本,打包DNN模块是一件很繁琐的事情。更重要的是,为每一个发布的版本做一个安装包如果用手工管理和容易出错。这里介绍一下如何使用NAnt自动打包模块。 首先需要下载NAnt,http://sourceforge.net/projects/nant/ 下载之后解压这个ZIP包 解压之后的目录重名名为NAnt,拷贝到c:下面。
1063 0
|
机器学习/深度学习 内存技术
DNN免费模块集锦
注:本贴还在更新中。 Text/HTML 整站内容替换模块 DNN Text/HTML Replacement Tool  站点计数器模块 Free Visitor Counter CounterXP  Google Analytics 模块 iFinity Google Analyt...
820 0

热门文章

最新文章