基于时间序列的短期数据预测--ARMA模型的设计与实现(每个步骤附实现源码)

2023-11-11

本文demo源码、实验数据:传送门

引言

前面我有分享两篇关于时间序列模型的文章,一篇是 Holt-Winters模型原理分析及代码实现(python)一篇是 LSTM模型分析及对时序数据预测的具体实现(python实现)。holt-winters是典型的平滑法,一般用于趋势分析和预测。LSTM是一种时间递归神经网络,适合于处理和预测时间序列中间隔和延迟相对较长的重要事件。最近实验室师兄的毕设论文需要用到某景区共享交通的租用量预测的算法,我帮忙协助实现了下,其中用到了一种新的时间序列模型,叫做ARMA模型,特总结如下。(本文涉及一些数理统计的概念及知识点,遇到不懂的请小伙伴们自行google)

AR、MA、ARMA模型简介

ARMA模型的全称是自回归移动平均模型,它是目前最常用的弥合平稳序列的模型。它又可以细分为AR模型、MA模型和ARMA三大类。都可以看作是多元线性回归模型。

AR

AR模型: 
具有如下结构的模型成为p阶自回归模型,简记为AR(p)。 

xt=ϕ0+ϕ1xt1+ϕ2xt2+...+ϕpxtp+εtxt=ϕ0+ϕ1xt−1+ϕ2xt−2+...+ϕpxt−p+εt

随机变量 XtXt的取值 xtxt是前p期 xt1,xt2,...,xtpxt−1,xt−2,...,xt−p的多元线性回归,认为 xtxt主要受过去p期的序列值影响。误差项是当前的随机干扰 εtεt,为零均值白噪声序列。

MA

MA模型: 
具有如下结构的模型称为q阶自回归模型,简记为MA(q)。 

xt=μ+εtθ1εt1θ2εt2...θqεtqxt=μ+εt−θ1εt−1−θ2εt−2−...−θqεt−q

即在t时刻的随机变量 XtXt的取值 xtxt是前q期的随机扰动 εt1,εt2,...,εtqεt−1,εt−2,...,εt−q的多元线性函数。误差项是当期的随机干扰 εtεt,为零均值白噪声序列, μμ是序列 {Xt}{Xt}的均值。认为 xtxt主要受过去q期的误差项影响。

ARMA

ARMA 
ARMA模型是最常用的平稳序列拟合模型,关于平稳序列的定义,请戳:平稳序列。ARMA模型的公式如下: 

xt=ϕ0+ϕ1xt1+ϕ2xt2+...+ϕpxtp+εtθ1εt1θ2εt2...θqεtqxt=ϕ0+ϕ1xt−1+ϕ2xt−2+...+ϕpxt−p+εt−θ1εt−1−θ2εt−2−...−−θqεt−q

随机变量 XtXt的取值 xtxt不仅与以前p期的序列值有关还与前q期的随机扰动有关。

基于时间序列的短期数据预测

接下来我将用数据挖掘的规范流程开启此次的探索之旅~

分析方法与过程

本文目的是预测某景区共享交通的租用情况,故可采用时间序列分析法来分析共享交通的历史租用情况,并预测未来几天内或几周内的租用情况,其挖掘建模的总体流程如下图所示。 
model_overview

数据抽取

我们从业务系统数据库抽取了时间段为2015-09-28~2017-10.16的数据,原始部分数据如下图所示: 
raw_data

数据探索与分析

原始数据转换成时序数据

原始数据是每发生一次租用行为就上传一天记录,为了生成每天的租用量,需要将数据按日做groupby,并求和,算出具体某一天的租用行为的次数,同时删除不必要的属性,代码如下:

def get_week_day(date):
  week_day_dict = {
    0 : '星期一',
    1 : '星期二',
    2 : '星期三',
    3 : '星期四',
    4 : '星期五',
    5 : '星期六',
    6 : '星期天',
  }
  day = date.weekday()
  return week_day_dict[day]
def loadDataSet(pathName):
    dataset = pd.read_excel(pathName)
    #to datetime
    dataset['开始时间'] = pd.to_datetime(dataset['开始时间'])
    dataset['开始时间'] = dataset['开始时间'].apply(lambda x: str(x)[:10])
    dataset['rentNumber'] = 1
    df = dataset.groupby('开始时间').aggregate('sum').reset_index()[['开始时间','rentNumber']]
    tmp = pd.to_datetime(df['开始时间'])
    week = [get_week_day(item) for item in tmp]
    df['week'] = list(week)
    return df
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

原始数据转换成时间序列数据如下所示: 
datalist

空缺值分析

我们分析数据库的数据,发现数据库里面空缺值并不会标记NaN或者-1,而是根本没有这条记录,于是我就生成了2015-09-28至2017-10-16的日期序列,两个序列对比,缺少的日期就是空缺的日期,代码如下:

def get_datelist(starttime,endtime):
  #get_datelist('20150811','20150922')
    startdate = datetime.datetime(int(starttime[0:4]),int(starttime[5:7]),int(starttime[8:10]))
    #now = datetime.datetime.now()
    delta = datetime.timedelta(days=1)
    # my_yestoday = startdate + delta
    # my_yes_time = my_yestoday.strftime('%Y%m%d')
    n = 0
    date_list = []
    while 1:
        if starttime<=endtime:
            days = (startdate  + delta*n).strftime('%Y-%m-%d')
            n = n+1
            date_list.append(days)
            if days == endtime:
                break
    data = pd.DataFrame({'开始时间':date_list})
    return data
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

空缺值实验结果如下图所示: 
空缺 
其中一共有32个空缺值,因为总共的日期有750天,32天只占其中一小部分,而且是分散在各个月,对实际预测影响不是很大,所以此处做丢弃处理。

历史数据时序图

这里我们画出了按天及按月统计租用次数的时序图 
按月统计次数

def month_data(dataset):
  dataset['开始时间']= dataset['开始时间'].apply(lambda x: str(x)[:7])
  df = dataset.groupby('开始时间').aggregate('sum').reset_index()[['开始时间','rentNumber']]
  return df
def plot_monthdata(df):
  df.rentNumber.plot(kind='bar',figsize=(16,4))
  plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

month_data
按天统计次数

def plot_monthdata(df):
  df.rentNumber.plot(kind='bar',figsize=(16,4))
  plt.show()
  • 1
  • 2
  • 3

day_data
当我分析数据,画出上面两个图形时,我震惊了!!!租用量看上去只有周期趋势,没有总体上升趋势!!!而且越往后,峰值越来越小。从我一开始的认知中,我想像租用量,销售量什么的,周期性变化我是赞同的,一般来说周末租用的多,节假日租用的人多,因为景区相应的人多;但是从一个企业的发展来说,租用量不是应该是一种总体上升的趋势么,至少应该像下面的这张图: 
gen
不仅有周期性,而且还有总体上升的趋势。。。 
分析到这里我心里就开始估计这个时序序列估计是个平稳时序即时间序列在某一常数附近波动且波动范围有限。

模型构建

本文共享交通租用量预测模型的建模流程如下图所示: 
model_predict
首先需要对观测值序列进行平稳性检测,如果不平稳,则对其进行差分运算直到差分后的数据平稳。在数据平稳后则对其进行白噪声检验,如果没有通过白噪声检验就进行模型识别,识别该模型属于AR,MA,ARMA的哪一种,如果是平稳非白噪声序列就计算ACF、PACF,进行ARMA模型识别,对已识别好的模型,确定模型参数,最后应用预测并进行误差分析。

平稳性检测

为了确定原始数据序列中有没有随机趋势或确定趋势,需要对数据进行平稳性检测,在检测之前,为了避免极大值的干扰,此时将租用量取一个对数。

def stationarity_test(dataset,number):
  data = dataset.copy()
  data = data.iloc[: len(data)-number] #不检测最后number个数据
  #平稳性检测
  from statsmodels.tsa.stattools import adfuller as ADF
  diff = 0
  adf = ADF(data['rentNumber'])
  while adf[1] > 0.05:
    diff = diff + 1
    adf = ADF(data['rentNumber'].diff(diff).dropna())
  print(u'原始序列经过%s阶差分后归于平稳,p值为%s' %(diff, adf[1]))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

检验结果: 
平稳性检测 
这个说明数据是平稳的时许序列,与我们前面的猜测一致!

白噪声检验

为了验证序列中是否是白噪声,如果是白噪声,那么此序列即都是随机扰动,无法进行预测和使用。

def whitenoise_test(dataset,number):
  data = dataset.copy()
  data = data.iloc[: len(data)-number] #不使用最后5个数据
#白噪声检测
  from statsmodels.stats.diagnostic import acorr_ljungbox
  [[lb], [p]] = acorr_ljungbox(data['rentNumber'], lags = 1)
  if p < 0.05:
    print(u'原始序列为非白噪声序列,对应的p值为:%s' %p)
  else:
    print(u'原始该序列为白噪声序列,对应的p值为:%s' %p)
  [[lb], [p]] = acorr_ljungbox(data['rentNumber'].diff().dropna(), lags = 1)
  if p < 0.05:
    print(u'一阶差分序列为非白噪声序列,对应的p值为:%s' %p)
  else:
    print(u'一阶差分该序列为白噪声序列,对应的p值为:%s' %p)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

检验结果: 
白噪声 
检验结果显示原始序列非白噪声。

模型识别

由上面平稳性检测与白噪声检验我们确定了原始序列是平稳非白噪声序列。接下来我们要做的就是计算平稳非白噪声序列的自相关系数ACF及偏自相关系数PACF(关于这两个统计量的说明,大家请自行google)。 
我这里给大家总结了AR模型、MA模型、ARMA模型的统计量识别性质,如下表所示:

模型 统计量 性质
AR模型 均值 常数均值
  方差 常数方差
  ACF 拖尾
  PACF p阶截尾
MA模型 均值 常数均值
  方差 常数方差
  ACF q阶截尾
  PACF 拖尾
ARMA模型 均值 常数均值
  方差 常数方差
  ACF p阶拖尾
  PACF q阶拖尾
ACF、PACF

这里画出原始序列的自相关图:

def plot_acfandpacf(dataset):
  D_data = dataset.rentNumber  
  from statsmodels.graphics.tsaplots import plot_acf
  from statsmodels.graphics.tsaplots import plot_pacf
  fig = plt.figure(figsize=(40,10))
  ax1=fig.add_subplot(211)
  plot_acf(D_data,lags=40,ax=ax1).show()
  ax2=fig.add_subplot(212)
  plot_pacf(D_data,lags=40,ax=ax2).show()
  plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

如下图所示: 
acf: 
acf
pacf: 
pacf
很明显自相关图显示出自相关图与偏自相关图均显示拖尾性。 
这里我们使用模型ARMA,并选取p=1,q=1。

拟合及预测

有何模型参数,我们直接fitting模型并预测未来21天的数据,并将预测数据与真实数据做对比,误差用RMSE表示。 
代码如下

def plot_results(predicted_data, true_data):
  fig = plt.figure(facecolor='white',figsize=(10,5))
  ax = fig.add_subplot(111)
  ax.plot(true_data, label='True Data')
  plt.plot(predicted_data, label='Prediction')
  plt.legend()
  plt.show()
def arma_predict(dataset,number):
  data = list(dataset.rentNumber)
  from statsmodels.tsa.arima_model import ARMA
  """
  import statsmodels.tsa.stattools as st
  order = st.arma_order_select_ic(data,max_ar=2,max_ma=2,ic=['aic', 'bic', 'hqic'])
  """
  model = ARMA(data, order=(1,1))
  result_arma = model.fit(disp=-1, method='css')
  predict = result_arma.predict(len(data)-number,len(data))
  RMSE = np.sqrt(((predict-data[len(data)-number-1:])**2).sum()/(number+1))
  plot_results(predict,data[len(data)-number-1:])
  return predict,RMSE
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

对比图形如下图所示: 
对比图形

误差分析

这里的均方误差为: 
RMSE 
在共享单车租用业务中,算是允许的误差范围,对未来的租用投放量有一定的指导意义。

总结

本文主要采用了ARMA模型对某景区的共享单车投放量做了预测,其中详细描述了数据挖掘建模的一般性流程,并结合实际业务对数据进行了分析,该模型及分析问题的方法也可以应用到金融数据预测,销售数据预测等实际场景中。最后,独学而无友则孤陋而寡闻,欢迎读者提出问题,一起讨论哈~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于时间序列的短期数据预测--ARMA模型的设计与实现(每个步骤附实现源码) 的相关文章

  • steps_per_epoch=2000,epochs=100之间的区别

    第一种解释 batchsize 中文翻译为批大小 批尺寸 在深度学习中 一般采用SGD训练 即每次训练在训练集中取batchsize个样本训练 iteration 中文翻译为迭代 1个iteration等于使用batchsize个样本训练一
  • 文本分类(六):使用fastText对文本进行分类--小插曲

    需要注意的问题 1 linux mac 平台 2 标签中的下划线是两个 两个 两个 环境说明 python2 7 linux 自己打自己脸 目前官方的包只能在linux mac环境下使用 误导大家了 对不起 测试facebook开源的基于深
  • 卷积过程的一个动态图很形象

    卷积神经网络的卷积过程
  • 【机器学习杂烩】投票(Voting)算法在分类问题上的应用(一口气实现Logistic 回归、SVM、KNN、C4.5 决策树、 Adaboost、GBDT 和随机森林,并集成起来)

    投票算法简介 投票是在分类算法中广泛运用的集成学习算法之一 投票主要有硬投票和软投票 两种 硬投票即各基分类器权重相同的投票 其原理为多数投票原则 如果基分类器 的某一分类结果超过半数 则集成算法选择该结果 若无半数结果则无输出 软投票 的
  • 周志华《Machine Learning》学习笔记(9)--EM算法

    上篇主要介绍了贝叶斯分类器 从贝叶斯公式到贝叶斯决策论 再到通过极大似然法估计类条件概率 贝叶斯分类器的训练就是参数估计的过程 朴素贝叶斯则是 属性条件独立性假设 下的特例 它避免了假设属性联合分布过于经验性和训练集不足引起参数估计较大偏差
  • Pytorch 入门 ----学习笔记

    本文是在参加DataWhale开源组队学习 深入浅出Pytorch 过程中 整理的学习笔记 Pytorch 基础知识 张量 张量的创建 张量 也叫做多维数组 常常我们对于一维张量也叫做标量 二位张量叫做矩阵 大部分时候 张量是三维及三维以上
  • 到现在才理解高斯分布的均值与方差为什么是0和1

    问题的来源 如图所示 为什么标准正态分布的期望值0 方差为1呢 如果是针对x变量 期望值为0可以理解 那么方差为1怎么理解呢 显然不可能为1 如果针对y变量 显然所有值都大于0 怎么会期望值会大于0呢 先看数学期望的定义 期望值本身是对所有
  • 周志华《Machine Learning》学习笔记(17)--强化学习

    上篇主要介绍了概率图模型 首先从生成式模型与判别式模型的定义出发 引出了概率图模型的基本概念 即利用图结构来表达变量之间的依赖关系 接着分别介绍了隐马尔可夫模型 马尔可夫随机场 条件随机场 精确推断方法以及LDA话题模型 HMM主要围绕着评
  • 机器学习——几种分类算法的汇总

    https www cnblogs com Zhi Z p 8912396 html
  • 【机器学习】使用scikit-learn实现多元线性回归(10min阅读时长)

    Multiple Linear Regression 多元线性回归 之前有一篇简单线性回归的文章 大家感兴趣可以看看 使用scikit learn实现简单线性回归 Objectives 目标 看完这篇文章 将会 1 使用scikit lea
  • ML-逻辑回归-Softmax-交叉熵(小航)

    在分类问题中 交叉熵的本质就是 对数 似然函数的最大化 逻辑回归的损失函数的本质就是 对数 似然函数的最大化 最大似然估计讲解 https www jianshu com p 191c029ad369 参考统计学习方法笔记 P79 soft
  • ML-熵、条件熵、信息增益

    通俗理解条件熵 特征选择之信息增益法 必看 系统介绍了熵 条件熵 信息增益的概念及推导 条件熵的计算 必看 知乎前三个回答都看一下 有关于熵 条件熵 信息增益的实践 我通过例子一步一步讲解这个概念 在决策树算法的学习过程中 信息增益是特征选
  • 电信客户流失预测----科大讯飞xDataWhale

    记录第一次参加正式的数据挖掘竞赛 由科大讯飞xDatawhale举办的 电信客户流失预测挑战赛 报名链接 2022 iFLYTEK A I 开发者大赛 讯飞开放平台 一 赛题概要 赛题背景 随着市场饱和度的上升 电信运营商的竞争也越来越激烈
  • 最大似然估计(ML)

    1 说明 最大似然估计 Maximum Likelihood Estimation ML 是一种在给定观察数据情况下 来评估模型参数的算法 它属于一种统计方法 用来求一个样本集的相关概率密度函数的参数 例如 统计全校人口的身高 我们已知身高
  • 什么是互递归类型?

    如果在 ML 中 递归数据类型的示例是 datatype llist Nil Node of int llist 什么是机器学习中的相互递归数据类型以及它的示例是什么 这些愚蠢的数据类型就是这样的一个例子 datatype a A Ab o
  • ML 中 ref 函数的用法

    考虑到 ref 运算符 我很难理解它的应用以及以下指令的含义 1 在这个定义中我定义什么 val ref x ref 9 val x 9 int 2 我在这里用 ref x ref 12 做什么 val x ref 8 val x ref
  • 基于 SML 的文件查找

    有没有办法使用 SML Basis 库在特定位置打开文件 也就是说 使用操作系统调用来更改位置 而不是扫描文件并丢弃数据 这很棘手 不幸的是 不直接支持搜索 此外 文件位置仅对于二进制文件是透明的 即您使用BinIO结构 1 对于该结构体
  • 标准机器学习中的结构比较

    我似乎找不到关于为什么这不起作用的参考 2000 1 lt 2000 1 stdIn 18 1 18 18 Error operator and operand don t agree overload operator domain Z
  • SML 中的 'a 和 ''a 有什么区别?

    例如 fun example a a list list a 将有以下签名 a list gt a list 如果我定义不同但内容相同怎么办 例如 fun example a a list list a 它的签名是 a list gt a
  • ML 中高阶函数中的 curry 和 uncurry 是什么

    fun curry f x y f x y fun uncurry f x y f x y fun compose f g x f g x 我了解 compose 函数 但不太了解 ML 中的 curry 和 uncurry 谁能解释一下这

随机推荐

  • Linux_centos7_网络管理1_2

    测试网络连接状态 kingarthur localhost ping www google com PING www google com 174 37 175 229 56 84 bytes of data C www google co
  • nginx_upstream_check_module模块

    nginx upstream check module模块 一个更专业的模块 来专门提供负载均衡器内节点的健康检查的 这个就是淘宝技术团队开发的 nginx 模块nginx upstream check module 通过它可以用来检测后端
  • 静态链接和动态链接的区别

    在理解静态和动态 共享 库链接之间的区别之前 让我们先看一个典型程序的生命周期 从编写源代码到执行它 首先使用任何程序员选择的编辑器以文本文件的形式编写程序 然后必须对其进行编译以将文本文件转换为机器可以理解和执行的目标代码 通常我们编写的
  • 1216项目设计模板

    一 基本信息 目标上线时间 yyyy mm dd 项目人员 研发 测试 背景 二 功能需求 1 业务平台 1 业务的订购 配置默认的模板或者策略 外链图片转存失败 源站可能有防盗链机制 建议将图片保存下来直接上传 img I8vhSe47
  • 最全的Pandas 日期处理 超强总结!

    对于 Pandas 来说 可以处理众多的数据类型 其中最有趣和最重要的数据类型之一就是时间序列数据 时间序列数据无处不在 它在各个行业都有很多应用 患者健康指标 股票价格变化 天气记录 经济指标 服务器 网络 传感器和应用程序性能监控都是时
  • leetcode-135-分发糖果

    老师想给孩子们分发糖果 有 N 个孩子站成了一条直线 老师会根据每个孩子的表现 预先给他们评分 你需要按照以下要求 帮助老师给这些孩子分发糖果 每个孩子至少分配到 1 个糖果 相邻的孩子中 评分高的孩子必须获得更多的糖果 那么这样下来 老师
  • SpringBoot 集成sharding-jdbc 提示:Failed to configure a DataSource: ‘url‘ attribute is not specified ***

    问题描述 今天使用SpringBoot 集成sharding jdbc 4 1 1实现分库分表时报错 APPLICATION FAILED TO START Description Failed to configure a DataSou
  • 记录一次因now()函数应用周期性查不到数据的问题

    问题原因 查询sql使用了now 函数 测试环境数据库所在的容器日期不对 与实际时间晚8个小时 问题背景描述 某天下午快要下班的时候 大概五点的样子 某个测试小哥在系统里点击用户注册功能注册后 一切数据都正常生成后 登录新注册的用户 发现这
  • 基础算法题——Radio Transmission(KMP-next 妙用)

    Radio Transmission 解题思路 在KMP算法中 next l 记录的就是字符串最长的相同的前缀与后缀 也就是说在题目字符串中有一段字符串是重复出现的 那么减去重复出现的字符串以后 剩下的就是这个字符串最小的循环节 比较字符串
  • 19.RV1126_RV1109编写并移植nvp6021驱动

    文章目录 前言 确定硬件 配置设备树生成节点 前言 nvp6021是一个i2C器件 因此 应该编写I2C设备驱动 既然是I2C设备驱动 应该确定的有 使用的是哪一路I2C I2C设备地址是多少等 确定硬件 使用的是哪一路I2C 从上面可以看
  • 动态规划算法与典型例题

    目录 前言 一 动态规划要素 条件 二 动态规划算法设计步骤 三 复杂度分析 四 典型例题1 游艇租聘 五 典型例题2 0 1背包问题 六 典型例题3 跳台阶问题 七 典型例题4 强盗抢劫问题 总结 前言 动态规划也是一种分治思想 分治算法
  • html 在html文件中循环遍历数组并展示

    用html文件实现一个简单的遍历数组并输出到页面上面
  • unixbench测试CPU性能工具/mbw测试内存

    一 unixbench工具 UnixBench是一个类unix系 Unix BSD Linux 统下的性能测试工具 一个开源工具 被广泛用与测试linux系统主机的性能 Unixbench的主要测试项目有 系统调用 读写 进程 图形化测试
  • 【碎碎念随笔】1、回顾我的电脑和编程经历

    闲着无事 讲述一下我的计算机和代码故事 一 初识计算机 余家贫 耕植无钱买电脑 大约六年级暑假 我在姐姐哪儿第一次接触到了计算机 姐姐也是买的二手 计算机真有趣 在我眼中 计算机上寒假了世界上的好东西 是个聚宝盆 在计算机上 可以打小游戏
  • 对象之间的关系

    目录 1 依赖 2 关联 3 聚合 4 组合 5 继承 6 实现 Java的对象 类之间有四种关系 依赖 关联 组合 聚合 继承 实现 1 依赖 依赖 Dependency 一个对象的功能依赖于另一个对象 类比 人类生存依赖食物和空气 体现
  • 在C++遇到有些关键字或者函数被弃用的情况,比如xxx was declared deprecated

    在C 遇到有些关键字或者函数被弃用的情况 随着每一次C 的不断更新 可能都会有些函数或者关键字会被弃用 或者换成了其他的名字 这在编写代码的时候经常会碰到 碰到这种情况 可以在代码的第一行写上忽略此错误的句子 一般为 pragma warn
  • redis之如何配置jedisPool参数

    如何配置Pool的参数 JedisPool的配置参数很大程度上依赖于实际应用需求 软硬件能力 JedisPool的配置参数大部分是由JedisPoolConfig的对应项来赋值的 maxActive 控制一个pool可分配多少个jedis实
  • 项目管理在公司的主要作用是什么?

    项目管理不光是需要公司的支持和承接项目就可以的 还需要项目管理者多方面的把控 以及执行才会达到更好 那么项目管理的主要作用是什么了 1 提升项目本身的经济效益 项目管理通过对时间 成本的掌控 达到项目的经济效益最大化 保证了公司的良性发展
  • Ansible安装部署

    Ansible安装部署 Ansible概述 Ansible的作用 Ansible工作原理 Ansible的特点 Ansible安装部署 环境准备 管理端安装ansible 配置主机清单 ansible 命令行模块 1 command 模块
  • 基于时间序列的短期数据预测--ARMA模型的设计与实现(每个步骤附实现源码)

    本文demo源码 实验数据 传送门 引言 前面我有分享两篇关于时间序列模型的文章 一篇是 Holt Winters模型原理分析及代码实现 python 一篇是 LSTM模型分析及对时序数据预测的具体实现 python实现 holt wint