数学建模系列--预测模型(二)---灰色预测模型

本文介绍了灰色预测模型,一种用于处理部分可观系统的预测方法。在数据有限的情况下,灰色预测通过数据生成和模型构建进行预测。文章详细阐述了累加生成、加权累加生成等数据处理步骤,以及模型构建、预测和精度检验的过程。此外,还提到了Python代码实现。
摘要由CSDN通过智能技术生成

正如前文所述,目前我们学习预测模型的第二类:灰色预测模型。

在控制领域,有一种方法将系统可以笼统的分为三类:
黑箱、白箱、灰箱。

其中黑箱是完全不可观的,因此只能通过大量的输入、输出数据进行建模,找到合理推算后的系统模型。从原理上看,上一期所讲的神经网络模型也在其中,属于通过大量输入输出得到我们的系统辨识。

**白箱:**系统完全可观,可以直接通过过数学模型来应用求解。

**灰箱:**系统部分可观,只能用数学方法将黑色的部分分割出来,通过部分数据推测该不可观部分的数学模型、

但是当下关于灰色控制有了新的思路,当遇到数据较少的情况,无法通过暴力求解黑箱的时候,可以通过部分数据,挖掘其内因。

灰色预测模型:
原文链接:https://blog.csdn.net/qq_39798423/article/details/89283000
灰色系统理论认为,尽管客观表象复杂,但总是有整体功能的,因此必然蕴含某种内在规律。关键在于如何选择适当的方式去挖掘和利用它。因此,灰色序列的生产就是第一步。一切灰色序列都能通过某种生成弱化其随机性,显现其规律性。数据生成的常用方式有累加生成累减生成加权累加生成

生成原处序列:x_0=(x_0(1),x_0(2),…)

1.累加过程:
x_1(1)=x_0(1);
x_1(2)=x_0(1)+x_0(2);

x_1(n)=x_0(1)+…+x_0(n);

2.加权临值生成:
x_1(n)=ax_0(n)+(1-a)x_0(n-1);

实操的步骤:
1.数据检验

使用GM(1,1)建模需要对数据进行检验,首先计算数列的级比,如果所有的级比都落在可容覆盖区间内,则数列x ( 0 )可以建立GM(1,1)模型进行灰色预测。否则就需要对数据做适当的变换处理,如平移等。

2.构建灰色模型
d(k)=x_1(k)-x_1(k-1)=x_0(k)
z(k)=ax_1(k)+(1-a)x_1(k-1)
d(k)+az(k)=b
列矩阵
u=[a;b]
Y=[d(k);d(k-1);…]
B=[-z(k), 1;…]
解Y=Bu,求出a,b(当然a可以设为1/2,便于后期计算)

3.预测
得出白化后的模型:
x(t)=(x_0(1)-b/a)e^-a(t-1)+b/a;
即可测得任意一跳的预测值。

4.检验
灰色模型的精度检验一般有三种方法灰色模型的精度检验一般有三种方法,相对误差大小检验法,关联度检验法和后验差检验法。常用的为后验差检验法。
1.将预测得到的x_1(k)通过累减法得到x_0(k)
2.计算残差
3.将残差平方和与原序列平方和对比
4.S1/S2,查表判定

1 级(好) C<=0.35
2 级(合格) C<=0.5&c>0.35
3 级(勉强) C<=0.65&c>0.5
4 级(不合格) C>0.65
如此,灰色预测结束另外。

python代码:

# 灰色模型预测

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

dir = 'C:/Users/Administrator/Desktop/'

data = pd.read_excel(dir+'test.xls', sheetname='Sheet1')
data = np.array(data['db'])
lens = len(data)  # 数据量

# 数据检验
## 计算级比
lambds = []
for i in range(1, lens):
    lambds.append(data[i-1]/data[i])
## 计算区间
X_min = np.e**
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值