当前位置: 首页 > article >正文

机器学习笔记 // 探索整体的预测

在前一节中,你看到了如何根据窗口大小获取前一组值集,并将它们传递给模型,从而获得给定时间点的预测。为了查看模型的整体结果,你必须对每个时间步都执行同样的操作。你可以通过以下简单的循环来实现:

forecast = []

for time in range(len(series) - window_size):

    forecast.append(

        model.predict(series[time:time + window_size][np.newaxis]))

回忆一下,你还在时间步1000把数据集分割成了训练集和验证集。因此,在下一步你应该也只从那个时间开始进行预测。由于你的预测数据已经偏移了20(或者无论你的窗口大小是多少)​,你可以将它分割并转换为一个Numpy数组:

forecast = forecast[split_time-window_size:]

results = np.array(foreast)[:, 0, 0]

它现在和预测数据有同样的形状,因此你可以绘制它们来对照彼此:

plt.figure(figsize=(10, 6))

plot_series(time_valid, x_valid)

plot_series(time_valid, results)

通过一个快速的视觉检查,你可以看到这个预测并不差。它基本上追随了原始数据的曲线。当数据中有快速的变化时,预测花费了一点时间来追赶,但是整体上它并不差。然而,肉眼观察曲线很难做到准确。最好能有一个好的指标,MAE很合适。你可以通过以下代码来度量MAE:

tf.keras.metrics.mean_absolute_error(x_valid, results).numpy()

有一些随机量被引入了数据,因此你的结果可能会变化,我的MAE值是4.51。

你可能会说,获得准确的预测的过程是最小化MAE的过程。你可以使用几项技术来实现它,包括显而易见地改变窗口大小。我会留给你进行实验,但是下一节你会在优化器上做一些基本的超参数调整,来提升神经网络的学习方式,并看看这会对MAE产生什么样的影响。


http://www.kler.cn/a/401520.html

相关文章:

  • MySQL系列之数据授权(privilege)
  • SpringCloud处理Websocket消息过长自动断开连接
  • 5G与4G互通的桥梁:N26接口
  • 编程语言02:语法基础
  • ChatGPT学术专用版,一键润色纠错+中英互译+批量翻译PDF
  • 对PolyMarket的突袭
  • Spark使用过程中的 15 个常见问题、详细解决方案
  • 15分钟学 Go 第 58 天 :复习与总结
  • 解决 VMware 嵌套虚拟化提示 关闭“侧通道缓解“
  • 人工智能时代,如何建设一个大模型呼叫中心?
  • [论文阅读] 异常检测 Deep Learning for Anomaly Detection: A Review (四)三种分类方法对比
  • 力扣 LeetCode 102. 二叉树的层序遍历(Day6:二叉树)
  • 一种基于PowerPoint和Photoshop的.gif动图制作方法
  • springBoot整合 Tess4J实现OCR识别文字(图片+PDF)
  • LeetCode 单调栈 下一个更大元素 I
  • gitlab cicd搭建及使用笔记(二)
  • SpringBoot整合Ip2region获取IP地址和定位
  • 蓝桥杯每日真题 - 第16天
  • 普通单片机为什么无法直接驱动dcmi接口相机
  • 【智能优化】自动分包策略,Webpack性能提升新维度(6)
  • docker minio修改时区问题记录
  • 109页PPT丨全面优化:制造企业运营生产成本削减战略与实践指南
  • 音视频开发库ffmpeg应用
  • 一文详细深入总结服务器选型
  • Elasticsearch开启认证及kibana密码登陆
  • 抓包工具Fiddler安装及汉化