文章目录

  • 使用Keras构建回归模型
    • 1、导入相关工具包
    • 2、加载数据集
    • 3、划分训练集和测试集
    • 4、数据标准化
    • 5、模型构建
    • 6、打印模型信息
    • 7、模型编译
    • 8、模型训练
    • 9、测试集上评估
    • 10、预测:
    • 11、完整代码

使用Keras构建回归模型

  • 数据集:加州住房数据集
  • 模型:MLP
  • 框架:Keras

1、导入相关工具包

sklearn中导入数据集

from sklearn.datasets import fetch_california_housing
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
import keras

2、加载数据集

# housing_data 是一个包含数据、标签的字典
housing_data = fetch_california_housing()

3、划分训练集和测试集

使用sklearn中的 train_test_split 进行数据划分,默认测试集占比25%。

x_train_all, x_test_all, y_train_all , y_test_all = train_test_split(housing_data["data"], housing_data["target"])

4、数据标准化

使用sklearn中的 StandardScaler 进行数据标准化,由于采用梯度下降法,故标准化可以加速模型收敛

scaler = StandardScaler()              # 标准化的对象
x_train_all = scaler.fit_transform(x_train_all)    # 对训练集进行拟合,标准化
x_test_all = scaler.transform(x_test_all)          # 在测试集上标准化

5、模型构建

由于是回归模型,因此,输出层神经元个数为1,并且不需要激活函数,输出神经元会不断逼近真实标签值,

model = keras.models.Sequential(name="MLP-回归")
model.add(keras.layers.Dense(30, activation="relu", input_shape=(x_train_all.shape[1], )))
model.add(keras.layers.Dense(1))

6、打印模型信息

model.summary()

7、模型编译

采用随机梯度下降法进行优化,损失函数为均方误差

model.compile(optimizer="sgd", loss=keras.losses.mean_squared_error)

8、模型训练

验证集占训练集10%,训练集每轮训练完后,在验证集上进行验证

history = model.fit(x_train_all, y_train_all, epochs= 50, validation_split=0.1)

9、测试集上评估

mse = model.evaluate(x_test_all, y_test_all)           # 返回测试集的mse
print(mse)

10、预测:

x_new = x_test_all[:10]         # 取测试集前10个样本,进行预测
y_pre = model.predict(x_new)

11、完整代码

# 导入相关工具库
from sklearn.datasets import fetch_california_housing
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
import keras# 加载数据集
housing_data = fetch_california_housing()# 划分训练集和测试集
x_train_all, x_test_all, y_train_all , y_test_all = train_test_split(housing_data["data"], housing_data["target"])# 数据处理(标准化)
scaler = StandardScaler()
x_train_all = scaler.fit_transform(x_train_all)
x_test_all = scaler.transform(x_test_all)# 构建模型
model = keras.models.Sequential(name="MLP-回归")
model.add(keras.layers.Dense(30, activation="relu", input_shape=(x_train_all.shape[1], )))
model.add(keras.layers.Dense(1))# 打印模型结构信息
model.summary()# 模型编译
model.compile(optimizer="sgd", loss=keras.losses.mean_squared_error)# 模型训练
history = model.fit(x_train_all, y_train_all, epochs= 50, validation_split=0.1)# 在测试集上评估
mse = model.evaluate(x_test_all, y_test_all)           # 返回测试集的loss和mse
print(mse)# 预测
x_new = x_test_all[:10]
y_pre = model.predict(x_new)

2、使用Keras构建回归模型相关推荐

  1. R语言使用caret包构建遗传算法树模型(Tree Models from Genetic Algorithms )构建回归模型、通过method参数指定算法名称

    R语言使用caret包构建遗传算法树模型(Tree Models from Genetic Algorithms  )构建回归模型.通过method参数指定算法名称.通过trainControl函数控 ...

  2. R语言使用caret包构建岭回归模型(Ridge Regression )构建回归模型、通过method参数指定算法名称、通过trainControl函数控制训练过程

    R语言使用caret包构建岭回归模型(Ridge Regression )构建回归模型.通过method参数指定算法名称.通过trainControl函数控制训练过程 目录

  3. R语言使用caret包构建随机森林模型(random forest)构建回归模型、通过method参数指定算法名称、通过ntree参数指定随机森林中树的个数

    R语言使用caret包构建随机森林模型(random forest)构建回归模型.通过method参数指定算法名称.通过ntree参数指定随机森林中树的个数 目录

  4. R语言使用caret包构建gbdt模型(随机梯度提升树、Stochastic Gradient Boosting )构建回归模型、通过method参数指定算法名称

    R语言使用caret包构建gbdt模型(随机梯度提升树.Stochastic Gradient Boosting )构建回归模型.通过method参数指定算法名称 目录

  5. R语言构建回归模型并进行模型诊断(线性关系不满足时)、进行变量变换(Transforming variables)、使用car包中的boxTidwell函数对预测变量进行Box–Tidwell变换

    R语言构建回归模型并进行模型诊断(线性关系不满足时).进行变量变换(Transforming variables).使用car包中的boxTidwell函数对预测变量进行Box–Tidwell变换 目 ...

  6. R语言使用xgboost构建回归模型:vtreat包为xgboost回归模型进行数据预处理(缺失值填充、缺失值标识、离散变量独热onehot编码)、构建出生体重的xgboost模型回归模型

    R语言使用xgboost构建回归模型:vtreat包为xgboost回归模型进行数据预处理(缺失值填充.缺失值标识.离散变量独热onehot编码).构建出生体重的xgboost模型回归模型 目录

  7. R语言构建回归模型并获取对于新数据预测的预测区间实战:给出预测区间而不是一个具体的预测值、置信区间与预测区间的异同

    R语言构建回归模型并获取对于新数据预测的预测区间实战:95%或者99%预测区间而不是一个具体的预测值.置信区间与预测区间的异同 目录

  8. 8.1 mnist_soft,TensorFlow构建回归模型

    背景 之前已经写了很多TensorFlow的基本知识,现在利用TensorFlow实现一些简单的功能,对原来的知识进行串联,并初步入门,该部分共包括三篇,分别实现的是回归模型,浅层神经网络,KNN. ...

  9. mae python实现_使用Python进行机器学习:从0到1,构建回归模型(附完整教程)

    摘要 在本文中,我将使用数据科学和Python来解释回归用例的主要步骤,从数据分析到理解模型输出. 我将介绍一些非常有用的Python代码,当你遇到相同的情况时,只需要复制,粘贴,运行,就能轻松使用. ...

  10. R语言使用lm函数构建回归模型、使用broom包的augmented函数将模型结果存入dataframe中、使用ggplot2可视化回归残差图(拟合值和残差值的关系图)

    R语言使用lm函数构建回归模型.使用broom包的augmented函数将模型结果存入dataframe中.使用ggplot2可视化回归残差图(拟合值和残差值的关系图) 目录

最新文章

  1. Cisco路由器故障诊断技术
  2. 浪度九州城首页到内容页
  3. 30 Days of .NET [Windows Mobile Applications] - Day 01: Minutes to Midnight Countdown(午夜倒数器)...
  4. reactjs定义组件:类式组件
  5. win7系统电脑自动重启解决方法
  6. 基于密度的停留点识别方法
  7. STP/RSTP/MSTP经典分析与对比
  8. Zabbix server is not running:the information displayed may not be current
  9. 推算周期软件有哪些,推算周期软件怎么用
  10. 爱奇艺落子IP源头 全产业链开放协同助攻原创内容
  11. 计算机快捷键word,计算机类009-Word的快捷键集锦.doc
  12. 最近在测FREEBSD平台下ISP邮件系统前的准备知识摘录
  13. Arduino开发教程
  14. 殿影酒店即将开业,推出电影和酒店的跨界创新模式
  15. 嵩天老师《Python语言程序设计》第6周测试题笔记
  16. 显卡 1050Ti pytorch 安装
  17. 转载 | 身份访问与管理(IAM)的定义、应用与提供商
  18. freeman 链码
  19. python模拟用户登录注册定义函数user_python模拟登录通达信
  20. linux写磁带软件,如何在Linux下安装磁带机

热门文章

  1. 《红周刊》独家对话芒格:你可以随自己喜欢一辈子不理性,那必然承受糟糕结果
  2. 暴增14倍!这家港股最大基金公司,1年净利20亿,竟是因为这个!
  3. ZStack实践汇 | 快照和备份的区别
  4. 【优化分配】基于matlab遗传算法求解医疗资源分配优化问题【含Matlab源码 1419期】
  5. 【图像分割】基于matlab GUI FCMKFCM MRI图像分割【含Matlab源码 582期】
  6. SPSS AMOS常用统计软件及科研神器安装包资源【SPSS 006期】
  7. 线性分类模型和向量矩阵求导_自然语言处理中向量空间模型的矩阵设计
  8. 根据吴安德(斯坦福大学深度学习讲座),您应该如何阅读研究论文
  9. python exception最简单的应用(基本可以满足大部分需求)(异常、raise的使用)
  10. 解决方案:Windows下修改hosts文件