数据集介绍

共有506个样本,拆分为404个训练样本和102个测试样本

该数据集包含 13 个不同的特征:

  1. 人均犯罪率。
  2. 占地面积超过 25000 平方英尺的住宅用地所占的比例。
  3. 非零售商业用地所占的比例(英亩/城镇)。
  4. 查尔斯河虚拟变量(如果大片土地都临近查尔斯河,则为 1;否则为 0)。
  5. 一氧化氮浓度(以千万分之一为单位)。
  6. 每栋住宅的平均房间数。
  7. 1940 年以前建造的自住房所占比例。
  8. 到 5 个波士顿就业中心的加权距离。
  9. 辐射式高速公路的可达性系数。
  10. 每 10000 美元的全额房产税率。
  11. 生师比(按城镇统计)。
  12. 1000 * (Bk - 0.63) ** 2,其中 Bk 是黑人所占的比例(按城镇统计)。
  13. 较低经济阶层人口所占百分比。

技巧

  • 均方误差 (MSE) 是用于回归问题的常见损失函数(与分类问题不同)。
  • 同样,用于回归问题的评估指标也与分类问题不同。常见回归指标是平均绝对误差 (MAE)。
  • 如果输入数据特征的值具有不同的范围,则应分别缩放每个特征。
  • 如果训练数据不多,则选择隐藏层较少的小型网络,以避免出现过拟合。
  • 早停法是防止出现过拟合的实用技术。

注意事项

如果数据集下载失败,可以在我的Github上下载:https://github.com/MartinLwx/ML-DL

代码

from __future__ import absolute_import, division, print_function

import tensorflow as tf
from tensorflow import keras
import numpy as np boston_housing = keras.datasets.boston_housing
(train_data, train_labels), (test_data, test_labels) = boston_housing.load_data() # 打乱训练集
order = np.argsort(np.random.random(train_labels.shape))
train_data = train_data[order]
train_labels = train_labels[order] #计算平均值和方差的时候不用测试集的数据
mean = train_data.mean(axis=0)
std = train_data.std(axis=0)
train_data = (train_data - mean) / std
test_data = (test_data - mean) / std #因为后文要用earlystop技术所以写了一个函数
def build_model():
model = keras.Sequential([
keras.layers.Dense(64, activation=tf.nn.relu,
input_shape=(train_data.shape[1],)),
keras.layers.Dense(64, activation=tf.nn.relu),
keras.layers.Dense(1)
]) optimizer = tf.train.RMSPropOptimizer(0.001) model.compile(loss='mse',
optimizer=optimizer,
metrics=['mae'])
return model model = build_model() history = model.fit(train_data, train_labels, epochs=EPOCHS,
validation_split=0.2, verbose=0) #返回的是loss和mae(平均绝对误差)
model.evaluate(test_data, test_labels) #输出[16.7056874293907, 2.5310279341305004] model = build_model() # The patience parameter is the amount of epochs to check for improvement
early_stop = keras.callbacks.EarlyStopping(monitor='val_loss', patience=20) history = model.fit(train_data, train_labels, epochs=EPOCHS,
validation_split=0.2, verbose=0,
callbacks=[early_stop]) model.evaluate(test_data, test_labels) #输出了[21.388992309570313, 2.9450648532194248]

参考

https://www.tensorflow.org/tutorials/keras/basic_regression?hl=zh-cn

用keras实现基本的回归问题的更多相关文章

  1. Keras + LSTM 做回归demo

    学习神经网络 想拿lstm 做回归, 网上找demo 基本三种: sin拟合cos 那个, 比特币价格预测(我用相同的代码和数据没有跑成功, 我太菜了)和keras 的一个例子 我基于keras 那个 ...

  2. keras 分类回归 损失函数与评价指标

    1.目标函数 (1)mean_squared_error / mse 均方误差,常用的目标函数,公式为((y_pred-y_true)**2).mean()(2)mean_absolute_error ...

  3. Keras(三)backend 兼容 Regressor 回归 Classifier 分类 原理及实例

    backend 兼容 backend,即基于什么来做运算 Keras 可以基于两个Backend,一个是 Theano,一个是 Tensorflow 查看当前backend import keras ...

  4. 从环境搭建到回归神经网络案例,带你掌握Keras

    摘要:Keras作为神经网络的高级包,能够快速搭建神经网络,它的兼容性非常广,兼容了TensorFlow和Theano. 本文分享自华为云社区<[Python人工智能] 十六.Keras环境搭建 ...

  5. Keras + LSTM 做回归demo 2

    接上回, 这次做了一个多元回归 这里贴一下代码 import numpy as np np.random.seed(1337) from sklearn.model_selection import ...

  6. keras神经网络做简单的回归问题

    咸鱼了半个多月了,要干点正经事了. 最近在帮老师用神经网络做多变量非线性的回归问题,没有什么心得,但是也要写个博文当个日记. 该回归问题是四个输入,一个输出.自己并不清楚这几个变量有什么关系,因为是跟 ...

  7. 莫烦keras学习自修第三天【回归问题】

    1. 代码实战 #!/usr/bin/env python #!_*_ coding:UTF-8 _*_ import numpy as np # 这句话不知道是什么意思 np.random.seed ...

  8. 用Keras搭建神经网络 简单模版(一)——Regressor 回归

    首先需要下载Keras,可以看到我用的是TensorFlow 的backend 自己构建虚拟数据,x是-1到1之间的数,y为0.5*x+2,可视化出来 # -*- coding: utf-8 -*- ...

  9. Keras 回归 拟合 收集

    案例1 from keras.models import Sequential from keras.layers import Dense, LSTM, Activation from keras. ...

随机推荐

  1. [options] 未与 -source 1.6 一起设置引导类路径

    用ant与eclipse编译Cassandra 1.2.19,出现了“ [options] 未与 -source1.6一起设置引导类路径”的警告,并出现了一些编译错误,提示编译失败,上网找了很 多资料 ...

  2. 后台管理系统之系统操作日志开发(Java实现)

    一,功能点 实现管理员操作数据的记录.效果如下 二,代码实现 基于注解的Aop日志记录 1.Log实体类 package com.ideal.manage.guest.bean.log; import ...

  3. 【学习总结】GirlsInAI ML-diary day-1-初识Python-Anaconda-Jupyter

    [学习总结]GirlsInAI ML-diary 总 原博github链接-day1 初识Python-Anaconda-Jupyter: 1-下载并安装Anaconda 官网下载,按指导安装 ana ...

  4. 18-vue-cli脚手架项目中组件的使用

    在webpack-simple模板中,包括webpck模板.一个.vue文件就是一个组件. 为什么会这样呢?因为webpack干活了!webpack的将我们所有的资源文件进行打包.同时webpack还 ...

  5. 自签名证书 nginx tomcat

    给Nginx配置一个自签名的SSL证书 - 廖雪峰的官方网站 https://www.liaoxuefeng.com/article/0014189023237367e8d42829de24b6eaf ...

  6. iOS 10的两个坑

    iOS 10出现白屏幕,其他机型不会. 一个bug 手机连上电脑,在电脑端的Safari里,看到了如下的错误: SyntaxError: Cannot declare a let variable t ...

  7. IdentityServer4【Topic】之登出

    Sign-out 登出 IdentityServer的登出就像删除认证cookie一样简单,但是为了完成一个完整的联合签名,我们必须考虑将用户从客户端应用程序中(甚至可能是上游的Identity提供者 ...

  8. restful 规范(建议)

    需求:开发cmdb,对用户进行管理. 做前后端分离,后端写api(URL),对用户表进行增删改查,应该写四个URL(还要给文档(返回值,返回,请求成功,干嘛,失败,干嘛)),然后分别写视图函数. ht ...

  9. Django--权限信息操作

    一 . 权限控制 表结构的设计 rbca(Role Based Access Control)  基于角色的权限控制 3个model  5张表 class User(models.Model): # ...

  10. kubernetes常用命令

    #.查询信息 kubectl get [需要查询的服务]   node 节点componentstatuses 简写 cs 组件状态namespaces 简写 ns 名命空间pod pod信息 添加  ...