30、对于单步模型:a. 构建一个预测最后已知值的基线模型。b. 绘制其预测结果。c. 使用平均绝对误差(MAE)评估其性能,并将结果存储在字典中以供比较。
可以使用代码构建预测最后已知值的基线模型,如使用 Baseline 类。使用 DataWindow 类的 plot 方法绘制预测结果,例如:
wide_window.plot(baseline_last)
评估性能并存储 MAE,如:
performance['Baseline - Last'] = baseline_last.evaluate(single_step_window.test, verbose=0)
还可打印 MAE 进行查看,如:
print(performance['Baseline - Last'][1])
这里得到的 MAE 为 0.081 。
31、对于多步模型:a. 构建一个在24小时范围内预测最后已知值的基线模型。b. 构建一个重复最后24小时数据的基线模型。c. 绘制两个模型的预测结果。d. 使用平均绝对误差(MAE)评估两个模型并存储它们的性能。
a. 构建在24小时范围内预测最后已知值的基线模型:定义`MultiStepLastBaseline`类,该类接收输入并将输入序列的最后一个值重复24个时间步作为预测。代码如下:
```python
import tensorflow as tf
from tensorflow.keras import Model
from tensorflow.keras.losses import MeanSquaredError
from tensorflow.keras.metrics import MeanAbsoluteError
class MultiStepLastBaseline(Model):
def __init__(self, label_index=None):
super().__init__()
self.label_index = label_index
def call(self, inputs):
if self.label_index is None:
return tf.tile(inputs[:, -1:, :], [1, 24, 1])
return tf.tile(inputs[:, -1:, self.label_index:], [1, 24, 1])
# 假设 column_indices 是一个包含列索引的字典
column_indices = {'traffic_volume': 0}
ms_baseline_last = MultiStepLastBaseline(label_index=column_indices['traffic_volume'])
ms_baseline_last.compile(loss=MeanSquaredError(), metrics=[MeanAbsoluteError()])
b. 构建重复最后24小时数据的基线模型:通过 RepeatBaseline 类实现,该类返回输入序列,即未来24小时的预测值就是最后已知的24小时数据。
class RepeatBaseline(Model):
def call(self, inputs):
return inputs
ms_baseline_repeat = RepeatBaseline()
ms_baseline_repeat.compile(loss=MeanSquaredError(), metrics=[MeanAbsoluteError()])
c. 绘制两个模型的预测结果:使用 DataWindow 类的 plot 方法进行绘制。假设 multi_window 是 DataWindow 类的一个实例,如 multi_window.plot(ms_baseline_last) 和 multi_window.plot(ms_baseline_repeat) 。
# 假设 multi_window 是 DataWindow 类的实例
multi_window.plot(ms_baseline_last)
multi_window.plot(ms_baseline_repeat)
d. 使用MAE评估两个模型并存储性能:
ms_val_performance = {}
ms_performance = {}
# 评估并存储预测最后已知值的基线模型的性能
ms_val_performance['Baseline - Last'] = ms_baseline_last.evaluate(multi_window.val)
ms_performance['Baseline - Last'] = ms_baseline_last.evaluate(multi_window.test, verbose=0)
# 评估并存储重复最后24小时数据的基线模型的性能
ms_va

最低0.47元/天 解锁文章
1274

被折叠的 条评论
为什么被折叠?



