博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Keras(二)回归模型实战
阅读量:4201 次
发布时间:2019-05-26

本文共 6588 字,大约阅读时间需要 21 分钟。

本文将介绍如下内容:

  • 下载并使用sklearn中的数据集
  • 使用“pprint”查看数据集样例
  • 拆分数据集中的数据为 训练数据、验证数据、测试数据
  • 在将数据带入到模型之前,先进行预处理-训练、验证、测试数据标准化
  • 构建回归模型、模型层级图、编译模型(添加损失函数、优化器)、添加回调函数
  • 训练构建的模型
  • 得到训练曲线图
  • 调用估计器

一,下载并使用sklearn中的数据集

import matplotlib as mplimport matplotlib.pyplot as pltimport numpy as npimport sklearnimport pandas as pdimport osimport sysimport timeimport tensorflow as tffrom tensorflow import keras# 1,打印使用的python库的版本信息print(sys.version_info)for module in mpl, np, pd, sklearn, tf, keras:    print(module.__name__, module.__version__)   # 2,下载并使用sklearn中的“fetch_california_housing”数据集from sklearn.datasets import fetch_california_housinghousing = fetch_california_housing()print(housing.DESCR)print(housing.data.shape)print(housing.target.shape)#-----output-------------------(20640, 8)(20640,)

二,使用“pprint”查看数据集样例

import pprintpprint.pprint(housing.data[0:5])pprint.pprint(housing.target[0:5])#-----output-------------------array([[ 8.32520000e+00,  4.10000000e+01,  6.98412698e+00,         1.02380952e+00,  3.22000000e+02,  2.55555556e+00,         3.78800000e+01, -1.22230000e+02],       [ 8.30140000e+00,  2.10000000e+01,  6.23813708e+00,         9.71880492e-01,  2.40100000e+03,  2.10984183e+00,         3.78600000e+01, -1.22220000e+02],       [ 7.25740000e+00,  5.20000000e+01,  8.28813559e+00,         1.07344633e+00,  4.96000000e+02,  2.80225989e+00,         3.78500000e+01, -1.22240000e+02],       [ 5.64310000e+00,  5.20000000e+01,  5.81735160e+00,         1.07305936e+00,  5.58000000e+02,  2.54794521e+00,         3.78500000e+01, -1.22250000e+02],       [ 3.84620000e+00,  5.20000000e+01,  6.28185328e+00,         1.08108108e+00,  5.65000000e+02,  2.18146718e+00,         3.78500000e+01, -1.22250000e+02]])array([4.526, 3.585, 3.521, 3.413, 3.422])

三,拆分数据集中的数据为 训练数据、验证数据、测试数据

from sklearn.model_selection import train_test_splitx_train_all, x_test, y_train_all, y_test = train_test_split(housing.data, housing.target, random_state=7,test_size=0.3)x_train, x_valid, y_train, y_valid = train_test_split(x_train_all, y_train_all, random_state = 11,test_size=0.3)print(x_train.shape, y_train.shape)print(x_valid.shape, y_valid.shape)print(x_test.shape, y_test.shape)#-----output-------------------(10113, 8) (10113,)(4335, 8) (4335,)(6192, 8) (6192,)

四,在将数据带入到模型之前,先进行预处理-训练、验证、测试数据标准化

from sklearn.preprocessing import StandardScalerscaler = StandardScaler()x_train_scaled = scaler.fit_transform(x_train)x_valid_scaled = scaler.transform(x_valid)x_test_scaled = scaler.transform(x_test)

五,构建回归模型、模型层级图、编译模型(添加损失函数、优化器)、添加回调函数

model = keras.models.Sequential([    keras.layers.Dense(30, activation='relu',input_shape=x_train.shape[1:]),    keras.layers.Dense(1),])print(model.summary())model.compile(loss="mean_squared_error", optimizer="sgd")logdir = './callbacks'if not os.path.exists(logdir):    os.mkdir(logdir)output_model_file = os.path.join(logdir,"fashion_mnist_model.h5")callbacks = [        keras.callbacks.TensorBoard(logdir),# TensorBoard-终端输入“tensorboard --logdir=callbacks”查看图结构    keras.callbacks.ModelCheckpoint(output_model_file,save_best_only = True),# 保存最好的模型结果    keras.callbacks.EarlyStopping(patience=5, min_delta=1e-3)]#------output----------_________________________________________________________________Layer (type)                 Output Shape              Param #   =================================================================dense_24 (Dense)             (None, 30)                270       _________________________________________________________________dense_25 (Dense)             (None, 1)                 31        =================================================================Total params: 301Trainable params: 301Non-trainable params: 0

六,训练构建的模型

history = model.fit(x_train_scaled, y_train,                    validation_data = (x_valid_scaled, y_valid),                    epochs = 100,                    callbacks = callbacks)

七,得到训练曲线图

def plot_learning_curves(history):    pd.DataFrame(history.history).plot(figsize=(8, 5))    plt.grid(True)    plt.gca().set_ylim(0, 1)    plt.show()plot_learning_curves(history)

在这里插入图片描述

八,调用估计器

print(model.evaluate(x_test_scaled, y_test, verbose=0))#------output----------0.36572834849357605

九,总结

#!/usr/bin/env python3# -*- coding: utf-8 -*-import matplotlib as mplimport matplotlib.pyplot as pltimport numpy as npimport sklearnimport pandas as pdimport osimport sysimport timeimport tensorflow as tffrom tensorflow import keras# 1,打印使用的python库的版本信息print(sys.version_info)for module in mpl, np, pd, sklearn, tf, keras:    print(module.__name__, module.__version__)   # 2,下载并使用sklearn中的“fetch_california_housing”数据集from sklearn.datasets import fetch_california_housinghousing = fetch_california_housing()print(housing.DESCR)print(housing.data.shape)print(housing.target.shape)# 3,使用“pprint”查看数据集样例import pprintpprint.pprint(housing.data[0:5])pprint.pprint(housing.target[0:5])# 4,拆分数据集中的数据为 训练数据、验证数据、测试数据from sklearn.model_selection import train_test_splitx_train_all, x_test, y_train_all, y_test = train_test_split(housing.data, housing.target, random_state=7,test_size=0.3)x_train, x_valid, y_train, y_valid = train_test_split(x_train_all, y_train_all, random_state = 11,test_size=0.3)print(x_train.shape, y_train.shape)print(x_valid.shape, y_valid.shape)print(x_test.shape, y_test.shape)# 5,在将数据带入到模型之前,先进行预处理-训练、验证、测试数据标准化from sklearn.preprocessing import StandardScalerscaler = StandardScaler()x_train_scaled = scaler.fit_transform(x_train)x_valid_scaled = scaler.transform(x_valid)x_test_scaled = scaler.transform(x_test)# 6,构建回归模型、模型层级图、编译模型(添加损失函数、优化器)、添加回调函数model = keras.models.Sequential([    keras.layers.Dense(30, activation='relu',input_shape=x_train.shape[1:]),    keras.layers.Dense(1),])print(model.summary())model.compile(loss="mean_squared_error", optimizer="sgd")logdir = './callbacks'if not os.path.exists(logdir):    os.mkdir(logdir)output_model_file = os.path.join(logdir,"fashion_mnist_model.h5")callbacks = [        keras.callbacks.TensorBoard(logdir),# TensorBoard-终端输入“tensorboard --logdir=callbacks”查看图结构    keras.callbacks.ModelCheckpoint(output_model_file,save_best_only = True),# 保存最好的模型结果    keras.callbacks.EarlyStopping(patience=5, min_delta=1e-3)]# 7,训练构建的模型history = model.fit(x_train_scaled, y_train,                    validation_data = (x_valid_scaled, y_valid),                    epochs = 100,                    callbacks = callbacks)# 8,得到训练曲线图def plot_learning_curves(history):    pd.DataFrame(history.history).plot(figsize=(8, 5))    plt.grid(True)    plt.gca().set_ylim(0, 1)    plt.show()plot_learning_curves(history)# 9,调用估计器print(model.evaluate(x_test_scaled, y_test, verbose=0))

转载地址:http://mpili.baihongyu.com/

你可能感兴趣的文章
LoadRunner脚本评审Checklist
查看>>
在LoadRunner中设置HTTP请求time-out的时间
查看>>
在LoadRunner脚本中实现随机ThinkTime
查看>>
LoadRunner9.51中文帮助手册
查看>>
RPT录制问题
查看>>
RPT8.0
查看>>
RPT8.1新特性
查看>>
LoadRunner测试AJAX
查看>>
LoadRunner测试GWT
查看>>
负载测试项目成功的5个关键要素
查看>>
LoadRunner性能测试培训大纲
查看>>
LoadRunner测试J2ME的Socket程序
查看>>
《QTP自动化测试实践》要出第二版了!
查看>>
用LoadRunner开发开心网外挂
查看>>
QTP测试.NET控件CheckedListBox
查看>>
使用QTP的.NET插件扩展技术测试ComponentOne的ToolBar控件
查看>>
用上帝之眼进行自动化测试
查看>>
为LoadRunner写一个lr_save_float函数
查看>>
PrefTest工作室全新力作-《性能测试与调优实战》课程视频即将上线
查看>>
质量度量分析与测试技术 培训大纲
查看>>