首页 > 其他分享 >[Deep Learning] 使用标量回归的Sequential神经网络模型实现房价预测

[Deep Learning] 使用标量回归的Sequential神经网络模型实现房价预测

时间:2025-01-20 16:21:07浏览次数:1  
标签:keras train 模型 Deep Sequential Learning test model

一、内容实现概述

本文主要讲述使用keras库内置的Sequential(序列)模型,实现房价预测。具体实现过程如下:

  • 1. 导入所需库:预先导入keras以及scikit-learn库
  • 2. 导入数据:调用keras库内置的房价数据库(boston_housing)方法load_data(),导入并分割好数据
  • 3. 数据预处理:对房价数据进行特征缩放预处理(由于它的特征列数据所在的维度(范围)不同,不便于统一训练)
  • 4. 构建模型:调用keras库的Sequential模型类,构建模型
  • 5. 添加中间(网络)层,并使用常见的Relu类型激活函数
  • 6. 编译模型:调用keras库的compile()方法对模型进行编译,设置常见的损失函数模板(mse,均方误差)和评估模板(mae,平均绝对误差)
  • 7. 训练模型:调用keras库的fit()方法对训练集数据进行拟合,设置好迭代轮次和批次参数值
  • 8. 评估模型:调用keras库的evaluate()方法对测试集数据进行预测
  • 9. 预测模型:调用keras库的predict()方法对测试集数据进行预测

注:

  • 在Python中使用(导入)keras库时,需要先安装,本实现使用的是pip命令安装 pip install --upgrade keras
  • 在Python中使用(导入)scikit-learn库时,需要先安装,本实现使用的是pip命令安装 pip install -U scikit-learn
  • Scikit-Learn官方教程
  • Keras官方教程

 

二、代码实现

注:源代码地址

# 主题:实现预测波士顿房价(中位数)的神经网络模型
# 模型存在的问题:在house_price_prediction这个例子中,预测房价与实际房价平均相差2600美元,考虑到实际房价范围是10000美元~50000美元,这一差别还是很大的
# 优化策略:根据MAE曲线绘制图结果(剔除前10个数据点),将轮数改为130

import os
os.environ['TF_ENABLE_ONEDNN_OPTS'] = '0'

from sklearn.preprocessing import StandardScaler
from keras.src.datasets import boston_housing
from keras.src.models.sequential import Sequential
from keras.src.layers import Dense


# 1. 导入波士顿房价数据集
(X_train, y_train), (X_test, y_test) = boston_housing.load_data()


# 2. 数据预处理
# a. 数据标准化,也叫特征缩放
# 该数据标准化实现,就是下面的StandardScaler类实现
# mean = X_train.mean(axis=0)
# X_train -= mean
# std = X_train.std(axis=0)
# X_train /= std
# X_test -= mean
# X_test /= std

scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

# 3. 模型处理
# 由于样本数量很少,因此我们将使用一个非常小的模型。它包含两个中间层,每层有64个单元
# 一般来说,训练数据越少,过拟合就会越严重,而较小的模型可以降低过拟合
def build_model():
    model = Sequential()
    model.add(Dense(64, activation='relu'))
    model.add(Dense(64, activation='relu'))
    model.add(Dense(1)) # 模型的最后一层只有一个单元且没有激活函数,表面它是一个线性层。因为这是标量回归(用于预测单一连续值的回归)的典型设置。添加激活函数将限制输出范围。如果向最后一层添加sigmoid激活函数,那么模型只能学会预测0到1的值。这里最后一层是纯线性的,所以模型可以学会预测任意范围的值
    # 第三步:编译模型
    model.compile(optimizer='rmsprop', loss='mse', metrics=['mae'])
    return model

model = build_model()  # 构建Keras模型(已编译)

# 第四步:训练模型
# 使用静默模式参数,verbose=0
model.fit(X_train, y_train, epochs=130, batch_size=16, verbose=0)

# 第五步:评估模型
test_mse_score, test_mae_score = model.evaluate(X_test, y_test)
print("test_mae_score: ", test_mae_score)

# 第六步:预测模型
y_pred = model.predict(X_test)
print("first house price: ", y_pred[0])

 

 

三、运行结果

标签:keras,train,模型,Deep,Sequential,Learning,test,model
From: https://www.cnblogs.com/xl1164191281/p/18681066

相关文章

  • NET8利用SemanticKernel对接DeepSeek
    1usingMarkdownSharp;2usingMicrosoft.Extensions.Hosting;3usingMicrosoft.SemanticKernel;4usingOpenAI;5usingOpenAI.Chat;6usingSystem.ClientModel;7usingSystem.Text;89varbuilder=Host.CreateApplicationBuilder(args);10//buil......
  • 【迁移学习】原型引导领域感知渐进表示学习(prototype-guided domain-aware progressiv
    【迁移学习】原型引导领域感知渐进表示学习(prototype-guideddomain-awareprogressiverepresentationlearningPG-DPRL)(二)【迁移学习】原型引导领域感知渐进表示学习(prototype-guideddomain-awareprogressiverepresentationlearningPG-DPRL)(二)文章目录【迁移学......
  • 远铂DIY官网系统AI助手新增支持DeepSeek-V3 AI模型接口
            近日,量化巨头幻方量化的子公司深度求索(DeepSeek)发布了全新系列模型DeepSeek-V3,并同步开源。这一事件迅速引爆AI圈,DeepSeek-V3不仅霸榜开源模型,更在性能上与全球顶尖闭源模型GPT-4o和Claude-3.5-Sonnet不相上下。    更令人瞩目的是,该模型的训练成本仅......
  • 基于增强学习Q-learning方法的路径规划matlab仿真程序
    基于增强学习Q-learning方法的路径规划matlab仿真程序资源文件列表Q-Learing路径规划MATLAB仿真/17-04-13.tif , 25184Q-Learing路径规划MATLAB仿真/Activity.m , 303Q-Learing路径规划MATLAB仿真/exportfig.m , 31654Q-Learing路径规划MATLAB仿真/filename.eps , 13......
  • 手把手教你使用PySide6搭建AI聊天界面,使用DeepSeek大模型接口
    目录前言一、DeepSeek注册与使用二、安装环境三、界面设计四、后端实现1.QTextEdit输入控件实现2.API请求与响应处理3.消息显示与时间显示4.实现头像绘制和文本的绘制5.更换头像五、完整源码下载和使用方法总结前言随着深度学习和自然语言处理技术的不断进步,问答......
  • [Machine Learning] 使用经典聚类模型k均值(k-means)实现blobs聚类
    一、内容实现概述本文主要讲述使用scikit-learn库内置的kNN模型,实现鸢尾花分类。具体实现过程如下:1.导入所需库:预先导入numpy、matplotlib以及scikit-learn库2.导入数据:调用sklearn库内置的加载数据的方法make_blobs(),导入斑点数据3.数据预处理:对blobs数据进行预处理,获得......
  • [Machine Learning] 使用经典分类模型k最近邻(kNN)实现鸢尾花分类
    一、内容实现概述本文主要讲述使用scikit-learn库内置的kNN模型,实现鸢尾花分类。具体实现过程如下:1.导入所需库:预先导入scikit-learn库2.导入数据:调用sklearn库内置的加载数据的方法load_iris(),导入鸢尾花数据3.数据预处理:对鸢尾花数据进行预处理,获得特征数据与目标数据4......
  • [Machine Learning] 使用经典分类模型k-最近邻(kNN)实现手写数字识别
    一、内容实现概述本文主要讲述使用scikit-learn库内置的kNN模型,实现手写数字识别预测房价实现过程如下:导入所需库:预先导入pandas、matplotlib以及scikit-learn库导入数据:使用pandas库的文件解析方法read_csv(),读取房价文件数据数据预处理:对房价数据进行预处理,获得特征数据与......
  • DeepSeek-V3 的 MoE 架构解析:细粒度专家与高效模型扩展
    DeepSeek-V3采用的DeepSeekMoE架构,通过细粒度专家、共享专家和Top-K路由策略,实现了模型容量的高效扩展。每个MoE层包含1个共享专家和256个路由专家,每个Token选择8个路由专家,最多路由至4个节点。这种稀疏激活的机制,使得DeepSeek-V3能够在不显著增加计算成本的......
  • 【论文阅读】GROOT:Learning to Follow Instructions by Watching Gameplay Viedos
    GROOT:LearningtoFollowInstructionsbyWatchingGameplayViedos.作者为北京大学梁一韬所在的TeamCraftJarvis,发表时间为2023Background在开放世界下开发类人级别的具身智能体以解决开放式任务一直是人工智能领域长期以来追求的目标。随着ChatGPT的流行,近年来涌现了一批......