文章目录

  • 模型介绍
  • 实例介绍
  • 代码
  • 实验结果

模型介绍

https://blog.csdn.net/u012735708/article/details/82460962

实例介绍

给定某航班的乘客变化数据,使用ARIMA计算预测模型

代码

import pandas as pd
import numpy as np
from statsmodels.tsa.arima_model import ARIMA
import matplotlib as mpl
import matplotlib.pyplot as plt
import warnings
import matplotlib.patches as mpatches
from statsmodels.tools.sm_exceptions import HessianInversionWarningdef extend(a, b):return 1.05*a-0.05*b, 1.05*b-0.05*adef date_parser(date):# 转换时间索引return pd.datetime.strptime(date, '%Y-%m')if __name__ == '__main__':warnings.filterwarnings(action='ignore', category=HessianInversionWarning)# 设置显示宽度pd.set_option('display.width', 100)# 全部打印,参数suppress表示是否用科学计数法来表示浮点数np.set_printoptions(linewidth=100, suppress=True)# 参数parse_dates为把某一列解析为时间索引;date_parser返回一个包含指定日的详细信息的关联数组data = pd.read_csv('AirPassengers.csv', header=0, parse_dates=['Month'], date_parser=date_parser, index_col=['Month'])# 对列索引重新命名data.rename(columns={'#Passengers': 'Passengers'}, inplace=True)print(data.dtypes)mpl.rcParams['font.sans-serif'] = [u'SimHei']mpl.rcParams['axes.unicode_minus'] = Falsex = data['Passengers'].astype(np.float)# 对数计算-默认以e为底x = np.log(x)print(x.head(10))show = 'prime'   # 'diff', 'ma', 'prime'd = 1diff = x - x.shift(periods=d)ma = x.rolling(window=12).mean()xma = x - ma# 时间序列分析-ARIMAp = 2q = 2model = ARIMA(endog=x, order=(p, d, q))     # 自回归函数p,差分d,移动平均数qarima = model.fit(disp=-1)                  # disp<0:不输出过程prediction = arima.fittedvaluesprint(type(prediction))y = prediction.cumsum() + x[0]mse = ((x - y)**2).mean()rmse = np.sqrt(mse)plt.figure(facecolor='w')if show == 'diff':plt.plot(x, 'r-', lw=2, label=u'原始数据')plt.plot(diff, 'g-', lw=2, label=u'%d阶差分' % d)#plt.plot(prediction, 'r-', lw=2, label=u'预测数据')title = u'乘客人数变化曲线 - 取对数'elif show == 'ma':#plt.plot(x, 'r-', lw=2, label=u'原始数据')#plt.plot(ma, 'g-', lw=2, label=u'滑动平均数据')plt.plot(xma, 'g-', lw=2, label=u'ln原始数据 - ln滑动平均数据')plt.plot(prediction, 'r-', lw=2, label=u'预测数据')title = u'滑动平均值与MA预测值'else:plt.plot(x, 'r-', lw=2, label=u'原始数据')plt.plot(y, 'g-', lw=2, label=u'预测数据')title = u'对数乘客人数与预测值(AR=%d, d=%d, MA=%d):RMSE=%.4f' % (p, d, q, rmse)plt.legend(loc='upper left')plt.grid(b=True, ls=':')plt.title(title, fontsize=18)plt.tight_layout(2)plt.savefig('%s.png' % title)plt.show()

实验结果

运行结果:

Passengers    int64
dtype: object
Month
1949-01-01    4.718499
1949-02-01    4.770685
1949-03-01    4.882802
1949-04-01    4.859812
1949-05-01    4.795791
1949-06-01    4.905275
1949-07-01    4.997212
1949-08-01    4.997212
1949-09-01    4.912655
1949-10-01    4.779123
Name: Passengers, dtype: float64

show = 'prime’

show = 'ma’

show = 'diff’

机器学习基础算法13-回归实例-时间序列分析ARIMA相关推荐

  1. 机器学习基础算法之随机森林

    英文原文<The Random Forest Algorithm> 专知 编译<机器学习基础算法之随机森林> [导读]在当今深度学习如此火热的背景下,其他基础的机器学习算法显得 ...

  2. 小白机器学习基础算法学习必经之路

    https://www.toutiao.com/a6657427848900379150/ 2019-02-14 15:21:13 未来,人工智能是生产力,是变革社会的主要技术力量之一. 掌握人工智能 ...

  3. kmeans python interation flag_机器学习经典算法-logistic回归代码详解

    一.算法简要 我们希望有这么一种函数:接受输入然后预测出类别,这样用于分类.这里,用到了数学中的sigmoid函数,sigmoid函数的具体表达式和函数图象如下: 可以较为清楚的看到,当输入的x小于0 ...

  4. 时间序列分析-ARIMA模型

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 时间序列分析-ARIMA模型 概述 一.时间序列平稳性 1.严平稳 2.弱平稳 二.建模步骤 1.平稳性检验 2.人工p 和 q 阶数 ...

  5. 【机器学习基础】逻辑回归 + GBDT模型融合实战!

    作者:吴忠强,东北大学,Datawhale成员 一.GBDT+LR简介 协同过滤和矩阵分解存在的劣势就是仅利用了用户与物品相互行为信息进行推荐, 忽视了用户自身特征, 物品自身特征以及上下文信息等,导 ...

  6. 【机器学习】十大机器学习基础算法

    十大机器学习算法入门 近年来,机器学习与人工智能已广泛应用于学术与工程,比如数据挖掘.计算机视觉.自然语言处理.生物特征识别.搜索引擎.医学诊断.检测信用卡欺诈.证券市场分析.DNA序列测序.语音和手 ...

  7. 5.4 SVR回归(时间序列分析)

    文章目录 1.SVR时间序列预测 2.SVR调参 3.SVR高斯核与过拟合 1.SVR时间序列预测 SVR可用于时间序列分析,但不是较好的选择.现在一般采用LSTM神经网络来处理时间序列数据 # SV ...

  8. python arima模型_时间序列分析 ARIMA模型 Python(2)

    最近做了一个时间序列分析的项目.时间序列分析不同于以前的项目--看一下相关的库怎么用,就可以快速上线应用.它是非常需要你的基础知识的,Hamilton关于<时间序列分析>方面的知识,写了厚 ...

  9. arima 数据预处理_时间序列分析|ARIMA模型分步骤解析及R中实践

    你是否想要做时间序列分析,但却不知道代码怎么写? 你是否不清楚时间序列分析各种模型该在什么情况下使用? 本文将针对以上两个问题,带你入门时间序列分析~ 等等! 不止'入门' 读完这篇,你立即就能在R中 ...

  10. python时间序列分析航空旅人_时间序列分析-ARIMA模型(python)

    时间序列概念:在生产和科学研究中,对某一个或者一组变量 进行观察测量,将在一系列时刻 所得到的离散数字组成的序列集合,称之为时间序列.时间序列分析是根据系统观察得到的时间序列数据,通过曲线拟合和参数估 ...

最新文章

  1. 简介SharePoint 2010 14 Hive文件夹
  2. 影响线型缩聚物分子量的因素_【CRPS】通过硼烷引发剂实现氧气引发的超高分子量聚合物的可控合成...
  3. 给Python初学者的最好练手项目,进来看就对了!
  4. 四十、SPSS数据汇总,图表制作,频率分析和描述分析
  5. 动态规划在求解背包问题中的应用(JAVA)--回溯法、记忆化法
  6. “啁啾”看完这篇再不懂,放弃吧……
  7. 解决github网站打开慢的问题
  8. python卸载_技术 | Python 包安装和卸载的几种方式
  9. android10下载更新功能,Android 10部分新功能曝光 感觉越来越暗黑
  10. js通过浏览器批量下载图片代码
  11. 王道训练营3月18日
  12. 【C语言】统计素数并求和
  13. Shell脚本——条件语句
  14. 在javascript中重新加载/刷新页面的不同方法
  15. js 中日期 转换成时间戳 例如2020-12-19 转换为时间戳
  16. python在abaqus中的应用光盘文件下载_python语言在abaqus中的应用随书光盘.rar-讲义文档类资源...
  17. 智能发展的四个层次:运算智能,感知智能,认知智能,强智能。道翰天琼认知智能。
  18. 第十一章 AWT编程
  19. MySql实验嵌套查询_数据库实验:SQL嵌套查询
  20. 游戏趣史:游戏引擎的发展史

热门文章

  1. 使用http连接到Analysis services
  2. C++多态的练习——编写一个计算器项目
  3. UnityShader - 模拟动态光照特效
  4. 软件测试-开始软件测试
  5. java线程并发库之--线程阻塞队列ArrayBlockingQueue
  6. 通过指针获取输入的字符串
  7. ★★★【加快】页面的【加载速度】,先减少图片请求★
  8. java读取照片信息 获取照片拍摄时的经纬度
  9. 为什么需要消息队列(MQ)
  10. App Domains and dynamic loading