【数模】预测模型

news2024/11/18 17:43:29

一、灰色系统

  • 白色系统:系统信息完全明确
  • 灰色系统:系统部分信息已知,部分信息未知
    • 对在一定范围内变化的、与时间有关的灰色过程进行预测。
    • 过程:原始数据找规律→生成强规律性的数据序列→建立微分方程来预测未来趋势
  • 黑色系统:系统的内部信息未知

二、GM(1,1)模型: Grey(Gray) Model

2.1 基本概念及原理

  • GM(1,1)是使用原始的离散非负数据列,通过一次累加生成削弱随机性的较有规律的新的离散数据列 → 通过建立微分方程模型,得到在离散点处的解经过累减生成的原始数据的近似估计值 → 从而预测原始数据的后续发展。

    • 本节只探究GM(1,1)模型,第一个‘1’表示微分方程是一阶的,后面的‘1’表示只有一个变量在这里插入图片描述
  • 原理介绍:(见第12节课件P4-15)

  • GM(1,1)模型的本质是有条件的指数拟合:f(x) = C1eC2(x-1) (此处的指数规律主要针对x(1)(k)序列而言,原始序列是作差的结果)

  • GM(1,1)模型的白化方程:在这里插入图片描述

  • GM(1,1)模型的基本形式(亦称灰色微分方程):在这里插入图片描述

2.2 准指数规律的检验

实际建模中,要计算出ρ(k)∈(0,0.5)的占比,占比越高越好(一般前两期:ρ(2)和ρ(3)可能不符合要求,重点关注后面的期数)

2.3 发展系数与预测情形

  • 发展系数越小,预测得越精确

2.4 GM(1,1)模型的评价

  • 使用GM(1,1)模型对未来的数据进行预测时,需要先检验GM(1,1)模型对原数据的拟合程度(对原始数据还原的效果)。一般有两种检验方法:
2.4.1 残差检验

在这里插入图片描述

  • 注:
    • ① 其他预测模型也可以用这个残差检验
    • ② 关于这个10%和20%的标准不是绝对的,要结合预测的场景(如物理中对精确要求高的,也可是5%)
2.4.2 级别偏差检验

在这里插入图片描述

2.5 GM(1,1)模型的拓展:新陈代谢模型

在这里插入图片描述

2.6 适用灰色预测的情况

  1. 数据是以年份度量的非负数据(如果是月份或者季度数据一定要用时间序列模型);
  2. 数据能经过准指数规律的检验(除了前两期外,后面至少90%的期数的光滑比要低于0.5);
  3. 数据的期数较短且和其他数据之间的关联性不强(≤10,也不能太短了,比如只有3期数据),要是数据期数较长,一般用传统的时间序列模型比较合适。

三、示例:对长江水质污染的预测

3.1 题目

  • 2005年国赛A题中给出长江在过去10年中废水排放总量,如果不采取保护措施,请对今后10年的长江水质污染的发展趋势做出预测。
    在这里插入图片描述

3.2 预测题目的一些tips

  1. 看到数据后先画时间序列图并简单的分析下趋势(例如:之前的时间序列分解);
  2. 将数据分为训练组和试验组,尝试使用不同的模型对训练组进行建模,并利用试验组的数据判断哪种模型的预测效果最好(例如:可用SSE指标来挑选模型,常见的模型有指数平滑、ARIMA、灰色预测、神经网络等)。
  3. 选择上一步骤中得到的预测误差最小的那个模型,并利用全部数据来重新建模,并对未来的数据进行预测。
  4. 画出预测后的数据和原来数据的时序图,看看预测的未来趋势是否合理。

3.3 GM(1,1)模型代码讲解

在这里插入图片描述

在这里插入图片描述

  1. 画出原始数据的时间序列图,并判断原始数据中是否有负数或期数是否低于4期,如果是的话则报错,否则执行下一步;
  2. 对一次累加后的数据进行准指数规律检验,返回两个指标:
    • 指标1:光滑比小于0.5的数据占比(一般要大于60%)
    • 指标2:除去前两个时期外,光滑比小于0.5的数据占比(一般大于90%)并让用户决定数据是否满足准指数规律,满足则输入1,不满足则输入0
  3. 如果上一步用户输入0,则程序停止;如果输入1,则继续下面的步骤。
  4. 让用户输入需要预测的后续期数,并判断原始数据的期数:
    • 数据期数为4:分别计算出传统的GM(1,1)模型、新信息GM(1,1)模型和新陈代谢GM(1,1)模型对于未来期数的预测结果,为了保证结果的稳健性,对三个结果求平均值作为预测值。
    • 数据期数为5,6或7:取最后两期为试验组,前面的n‐2期为训练组;用训练组的数据分别训练三种GM模型,并将训练出来的模型分别用于预测试验组的两期数据;利用试验组两期的真实数据和预测出来的两期数据,可分别计算出三个模型的SSE;选择SSE最小的模型作为我们建模的模型。
    • 数据期数大于7:取最后三期为试验组,其他的过程和4.2类似。
  5. 输出并绘制图形显示预测结果,并进行残差检验和级比偏差检验。

四、神经网络预测示例

4.1 题目:辛烷值的预测

  • 【改编】辛烷值是汽油最重要的品质指标,传统的实验室检测方法存在样品用量大,测试周期长和费用高等问题,不适用于生产控制,特别是在线测试。近年发展起来的近红外光谱分析方法(NIR),作为一种快速分析方法,已广泛应用于农业、制药、生物化工、石油产品等领域。其优越性是无损检测、低成本、无污染,能在线分析,更适合于生产和控制的需要。
  • 实验采集得到50组汽油样品(辛烷值已通过其他方法测量),并利用傅里叶近红外变换光谱仪对其进行扫描,扫描范围900~1700nm,扫描间隔为2nm,即每个样品的光谱曲线共含401个波长点,每个波长点对应一个吸光度。
  • (1)请利用这50组样品的数据,建立这401个吸光度和辛烷值之间的模型。
  • (2)现给你10组新的样本,这10组样本均已经过近红外变换光谱仪扫描,请预测这10组新样本的辛烷值。

4.2 数据的导入

  • 注意:在matlab下,当导入文件出错时,要注意如下两点
    在这里插入图片描述
  • 导入数据
    • Excel操作小技巧:选择某个单元格的数据,同时按住键盘上的Ctrl+Shift两个键不松手,然后按键盘上方向键“→”,就可以选择这个单元格所在的一行;然后再按键盘上的方向键“↓”,就可以再选取这一行所在的一整列。
      在这里插入图片描述
  • 保存数据(data_Octane.mat)
    • X:50个样本的吸光度数据
    • Y:50个样本的辛烷值数据
    • new_X:10个要预测样本的吸光度数据
      在这里插入图片描述

4.3 神经网络模型

  • 不同版本的神经网络模型位置可能不同,可自行上网查看
    在这里插入图片描述
  • 根据样本放在行上还是列上来选择。
    在这里插入图片描述
  • 训练集、验证集、测试集的比例一般选择默认的即可。(Matlab会后台自动帮我们安装这个比例来随机抽取样本,因此每次运行的结果可能都不相同)在这里插入图片描述
  • 隐层神经元的个数,这个参数可以根据拟合的结果再次进行调整。在这里插入图片描述
  • 训练算法的选取,一般是选择默认即可,选择完成后点击按钮后,Matlab就会帮我们训练出一个神经网络模型。
    • ①莱文贝格-马夸特方法(Levenberg–Marquardt algorithm)能提供数非线性最小化(局部最小)的数值解。此算法能借由执行时修改参数达到结合高斯‐牛顿算法以及梯度下降法的优点,并对两者之不足作改善(比如高斯‐牛顿算法之反矩阵不存在或是初始值离局部极小值太远)
      • 经过少数几次即可收敛
    • ②贝叶斯正则化方法(Bayesian‐regularization)
      • 可以处理过拟合,但训练很慢
      • 推荐采用该方法,拟合效果一般是最好的,MSE一般是三个中最小的(越小拟合越好);但由于速度过慢,对机器要求高,故方法①和③用的也多
    • ③量化共轭梯度法(Scaled Conjugate Gradient ):《模式识别与智能计算–MATLAB技术实现》
      • 每次迭代速度很快,但需要很多次的收敛
        在这里插入图片描述

4.4 结果分析

  • epoch:1个epoch等于使用训练集中的全部样本训练一次,每训练一次,神经网络中的参数经过调整。
  • MSE: Mean Squared Error 均方误差
    • MSE = SSE/n。一般来说,经过更多的训练阶段后,误差会减小,但随着网络开始过度拟合训练数据,验证数据集的误差可能会开始增加。在默认设置中,在验证数据集的MSE连续增加六次后,训练停止,最佳模型对应于的最小MSE。
      在这里插入图片描述
  • 将拟合值对真实值回归,拟合优度越高,说明拟合的的效果越好。
    在这里插入图片描述

4.5 保存结果

  • 保存神经网络函数的代码,以及神经网络图。
    在这里插入图片描述
  • 保存好训练出来的神经网络模型和结果
    在这里插入图片描述

4.6 进行预测

  • 保存code_Octane.m
  • 残差 + 拟合值 = 真实值
    在这里插入图片描述
% 这里要注意,我们要将指标变为列向量,然后再用sim函数预测
sim(net, new_X(1,:)')

% 写一个循环,预测接下来的十个样本的辛烷值
predict_y = zeros(10,1); % 初始化predict_y
for i = 1: 10
	result = sim(net, new_X(i,:)');
	predict_y(i) = result;
end
disp('预测值为:')
disp(predict_y)

4.7 神经网络处理过拟合思路

  • 将已知数据留尾部一小部分,用作训练出结果后的测试,计算MSE等看看大小 (有分析过程,体现有处理过拟合现象的意识)
  • 或切换不同模型训练

4.8 其他:神经网络在多输出中的运用

  • 多输出:多个Y值
  • 过程如上,神经网络也能在多输出中使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/837518.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

企业上云实施路线图

企业上云步骤主要分为规划、设计、实施、验证、运维五个阶段。https://articles.e-works.net.cn/cloud/article144684.htm

idea 2023 新版ui中git的相关操作

前两个月换了新电脑,下了最新版的idea发现可以切换一套新的ui了 切换新ui肯定不太习惯,很多操作都得重新摸索一下 在这里记录几个git相关的操作 忽略我下面截图中当前项目是js的后端项目…… 切换ui 首先说一下怎么切换新旧版ui,我这里就…

【前端实习生备战秋招】—CSS面试题汇总,建议收藏系列

【前端实习生备战秋招】—CSS面试题汇总,建议收藏系列 文章目录 【前端实习生备战秋招】—CSS面试题汇总,建议收藏系列一、CSS基础1. CSS选择器及其优先级2. CSS中可继承与不可继承属性有哪些3. display的属性值及其作用4. display的block、inline和inli…

2023年电赛A题报告模板--可直接使用

任务 图1 任务内容 要求 图2 基本要求内容 图3 发挥部分内容 说明 图4 说明内容 评分标准 图5 评分内容 正文 (部分) 摘要 本实验旨在设计和制作一个由两个单相逆变器组成的并联系统,用于为电阻负载供电或并入220V电网。采用基于STM…

MobaXterm - 使用技巧

MobaXterm - 使用技巧 介绍安装SSH会话保存密码快捷键 介绍 MobaXterm是一款增强型Windows终端、X 服务器和 Unix 命令集(GNU/ Cygwin)工具箱。有点是功能全,免费,有便携版,支持多标签,同时自带文件传输系统。下文介绍其安装和使…

产险精算GLM-GAM案例

继续使用北美产险精算学会CAS网站上的一个案例,对案例略作修改后进行验证。 ClassAOITerrExposureClaims1Low1762Medium1108443High11791054Low2130625Medium2126826High21291207Low3143848Medium31261019High34046 GLM 模型结果,见文章:产…

特斯拉墨西哥工厂风波:2.5万美金的车型何时开造?

作者 | Amy 编辑 | 德新 去年10月,马斯克闪现墨西哥新莱昂州,会见了当地官员。考虑到新莱昂州是通用和现代工厂所在地,特斯拉第五大工厂花落墨西哥的消息不胫而走。 今年3月,特斯拉正式宣布,将在墨西哥北部新莱昂州的…

新手用户选择阿里云服务器地域、实例、带宽、操作系统经验参考

无论是个人还是企业用户,部署自己的网站或者APP客户端、小程序等,都需要用到服务器,现在流行的都是使用云服务器,考虑到性价比大家现在都喜欢选择阿里云服务器。但是新手用户往往在面对阿里云服务器地域、实例、带宽、操作系统等众…

Redis集群部署教程详解

一、什么是redis集群 Redis集群是一个提供在多个Redis节点之间共享数据的程序集。它并不像Redis主从复制模式那样只提供一个master节点提供写服务,而是会提供多个master节点提供写服务,每个master节点中存储的数据都不一样,这些数据通过数据分…

sql语句字符函数,数学函数

一、trim()去掉前后单元格 SELECT LENGTH(TRIM( 张三 )) AS 姓名 trim(aa from bb) 除掉bb中前后包含的aa,中间的保留 SELECT TRIM(班 FROM class) AS 姓名 FROM user_test 二、lpad()用指定字符做左…

【机器学习】对 MLOps 的友好的介绍(MLOps1)

一、说明 我对 MLOps 感兴趣已经有一段时间了。我第一次从机器学习工程师那里了解到它,由于我当时还是一名博士生,我并不知道它的存在。然而,我的好奇心被激起了,我开始了解它。回想起来,我很后悔没有早点了解它&#…

C#控制台程序+Window增加右键菜单

有时候我们可能会想定制一些自己的右键菜单功能,帮我们减少重复的操作。那么使用控制台程序加自定义右键菜单,就可以很好地满足我们的需求。 1 编写控制台程序 因为我只用到了在文件夹中空白处的右键菜单,所以这里提供了一个对应的模板&…

DC-4靶机

信息收集 先查看靶机的MAC地址 arp-scan -l 找到目标靶机的IP地址,对其进行扫描 发现开放了80端口和ssh,浏览器访问靶机的80端口,看看有没有可以利用的东西 目录爆破发现也没有什么东西 dirsearch -u http://192.168.80.146 漏洞利用 利用…

Web Worker API

Web Worker API Web Worker 使得在一个独立于 Web 应用程序主执行线程的后台线程中运行脚本操作成为可能。这样做的好处是可以在独立线程中执行费时的处理任务,使主线程(通常是 UI 线程)的运行不会被阻塞/放慢。 Web Worker概念与用法 Wor…

【iOS安全】OpenSSH使用

安装OpenSSH 在 Cydia 中直接查找和安装 OpenSSH 使用OpenSSH http://orinchen.github.io/blog/2014/01/15/install-and-use-openssh-on-ios/ 保证PC和iPhone在同一网段下 查看iPhone的IP地址 ssh root10.168.xx.xx 口令默认是alpine 或者也可以使用XShell等集成终端

自动化测试的统筹规划

背景 回顾以前自动化测试编写的经历,主要是以开发者自驱动的方式进行,测试的编写随心而动,没有规划,也没有章法,这样就面临如下的一些问题: 测试用例设计不到位,覆盖不全,或者不够…

WebGL Shader着色器GLSL语言

在2D绘图中的坐标系统,默认情况下是与窗口坐标系统相同,它以canvas的左上角为坐标原点,沿X轴向右为正值,沿Y轴向下为正值。其中canvas坐标的单位都是’px’。 WebGL使用的是正交右手坐标系,且每个方向都有可使用的值的…

android kernel移植5-RK3568

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言1.添加开发板默认配置文件前言 前面我们已经学会了移植uboot,其实就是把瑞芯微的关于uboot的一些文件的名字和编译指定的文件改为自己定义的问价和名字,那么接下来的Android kernel其实也是…

【数据结构】排序算法系列

常见的排序如下: 一、比较类排序 1. 交换排序 (1) 冒泡排序 【数据结构】交换排序(一)——冒泡排序_Jacky_Feng的博客-CSDN博客 (2) 快速排序 【数据结构】交换排序(二&#xf…

WebDAV之π-Disk派盘 + 薄荷记账

薄荷记账是一款为用户提供专业记账服务的手机应用,轻松记录个人的账目支出以及收入,什么时间花在哪都能知晓,养成良好的记账习惯,让生活更有条理。 π-Disk派盘 – 知识管理专家 派盘是一款面向个人和企业的本地云存储解决方案,它可以帮助用户打造“数字第二大脑”,并支…