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.


相关文章
|
8月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
578 0
|
7月前
|
机器学习/深度学习 算法
采用蚁群算法对BP神经网络进行优化
使用蚁群算法来优化BP神经网络的权重和偏置,克服传统BP算法容易陷入局部极小值、收敛速度慢、对初始权重敏感等问题。
498 5
|
8月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
514 2
|
8月前
|
机器学习/深度学习 并行计算 算法
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
185 8
|
7月前
|
机器学习/深度学习 人工智能 算法
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
286 0
|
8月前
|
机器学习/深度学习 编解码 并行计算
【创新未发表!】基于BKA算法优化-BP、HO算法优化-BP、CP算法优化-BP、GOOSE算法优化-BP、NRBO算法优化-BP神经网络回归预测比较研究(Matlab代码)
【创新未发表!】基于BKA算法优化-BP、HO算法优化-BP、CP算法优化-BP、GOOSE算法优化-BP、NRBO算法优化-BP神经网络回归预测比较研究(Matlab代码)
471 0
|
8月前
|
机器学习/深度学习 算法 PyTorch
【DQN实现避障控制】使用Pytorch框架搭建神经网络,基于DQN算法、优先级采样的DQN算法、DQN + 人工势场实现避障控制研究(Matlab、Python实现)
【DQN实现避障控制】使用Pytorch框架搭建神经网络,基于DQN算法、优先级采样的DQN算法、DQN + 人工势场实现避障控制研究(Matlab、Python实现)
334 0
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
418 17
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
328 10
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。