ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

DL:基于sklearn的加利福尼亚房价数据集实现GD算法

2021-06-15 21:06:16  阅读:269  来源: 互联网

标签:DL housing print GD tf theta data sklearn


DL:基于sklearn的加利福尼亚房价数据集实现GD算法

 

 

目录

输出结果

代码设计


 


 

输出结果

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

更新……

 

代码设计

#DL:基于sklearn的加利福尼亚房价数据集实现GD算法
import tensorflow as tf
import numpy as np 
from sklearn.datasets import fetch_california_housing 
from sklearn.preprocessing import StandardScaler 

scaler = StandardScaler()  #将特征进行标准归一化
#获取房价数据
housing = fetch_california_housing() 
m,n = housing.data.shape 
print (housing.keys())        #输出房价的key
print (housing.feature_names) #输出房价的特征:
print (housing.target)  
print (housing.DESCR)  

housing_data_plus_bias = np.c_[np.ones((m,1)), housing.data] 
scaled_data = scaler. fit_transform(housing.data) 
data = np.c_[np.ones((m,1)),scaled_data] 
#设置参数
n_epoch = 1000 
learning_rate = 0.01 

#设置placeholder即灌入数据
X = tf.constant(data,dtype = tf.float32,name = "X") 
y = tf.constant(housing.target.reshape(-111),dtype=tf.float32,name='y') 
#theta理解为权重,random_uniform途中创建包含随机值的节点即初始权重是随机赋值的,理解为numpy的random函数
theta = tf.Variable(tf.random_uniform([n+1, 1], -1, 1),name='theta')    
y_pred = tf.matmul(X,theta,name='prediction') 
error = y_pred - y 
mse = tf.reduce_mean(tf.square(error),name='mse') #采用的成本函数是mse即Mean Squared Error均方误差

#计算梯度公式,关键一步
# #T1、手动求导
# gradient = 2/m * tf.matmul(tf.transpose(X),error) 
# training_op = tf.assign(theta,theta - learning_rate * gradient) #assign将新值赋值给一个变量的节点,即权重更新公式的迭代过程

#T2、自动求导
optimizer = tf.train.GradientDescentOptimizer(learning_rate = learning_rate)

#参数初始化,启动session,将graph放入session进行每一步的更新
init = tf.global_variables_initializer() 
with tf.Session() as sess: 
    sess.run(init) 
    for epoch in range(n_epoch): 
        if epoch % 100 == 0: 
            print ("Epoch",epoch, "MSE =", mse.eval()) 
#         sess.run(training_op)
    print('best theta:',theta.eval())

 

GitHub相关文章
DL:基于sklearn的加利福尼亚房价,数据集较多时采用mini-batch方式训练会更快
TF保存模型:基于TF进行模型的保存与恢复加载,调用Save()函数即可

 

 

 

标签:DL,housing,print,GD,tf,theta,data,sklearn
来源: https://blog.51cto.com/u_14217737/2906615

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有