文章目录

  • 引言
  • 1.灰色预测模型
  • 2.python实现

引言

  灰色预测算法是一种对含有不确定因素的系统进行预测的方法。在建立灰色预测模型之前,需先对原始时间序列进行数据处理,经过数据处理后的时间序列即成为生成列。灰色系统常用的数据处理方式有累加和累减两种。灰色预测以灰色模型为基础,在众多灰色模型中,GM(1,1)模型最为常用。下面展示灰色预测算法的过程及代码实现

1.灰色预测模型

  设特征X(0)={X(0)(i),i=1,2...,n}X^{(0)}=\{X^{(0)}(i),i=1,2...,n\}X(0)={X(0)(i),i=1,2...,n}为一非负单调原始数据序列,建立灰色预测模型如下:

  1. 首先对X(0)X^{(0)}X(0)进行一次累加,得到一次累加序列X(1)={X(1)(k),k=0,1,2...,n}X^{(1)}=\{X^{(1)}(k),k=0,1,2...,n\}X(1)={X(1)(k),k=0,1,2...,n}
  2. 对X(1)X^{(1)}X(1)可建立下述一阶线性微分方程,即GM(1,1)GM(1,1)GM(1,1)模型
  3. 求解微分方程,即可得到预测模型
  4. 由于GM(1,1)GM(1,1)GM(1,1)模型得到的是一次累加量,将GM(1,1)GM(1,1)GM(1,1)模型所得的数据X^(1)(k+1)\hat{X}^{(1)}(k+1)X^(1)(k+1)经过累减还原为X^(0)(k+1)\hat{X}^{(0)}(k+1)X^(0)(k+1),即X(0)X^{(0)}X(0)的灰色预测模型
  5. 后验差检验模型精度

  灰色预测法的通用性强,一般的时间序列场合都适用,尤其适合那些规律性差且不清楚数据产生机理的情况。灰色预测模型的优点是预测精度高,模型可检验、参数估计方法简单、对小数据集有很好的的预测效果;缺点是对原始数据序列的光滑度要求很高,在原始数据列光滑性较差的情况下灰色预测模型的预测精度不高,甚至通不过检验,结果只能放弃使用灰色模型进行预测。

2.python实现

import numpy as np#自定义灰色预测函数
def GM11(x0): # 数据处理x1 = x0.cumsum() #1-AGO序列z1 = (x1[:len(x1)-1] + x1[1:])/2.0 #紧邻均值(MEAN)生成序列z1 = z1.reshape((len(z1),1))# 计算参数B = np.append(-z1, np.ones_like(z1), axis = 1)Yn = x0[1:].reshape((len(x0)-1, 1))[[a],[b]] = np.dot(np.dot(np.linalg.inv(np.dot(B.T, B)), B.T), Yn) # 还原值f = lambda k: (x0[0]-b/a)*np.exp(-a*(k-1))-(x0[0]-b/a)*np.exp(-a*(k-2)) # 后验差检验delta = np.abs(x0 - np.array([f(i) for i in range(1,len(x0)+1)]))C = delta.std()/x0.std()P = 1.0*(np.abs(delta - delta.mean()) < 0.6745*x0.std()).sum()/len(x0)return f, a, b, x0[0], C, P #返回灰色预测函数、a、b、首项、方差比、小残差概率

参考于《python数据分析与挖掘实战》


如果对您有帮助,麻烦点赞关注,这真的对我很重要!!!如果需要互关,请评论或者私信!


机器学习—数据挖掘之灰色预测算法相关推荐

  1. 【负荷预测】基于灰色预测算法的负荷预测(Python代码实现)

    目录 1 概述 2 流程图 3 入门算例  4 基于灰色预测算法的负荷预测(Python代码实现) 1 概述 "由于数据列的离散性,信息时区内将出现空集(不包含信息的定时区),因此只能按近似 ...

  2. 你也能看懂的:灰色预测算法

    灰色预测是就灰色系统所做的预测.所谓灰色系统是介于白色系统和黑箱系统之间的过渡系统.其具体的含义是:如果某一系统的全部信息已知为白色系统,全部信息未知为黑箱系统,部分信息已知,部分信息未知,那么这一系 ...

  3. 毕业设计-基于机器学习的短期负荷预测算法

    目录 前言 课题背景和意义 实现技术思路 一.电力负荷预测 二.典型负荷预测算法 实现效果图样例 最后 前言

  4. 机器学习数据挖掘十大经典算法 数学建模常用算法

    国际权威的学术组织the IEEE International Conference on Data Mining (ICDM) 2006 (香港召开)年12月评选出了数据挖掘领域的十大经典算法.不仅 ...

  5. 机器学习之线性回归值预测算法

    一. 线性回归 什么是回归:从大量的函数结果和自变量反推回函数表达式的过程就是回归.线性回归是利用数理统计中回归分析来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法.--主要是解决值预测 ...

  6. 灰色预测算法改进_改进背景值Z_python

  7. 时间序列预测:用电量预测 07 灰色预测算法

  8. 基于粒子群优化的灰色预测方法(Matlab)——附代码

    目录 摘要: 研究背景: GM(1,1)模型 基于PSO的灰色预测算法 运行结果: 本文Matlab代码分享 摘要: 本文对灰色预测算法进行了研究.在GM(1,1)模型中,发展系数a和灰色作用量u是两 ...

  9. 灰色预测GM(1,n)模型_python

    灰色系统理论及其应用系列博文: 一.灰色关联度分析法(GRA)_python 二.灰色预测模型GM(1,1) 三.灰色预测模型GM(1,n) 四.灰色预测算法改进1-背景值Z 五.灰色预测改进2-三角 ...

  10. 美国 2006 年机器学习和知识发现年会数据挖掘使用率较高算法排名

    在美国 2006 年机器学习和知识发现年会,数据挖掘(Data Mining)哪些算法使用率较高?现场投票结果可以给我们一点线索.数据挖掘有十大经典算法为:C4.5,K-Means,SVM,Aprio ...

最新文章

  1. Python 列表生成式的使用
  2. linux(六)之文本操作
  3. shell操作典型案例--FTP操作
  4. Py之ipykernel:Python库之ipykernel简介、安装、使用方法之详细攻略
  5. 实用:Google Chrome 键盘快捷键大全
  6. rust(43)-rust语言特点与版本发布
  7. 俄罗斯为何把微积分下放到中学讲授?
  8. 拿什么拯救你,我的面试之——从零打卡刷Leetcode(No.003)
  9. C++ STL 容器的一些总结 --- set(multiset)和map(multimap)
  10. 日期时间选择器 DateTimePicker 1127
  11. Python高级——with上下文管理器
  12. 同济版《工程数学:线性代数》60条笔记全整理
  13. linux开机自检时间长,Linux 开机自检的设置(tune2fs和fsck)
  14. 免费Web托管公司000Webhost被黑 1350万明文密码泄露
  15. Python#Typora-Python笔记
  16. word 图片导入不翻转_如何在Microsoft Word中翻转图片
  17. python-pandas-读取与写入文件
  18. 日常工作记录:安卓运行时出现的Cause: Dex cannot parse version 52 byte code.问题
  19. 运行Springboot项目时报错WhiteLabel Error Page
  20. 训练数据出现TypeError: 'numpy.float64' object cannot be interpreted as an integer错误

热门文章

  1. EasyUI项目之书籍管理(CRUD)
  2. 前大疆RoboMaster技术总监:机器人工程师学习计划
  3. VS2012/VS2013安装教程
  4. 既然谭浩强的C语言教材不好,那应该选什么书作C语言教材?
  5. 英语不好,学编程太困难?或许用文言文来编程你就更加容易上手了!
  6. vivo9.0以上系统如何无需Root激活XPOSED框架的流程
  7. win10同时安装jdk8和jdk11
  8. iPhone 各屏幕尺寸及解析
  9. MATLAB----数据拟合
  10. 实现excel在线打印