利用时间序列预测用户系统是否过载
来源:互联网 发布:js bind 用法 编辑:程序博客网 时间:2024/05/16 01:19
目标:
预测服务器磁盘已使用空间大小
思路与流程:
系统长时间运行,数据会持续写入磁盘,存储空间持续减少。由此看来,磁盘空间大小与时间变化有很强的关联性,且历史数据对未来发展存在一定的影响,故采用时间序列模型
确定模型之后,需要抽取相应的数据。需要对数据进行周期性分析及数据清洗、数据变换等操作,以适应模型的的需要
抽取数据 - 数据探索 - 数据预处理 - 构建模型
一、抽取数据
本次挖掘抽取 2014-10-01 到 2014-11-16 期间C盘和D盘的磁盘容量数据
综上看出,数据集的大小为(188行, 7列),没有空值
二、数据探索
本次挖掘采用时间序列分析方法建模,需要保证数据的平稳性,我们可以通过时序图初步发现数据的平稳性
C盘已使用空间的时序图:
D盘已使用空间的时序图:
从图中可以得知,C盘和D盘已使用空间不具有周期性,表现出缓慢增长,呈现趋势性。可以初步判定,数据是非平稳的
三、数据预处理
按照时间序列的要求,我们只需要知道时间序列值就够了。这里的时间序列值是C盘已使用空间和D盘已使用空间,我们需要从原始数据中提取出它们作为单独的列,代码如下:
used_d = d[d['TARGET_ID'] == 184].copy()used_d['COLLECTTIME'] = pd.to_datetime(used_d['COLLECTTIME'])g_d = used_d.groupby('COLLECTTIME')c_d = pd .DataFrame(g_d.apply(lambda x : x['VALUE'].iloc[0]),columns=['CWXT_DB:184:C:\\'])d_d = pd .DataFrame(g_d.apply(lambda x : x['VALUE'].iloc[1]),columns=['CWXT_DB:184:D:\\'])final_d = pd.concat([c_d,d_d],axis=1)
处理后的数据集如下:
四、构建模型及应用
注:只采用D盘已使用空间大小的数据
1 平稳性和白噪声检验
时间序列要求我们先对数据的平稳性检验,确保时间序列没有随机趋势或确定趋势。白噪声检验能够确保时间序列的数据是有用的
平稳性检验结果:
白噪声检验结果:
2 模型识别和模型检验
这里利用BIC信息准则对模型进行定阶,确定合适的p、q参数,从而选择最优的ARIMA模型。代码如下:
stable_s = s.diff(1).dropna()from statsmodels.tsa.arima_model import ARIMApmax = int(len(stable_s)/10) #一般阶数不超过length/10qmax = int(len(stable_s)/10) #一般阶数不超过length/10bic_matrix = [] #bic矩阵for i in range(pmax+1): l = [] for j in range(qmax+1): try: l.append(ARIMA(s, (i,1,j)).fit().bic) except: l.append(None) bic_matrix.append(l)
最终p、q的值确定为:
确定p、q之后,还需要检验其残差序列是否为白噪声。如果不是白噪声,说明残差中还存在有用信息,需要进一步提取或者修改模型
残差序列白噪声检验结果:
3 模型预测和模型评价
通过已构建的模型,预测未来5天的D盘已使用空间大小。预测结果为:
实际值与预测值对比结果表(单位:GB):
最后评价时序模型效果的好坏,采用3个衡量模型预测精度的统计指标:平均绝对误差、均方根误差、平均绝对百分比
统计量为:
结合实际业务,误差阈值设定为1.5。上述统计量全都小于设定的阈值,模型可用
- 利用时间序列预测用户系统是否过载
- 基于时间序列的用户行为预测
- 基于时间序列的用户预测模型
- python利用LSTM进行时间序列分析预测
- python利用LSTM进行时间序列分析预测
- Python中利用LSTM模型进行时间序列预测分析
- 时间序列预测法
- 时间序列预测模型
- 时间序列预测
- 时间序列模型预测
- 平稳时间序列预测
- LSTM预测时间序列
- LSTM预测时间序列
- 时间序列预测
- 时间序列预测
- 【时间序列预测】人口数量预测神经网络程序
- 什么是时间序列预测法?
- R & ARIMA 时间序列预测
- 函数十个问答
- 签名-代码混淆Progurard-反编译
- UGUI +ScrollRect下实现动态添加grid子物体
- MySQL学习笔记(一):修改MySQL中的提示符
- ubuntu 17.10 常用软件安装
- 利用时间序列预测用户系统是否过载
- hbase常用命令
- Android5.0 显示系统(二)————SurfaceComposerClient
- JTA 分布式事务
- vim_config使用说明
- mysql常用操作总结
- java socket
- 一周四次课(10月19日)
- C++/C语言函数:isalpha()函数