1.3 Python预测初步
前言:本篇文章通过一个简单的例子来说明用python进行预测的主要步骤。让大家了解到用python进行预测的一个基本过程。
- 本实例采用wineind数据集(葡萄酒销量预测),数据集表示从1980年1月到1994年8月,葡萄酒生产商销售的容量不到1L的澳大利亚葡萄酒的总量。数据大致如下图所示:
(1)首先我们要做的第一步就是数据预处理
- 基于wineind数据集,使用statsmodels.graphics.tsaplots模块下面的plot_acf函数查看wineind数据的自相关性。代码如下。
from statsmodels.graphics.tsaplots import plot_acf,plot_pacf
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
wineind=pd.read_csv("wineind.csv")
#concat函数可以将数据根据不同的轴作为简单的融合
#axis表示需要合并连链接的轴,0是行,1是列
wineind=pd.concat([wineind,wineind.月份.str.split('-',expand=True)],axis=1)
wineind=wineind.drop(columns=['月份']).rename(columns={
0:"年份",1:"月份"})
wineind['月份']=[int(x) for x in wineind.月份]
plot_acf(wineind.销量,lags=100,title="wineind autocorrection").show()
- 其中,上图中竖线表示对应近n期延迟数据的相关系数,阴影部分表示相关性不明显的部分。其中第一条竖线表示第0期。
- 从左到右,选择一些不在阴影范围内的数据来建立指标,作为预测基础数据。(1,4,6,8,12)期数据。
(2)观察并且确定wineind数据周期为一年的,并且将1980年到1993年每年按月份的曲线图画在一张图中。代码如下。
"""
我们可以将1980年到1994年每年按照月份的曲线画在一张图中
"""
plt.figure(figsize=(10,5))
for _year_ in pd.unique(wineind.月份):
df_row=wineind.loc[wineind.年份==_year_,]
plt.plot(df_row.月份.values,df_row.销量.values,'o--',label