赞
踩
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import tensorflow as tf
from tensorflow.keras import layers
import tensorflow.keras
import warnings
warnings.filterwarnings("ignore")
%matplotlib inline
文件下载地址:https://github.com/DevCHyderabad/Data-Science/blob/master/ml_algorithms/randomForrest/temps.csv
features = pd.read_csv('data/temps.csv')
# 在特征中去掉标签
features = features.drop(['forecast_noaa', 'forecast_acc','forecast_under'], axis=1)
# 看看数据长什么样子
features.head()
year | month | day | week | temp_2 | temp_1 | average | actual | friend | |
---|---|---|---|---|---|---|---|---|---|
0 | 2016 | 1 | 1 | Fri | 45 | 45 | 45.6 | 45 | 29 |
1 | 2016 | 1 | 2 | Sat | 44 | 45 | 45.7 | 44 | 61 |
2 | 2016 | 1 | 3 | Sun | 45 | 44 | 45.8 | 41 | 56 |
3 | 2016 | 1 | 4 | Mon | 44 | 41 | 45.9 | 40 | 53 |
4 | 2016 | 1 | 5 | Tues | 41 | 40 | 46.0 | 44 | 41 |
数据表中
year,month,day,week 分别表示具体的时间
temp_2:前天的最高气温
temp_1:昨天的最高气温
average:在历史中,每年这一天的平均最高温度值
actual:这就是我们的标签值了,当天的真实最高温度
friend:这一列可能是凑热闹的,你的朋友猜测的可能值,咱们不管它就好
print('数据维度:', features.shape)
数据维度: (348, 9)
# 处理时间数据
import datetime
# 分别得到年,月,日
years = features['year']
months = features['month']
days = features['day']
# datetime 格式
dates = [str(int(year)) + '-' + str(int(month)) + '-' + str(int(day)) for year, month, day in zip(years, months, days)]
dates = [datetime.datetime.strptime(date, '%Y-%m-%d') for date in dates]
dates[:5]
[datetime.datetime(2016, 1, 1, 0, 0),
datetime.datetime(2016, 1, 2, 0, 0),
datetime.datetime(2016, 1, 3, 0, 0),
datetime.datetime(2016, 1, 4, 0, 0),
datetime.datetime(2016, 1, 5, 0, 0)]
# 准备画图 # 指定默认风格 plt.style.use('fivethirtyeight') # 设置布局 fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(nrows=2, ncols=2, figsize = (10, 10)) fig.autofmt_xdate(rotation = 45) # actual标签值 ax1.plot(dates, features['actual']) ax1.set_xlabel('');ax1.set_ylabel('Temperature');ax1.set_title('MAX Temp') # 昨天的温度 ax2.plot(dates, features['temp_1']) ax2.set_xlabel('');ax2.set_ylabel('Temperature');ax2.set_title('Previous Max Temp') # 前天 ax3.plot(dates, features['temp_2']) ax3.set_xlabel('Date');ax3.set_ylabel('Temperature');ax3.set_title('Two Days Prior Max Temp') # 我的逗逼朋友 ax4.plot(dates, features['friend']) ax4.set_xlabel('Date');ax4.set_ylabel('Temperature');ax4.set_title('Friend Estimate') plt.tight_layout(pad=2)
# 独热编码
features = pd.get_dummies(features, dtype=int)
features.head(5)
year | month | day | temp_2 | temp_1 | average | actual | friend | week_Fri | week_Mon | week_Sat | week_Sun | week_Thurs | week_Tues | week_Wed | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2016 | 1 | 1 | 45 | 45 | 45.6 | 45 | 29 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 2016 | 1 | 2 | 44 | 45 | 45.7 | 44 | 61 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
2 | 2016 | 1 | 3 | 45 | 44 | 45.8 | 41 | 56 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
3 | 2016 | 1 | 4 | 44 | 41 | 45.9 | 40 | 53 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
4 | 2016 | 1 | 5 | 41 | 40 | 46.0 | 44 | 41 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
labels = np.array(features['actual'])
# 在特征中去掉标签
features = features.drop('actual', axis=1)
# 名字单独保存一下,以备后患
feature_list = list(features.columns)
# 转换成合适的格式
features = np.array(features)
features.shape
(348, 14)
from sklearn import preprocessing
input_features = preprocessing.StandardScaler().fit_transform(features)
input_features
array([[ 0. , -1.5678393 , -1.65682171, ..., -0.40482045,
-0.41913682, -0.40482045],
[ 0. , -1.5678393 , -1.54267126, ..., -0.40482045,
-0.41913682, -0.40482045],
[ 0. , -1.5678393 , -1.4285208 , ..., -0.40482045,
-0.41913682, -0.40482045],
...,
[ 0. , 1.5810006 , 1.53939107, ..., 2.47023092,
-0.41913682, -0.40482045],
[ 0. , 1.5810006 , 1.65354153, ..., -0.40482045,
-0.41913682, -0.40482045],
[ 0. , 1.5810006 , 1.76769198, ..., -0.40482045,
-0.41913682, -0.40482045]])
一些常用参数已经列出,如下所示:
activation:激活函数的选择,一般常用relu
kernel_initializer, bias_initializer:权重与偏置参数的初始化方法,有时候不收敛换种初始化突然好使了…玄学
kernel_regularizer, bias_regularizer:要不要加入正则化
inputs:输入,可以自己制定,也可以让网络自动选
units:神经元个数
按顺序构造网络模型
model = tf.keras.Sequential()
model.add(layers.Dense(16))
model.add(layers.Dense(32))
model.add(layers.Dense(1))
compile 相当于对网络进行配置,指定好优化器和损失函数等
# SGD 梯度下降
model.compile(optimizer=tf.keras.optimizers.SGD(0.001),
loss='mean_squared_error')
model.fit(input_features, labels, validation_split=0.25, epochs=10, batch_size=64)
# x, y, 验证集占25%, 10轮, 优化器每次迭代64
Epoch 1/10 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m1s[0m 42ms/step - loss: 4293.1636 - val_loss: 3535.2651 Epoch 2/10 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 7ms/step - loss: 2143.3159 - val_loss: 3589.7532 Epoch 3/10 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 7ms/step - loss: 238.6194 - val_loss: 2675.4365 Epoch 4/10 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 111.1695 - val_loss: 1886.3639 Epoch 5/10 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 10ms/step - loss: 127.0813 - val_loss: 1077.0658 Epoch 6/10 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 5ms/step - loss: 53.9116 - val_loss: 1039.5237 Epoch 7/10 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 6ms/step - loss: 96.2071 - val_loss: 680.0672 Epoch 8/10 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 41.3098 - val_loss: 453.6753 Epoch 9/10 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 94.2487 - val_loss: 455.6355 Epoch 10/10 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 5ms/step - loss: 67.2740 - val_loss: 264.8182 <keras.src.callbacks.history.History at 0x123d1362850>
似乎存在一些问题,模型还没有完全收敛,能不能调些参数呢
model.summary()
Model: "sequential_23"
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┓ ┃ Layer (type) ┃ Output Shape ┃ Param # ┃ ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━┩ │ dense_69 (Dense) │ (None, 16) │ 240 │ ├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤ │ dense_70 (Dense) │ (None, 32) │ 544 │ ├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤ │ dense_71 (Dense) │ (None, 1) │ 33 │ └──────────────────────────────────────┴─────────────────────────────┴─────────────────┘
Total params: 819 (3.20 KB)
Trainable params: 817 (3.19 KB)
Non-trainable params: 0 (0.00 B)
Optimizer params: 2 (12.00 B)
input_features.shape
(348, 14)
更改初始化方法后
model = tf.keras.Sequential()
model.add(layers.Dense(16, kernel_initializer='random_normal'))
model.add(layers.Dense(32, kernel_initializer='random_normal'))
model.add(layers.Dense(1, kernel_initializer='random_normal'))
model.compile(optimizer=tf.keras.optimizers.SGD(0.001),
loss='mean_squared_error')
model.fit(input_features, labels, validation_split=0.25, epochs=100, batch_size=64)
Epoch 1/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m1s[0m 48ms/step - loss: 4368.7993 - val_loss: 2869.5989 Epoch 2/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 10ms/step - loss: 4293.7646 - val_loss: 2786.7593 Epoch 3/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 4165.1357 - val_loss: 2670.0818 Epoch 4/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 3991.5771 - val_loss: 2449.0737 Epoch 5/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 7ms/step - loss: 3592.8672 - val_loss: 2002.1527 Epoch 6/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 1123.8270 - val_loss: 1296.3181 Epoch 7/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 61.2757 - val_loss: 1059.9176 Epoch 8/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 7ms/step - loss: 163.2804 - val_loss: 620.4620 Epoch 9/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 44.6145 - val_loss: 393.5599 Epoch 10/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 7ms/step - loss: 74.9996 - val_loss: 396.7385 Epoch 11/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 12ms/step - loss: 33.9426 - val_loss: 307.0163 Epoch 12/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 10ms/step - loss: 65.3238 - val_loss: 281.3852 Epoch 13/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 46.6259 - val_loss: 240.9706 Epoch 14/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 33.1187 - val_loss: 194.7957 Epoch 15/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 12ms/step - loss: 26.4251 - val_loss: 134.7485 Epoch 16/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 39.3029 - val_loss: 148.6135 Epoch 17/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 28.9137 - val_loss: 192.1431 Epoch 18/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 32.8826 - val_loss: 174.5544 Epoch 19/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 62.2047 - val_loss: 113.8408 Epoch 20/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 32.4159 - val_loss: 101.6268 Epoch 21/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 7ms/step - loss: 44.8149 - val_loss: 138.4605 Epoch 22/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 36.1919 - val_loss: 101.1899 Epoch 23/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 33.6516 - val_loss: 96.3278 Epoch 24/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 24.6191 - val_loss: 78.0890 Epoch 25/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 23.6171 - val_loss: 127.2975 Epoch 26/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 10ms/step - loss: 78.7954 - val_loss: 50.2254 Epoch 27/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 25.7817 - val_loss: 50.6552 Epoch 28/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 25.3836 - val_loss: 57.6026 Epoch 29/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 26.3525 - val_loss: 58.6611 Epoch 30/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 7ms/step - loss: 34.0787 - val_loss: 61.2929 Epoch 31/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 34.7299 - val_loss: 85.5075 Epoch 32/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 66.5403 - val_loss: 74.8792 Epoch 33/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 10ms/step - loss: 44.8056 - val_loss: 57.6639 Epoch 34/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 27.2398 - val_loss: 58.2288 Epoch 35/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 10ms/step - loss: 31.8331 - val_loss: 37.7633 Epoch 36/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 28.2777 - val_loss: 45.4487 Epoch 37/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 10ms/step - loss: 22.2437 - val_loss: 51.2756 Epoch 38/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 36.4086 - val_loss: 66.9983 Epoch 39/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 52.4292 - val_loss: 53.2812 Epoch 40/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 29.6176 - val_loss: 38.6083 Epoch 41/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 25.4210 - val_loss: 48.8720 Epoch 42/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 30.1500 - val_loss: 51.2028 Epoch 43/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 38.0579 - val_loss: 39.8835 Epoch 44/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 25.5666 - val_loss: 64.8734 Epoch 45/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 13ms/step - loss: 35.3083 - val_loss: 45.6486 Epoch 46/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 40.7417 - val_loss: 45.9886 Epoch 47/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 14ms/step - loss: 26.1866 - val_loss: 51.1810 Epoch 48/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 27.6621 - val_loss: 69.8772 Epoch 49/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 12ms/step - loss: 51.3823 - val_loss: 42.5597 Epoch 50/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 26.9525 - val_loss: 42.2013 Epoch 51/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 28.2767 - val_loss: 72.3962 Epoch 52/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 97.8388 - val_loss: 56.8788 Epoch 53/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 7ms/step - loss: 33.3245 - val_loss: 41.7663 Epoch 54/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 28.4839 - val_loss: 50.8914 Epoch 55/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 24.8976 - val_loss: 55.3096 Epoch 56/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 7ms/step - loss: 31.3844 - val_loss: 40.7323 Epoch 57/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 12ms/step - loss: 25.6870 - val_loss: 39.5035 Epoch 58/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 12ms/step - loss: 35.0476 - val_loss: 40.1320 Epoch 59/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 24.2658 - val_loss: 47.4662 Epoch 60/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 25.1361 - val_loss: 41.5076 Epoch 61/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 23.7325 - val_loss: 46.9274 Epoch 62/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 5ms/step - loss: 24.9606 - val_loss: 45.6629 Epoch 63/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 30.2027 - val_loss: 42.5596 Epoch 64/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 30.4292 - val_loss: 42.9390 Epoch 65/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 25.3275 - val_loss: 37.7184 Epoch 66/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 32.9851 - val_loss: 78.8565 Epoch 67/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 57.0028 - val_loss: 64.6032 Epoch 68/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 39.3346 - val_loss: 59.4840 Epoch 69/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 6ms/step - loss: 49.9364 - val_loss: 40.7967 Epoch 70/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 25.4895 - val_loss: 39.4774 Epoch 71/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 34.0240 - val_loss: 46.4978 Epoch 72/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 35.7356 - val_loss: 40.4752 Epoch 73/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 12ms/step - loss: 33.3258 - val_loss: 39.4771 Epoch 74/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 26.7905 - val_loss: 40.5044 Epoch 75/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 25.1334 - val_loss: 58.0956 Epoch 76/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 48.5187 - val_loss: 41.4135 Epoch 77/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 31.2629 - val_loss: 37.7269 Epoch 78/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 24.1390 - val_loss: 35.2987 Epoch 79/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 12ms/step - loss: 26.4805 - val_loss: 42.8379 Epoch 80/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 28.8565 - val_loss: 37.6946 Epoch 81/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 40.4653 - val_loss: 36.8633 Epoch 82/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 28.7675 - val_loss: 47.5671 Epoch 83/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 7ms/step - loss: 41.8275 - val_loss: 44.3226 Epoch 84/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 28.0287 - val_loss: 38.9376 Epoch 85/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 25.5245 - val_loss: 42.3016 Epoch 86/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 27.0931 - val_loss: 39.9974 Epoch 87/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 25.4755 - val_loss: 39.8841 Epoch 88/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 28.4916 - val_loss: 41.0811 Epoch 89/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 28.7822 - val_loss: 51.6084 Epoch 90/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 35.9541 - val_loss: 43.7493 Epoch 91/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 31.2829 - val_loss: 42.2934 Epoch 92/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 10ms/step - loss: 35.1214 - val_loss: 64.9260 Epoch 93/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 84.9164 - val_loss: 38.1734 Epoch 94/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 7ms/step - loss: 23.1115 - val_loss: 57.1945 Epoch 95/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 62.6148 - val_loss: 35.5297 Epoch 96/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 22.2531 - val_loss: 45.4069 Epoch 97/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 42.2842 - val_loss: 44.1553 Epoch 98/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 25.4819 - val_loss: 37.9086 Epoch 99/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 28.6191 - val_loss: 45.0827 Epoch 100/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 10ms/step - loss: 31.7428 - val_loss: 36.7290 <keras.src.callbacks.history.History at 0x123d15d3190>
model = tf.keras.Sequential()
model.add(layers.Dense(16, kernel_initializer='random_normal',
kernel_regularizer=tf.keras.regularizers.l2(0.03)))
model.add(layers.Dense(32, kernel_initializer='random_normal',
kernel_regularizer=tf.keras.regularizers.l2(0.03)))
model.add(layers.Dense(1, kernel_initializer='random_normal',
kernel_regularizer=tf.keras.regularizers.l2(0.03)))
model.compile(optimizer=tf.keras.optimizers.SGD(0.001),
loss='mean_squared_error')
model.fit(input_features, labels, validation_split=0.25, epochs=100, batch_size=64)
Epoch 1/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m1s[0m 48ms/step - loss: 4416.4448 - val_loss: 2870.6919 Epoch 2/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 4363.5566 - val_loss: 2788.0947 Epoch 3/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 4203.2598 - val_loss: 2672.4597 Epoch 4/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 3951.0793 - val_loss: 2473.7844 Epoch 5/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 11ms/step - loss: 2440.8638 - val_loss: 2167.3281 Epoch 6/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 11ms/step - loss: 98.5526 - val_loss: 1579.0359 Epoch 7/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 12ms/step - loss: 60.8955 - val_loss: 1240.2740 Epoch 8/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 79.9701 - val_loss: 1118.0626 Epoch 9/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 5ms/step - loss: 86.3771 - val_loss: 860.3555 Epoch 10/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 42.9139 - val_loss: 657.6273 Epoch 11/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 69.9081 - val_loss: 645.1999 Epoch 12/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 6ms/step - loss: 38.9944 - val_loss: 455.9460 Epoch 13/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 40.6661 - val_loss: 432.8222 Epoch 14/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 10ms/step - loss: 32.3687 - val_loss: 329.2526 Epoch 15/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 42.3445 - val_loss: 405.3529 Epoch 16/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 10ms/step - loss: 38.2314 - val_loss: 240.9814 Epoch 17/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 7ms/step - loss: 28.9866 - val_loss: 183.0723 Epoch 18/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 13ms/step - loss: 41.5155 - val_loss: 213.0789 Epoch 19/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 38.2092 - val_loss: 185.2979 Epoch 20/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 11ms/step - loss: 27.5062 - val_loss: 155.2072 Epoch 21/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 37.3787 - val_loss: 127.9377 Epoch 22/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 29.8084 - val_loss: 105.5078 Epoch 23/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 33.5834 - val_loss: 150.7845 Epoch 24/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 63.8227 - val_loss: 119.4120 Epoch 25/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 10ms/step - loss: 32.2373 - val_loss: 117.0641 Epoch 26/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 25.9073 - val_loss: 94.2724 Epoch 27/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 22.5740 - val_loss: 82.7034 Epoch 28/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 42.6764 - val_loss: 129.7826 Epoch 29/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 55.9826 - val_loss: 69.3660 Epoch 30/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 28.4297 - val_loss: 101.5603 Epoch 31/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 153.8240 - val_loss: 101.3329 Epoch 32/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 40.8292 - val_loss: 51.9974 Epoch 33/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 31.8792 - val_loss: 90.1593 Epoch 34/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 12ms/step - loss: 42.8228 - val_loss: 53.3058 Epoch 35/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 32.8746 - val_loss: 111.8890 Epoch 36/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 11ms/step - loss: 133.2832 - val_loss: 56.0949 Epoch 37/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 25.2988 - val_loss: 52.5813 Epoch 38/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 37.2227 - val_loss: 52.4974 Epoch 39/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 11ms/step - loss: 27.8274 - val_loss: 65.4723 Epoch 40/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 40.0796 - val_loss: 48.4441 Epoch 41/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 11ms/step - loss: 42.1947 - val_loss: 53.0788 Epoch 42/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 64.7438 - val_loss: 42.7688 Epoch 43/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 27.6699 - val_loss: 59.0437 Epoch 44/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 57.7695 - val_loss: 39.4156 Epoch 45/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 33.5784 - val_loss: 47.0080 Epoch 46/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 34.2292 - val_loss: 59.5289 Epoch 47/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 10ms/step - loss: 45.7918 - val_loss: 63.5306 Epoch 48/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 78.9908 - val_loss: 52.0136 Epoch 49/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 26.5390 - val_loss: 52.5462 Epoch 50/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 31.1325 - val_loss: 49.7524 Epoch 51/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 12ms/step - loss: 36.4966 - val_loss: 45.8742 Epoch 52/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 25.2637 - val_loss: 44.5731 Epoch 53/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 13ms/step - loss: 36.4297 - val_loss: 45.4402 Epoch 54/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 39.1696 - val_loss: 59.9441 Epoch 55/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 10ms/step - loss: 30.6268 - val_loss: 41.0833 Epoch 56/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 23.9201 - val_loss: 45.8624 Epoch 57/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 44.8162 - val_loss: 52.6416 Epoch 58/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 37.1201 - val_loss: 39.6247 Epoch 59/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 26.1614 - val_loss: 42.8098 Epoch 60/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 10ms/step - loss: 27.1879 - val_loss: 53.2812 Epoch 61/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 10ms/step - loss: 47.2898 - val_loss: 37.5520 Epoch 62/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 28.9763 - val_loss: 42.5022 Epoch 63/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 7ms/step - loss: 29.7016 - val_loss: 45.5520 Epoch 64/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 12ms/step - loss: 30.4745 - val_loss: 47.6255 Epoch 65/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 37.4186 - val_loss: 41.0830 Epoch 66/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 25.5378 - val_loss: 40.4347 Epoch 67/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 34.4923 - val_loss: 40.3242 Epoch 68/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 26.5409 - val_loss: 46.0373 Epoch 69/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 7ms/step - loss: 25.7036 - val_loss: 43.5233 Epoch 70/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 4ms/step - loss: 33.9939 - val_loss: 44.7467 Epoch 71/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 30.3728 - val_loss: 93.4269 Epoch 72/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 97.9213 - val_loss: 48.0735 Epoch 73/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 30.2927 - val_loss: 43.5673 Epoch 74/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 7ms/step - loss: 35.4804 - val_loss: 50.1731 Epoch 75/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 10ms/step - loss: 41.3685 - val_loss: 37.4454 Epoch 76/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 10ms/step - loss: 31.8862 - val_loss: 35.4503 Epoch 77/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 26.1613 - val_loss: 35.9018 Epoch 78/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 23.0868 - val_loss: 43.0509 Epoch 79/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 32.4755 - val_loss: 36.5396 Epoch 80/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 12ms/step - loss: 26.7133 - val_loss: 41.4007 Epoch 81/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 32.3298 - val_loss: 42.8944 Epoch 82/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 38.3876 - val_loss: 37.2009 Epoch 83/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 26.8752 - val_loss: 42.3623 Epoch 84/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 29.6118 - val_loss: 40.8342 Epoch 85/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 10ms/step - loss: 28.6810 - val_loss: 49.7644 Epoch 86/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 34.0479 - val_loss: 45.3099 Epoch 87/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 35.0423 - val_loss: 43.2801 Epoch 88/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 30.1759 - val_loss: 38.7874 Epoch 89/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 7ms/step - loss: 23.5527 - val_loss: 42.6318 Epoch 90/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 9ms/step - loss: 31.6622 - val_loss: 39.5522 Epoch 91/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 29.0962 - val_loss: 95.1242 Epoch 92/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 88.2771 - val_loss: 92.6585 Epoch 93/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 7ms/step - loss: 114.2095 - val_loss: 62.0893 Epoch 94/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 36.6870 - val_loss: 48.3573 Epoch 95/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 36.5325 - val_loss: 64.9291 Epoch 96/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 41.5538 - val_loss: 46.8775 Epoch 97/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 28.9018 - val_loss: 39.1529 Epoch 98/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 24.6989 - val_loss: 43.4444 Epoch 99/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 12ms/step - loss: 30.5935 - val_loss: 45.8457 Epoch 100/100 [1m5/5[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 8ms/step - loss: 30.0764 - val_loss: 41.4303 <keras.src.callbacks.history.History at 0x123dd432410>
加入正则项,可以使W更加平滑
预测模型结果
predict = model.predict(input_features)
predict.shape
[1m11/11[0m [32m━━━━━━━━━━━━━━━━━━━━[0m[37m[0m [1m0s[0m 2ms/step
(348, 1)
测试结果并进行展示
# 转换日期 dates = [str(int(year)) + '-' + str(int(month)) + '-' + str(int(day)) for year, month, day in zip(years, months, days)] dates = [datetime.datetime.strptime(date, '%Y-%m-%d') for date in dates] # 创建一个表格来存日期和其对应的标签数值 true_data = pd.DataFrame(data = {'date':dates, 'actual':labels}) # 同理,再创建一个来存日期和其对应的模型预测值 months = features[:, feature_list.index('month')] days = features[:, feature_list.index('day')] year = features[:, feature_list.index('year')] test_dates = [str(int(year)) + '-' + str(int(month)) + '-' + str(int(day)) for year, month, day in zip(years, months, days)] test_dates = [datetime.datetime.strptime(date, '%Y-%m-%d') for date in test_dates] predictions_data = pd.DataFrame(data = {'date':test_dates, 'prediction':predict.reshape(-1)})
# 真实值
plt.plot(true_data['date'], true_data['actual'], 'b-', label='actual')
# 预测值
plt.plot(predictions_data['date'], predictions_data['prediction'], 'ro', label ='prediction')
plt.xticks(rotation = 45)
plt.legend()
# 图名
plt.xlabel('Date');plt.ylabel('Maximum Temperature (F)');plt.title('Actual and Predicted Values');
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。