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

本文涉及的产品
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 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())


相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
2月前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
137 4
|
7月前
|
机器学习/深度学习 算法 PyTorch
【从零开始学习深度学习】38. Pytorch实战案例:梯度下降、随机梯度下降、小批量随机梯度下降3种优化算法对比【含数据集与源码】
【从零开始学习深度学习】38. Pytorch实战案例:梯度下降、随机梯度下降、小批量随机梯度下降3种优化算法对比【含数据集与源码】
|
5月前
|
机器学习/深度学习 数据采集 数据可视化
基于python 机器学习算法的二手房房价可视化和预测系统
文章介绍了一个基于Python机器学习算法的二手房房价可视化和预测系统,涵盖了爬虫数据采集、数据处理分析、机器学习预测以及Flask Web部署等模块。
176 2
基于python 机器学习算法的二手房房价可视化和预测系统
|
5月前
|
数据采集 机器学习/深度学习 算法
【python】python客户信息审计风险决策树算法分类预测(源码+数据集+论文)【独一无二】
【python】python客户信息审计风险决策树算法分类预测(源码+数据集+论文)【独一无二】
|
6月前
|
机器学习/深度学习 数据采集 人工智能
AI技术实践:利用机器学习算法预测房价
人工智能(Artificial Intelligence, AI)已经深刻地影响了我们的生活,从智能助手到自动驾驶,AI的应用无处不在。然而,AI不仅仅是一个理论概念,它的实际应用和技术实现同样重要。本文将通过详细的技术实践,带领读者从理论走向实践,详细介绍AI项目的实现过程,包括数据准备、模型选择、训练和优化等环节。
599 3
|
6月前
|
机器学习/深度学习 数据采集 监控
算法金 | DL 骚操作扫盲,神经网络设计与选择、参数初始化与优化、学习率调整与正则化、Loss Function、Bad Gradient
**神经网络与AI学习概览** - 探讨神经网络设计,包括MLP、RNN、CNN,激活函数如ReLU,以及隐藏层设计,强调网络结构与任务匹配。 - 参数初始化与优化涉及Xavier/He初始化,权重和偏置初始化,优化算法如SGD、Adam,针对不同场景选择。 - 学习率调整与正则化,如动态学习率、L1/L2正则化、早停法和Dropout,以改善训练和泛化。
55 0
算法金 | DL 骚操作扫盲,神经网络设计与选择、参数初始化与优化、学习率调整与正则化、Loss Function、Bad Gradient
|
7月前
|
存储 算法 Java
Java数据结构与算法:用于高效地存储和检索字符串数据集
Java数据结构与算法:用于高效地存储和检索字符串数据集
|
8月前
|
机器学习/深度学习 分布式计算 并行计算
【机器学习】怎样在非常大的数据集上执行K-means算法?
【5月更文挑战第13天】【机器学习】怎样在非常大的数据集上执行K-means算法?
|
12天前
|
机器学习/深度学习 算法
基于改进遗传优化的BP神经网络金融序列预测算法matlab仿真
本项目基于改进遗传优化的BP神经网络进行金融序列预测,使用MATLAB2022A实现。通过对比BP神经网络、遗传优化BP神经网络及改进遗传优化BP神经网络,展示了三者的误差和预测曲线差异。核心程序结合遗传算法(GA)与BP神经网络,利用GA优化BP网络的初始权重和阈值,提高预测精度。GA通过选择、交叉、变异操作迭代优化,防止局部收敛,增强模型对金融市场复杂性和不确定性的适应能力。
145 80
|
6天前
|
机器学习/深度学习 算法
基于遗传优化的双BP神经网络金融序列预测算法matlab仿真
本项目基于遗传优化的双BP神经网络实现金融序列预测,使用MATLAB2022A进行仿真。算法通过两个初始学习率不同的BP神经网络(e1, e2)协同工作,结合遗传算法优化,提高预测精度。实验展示了三个算法的误差对比结果,验证了该方法的有效性。

热门文章

最新文章