本文共 6588 字,大约阅读时间需要 21 分钟。
本文将介绍如下内容:
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,)
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/