首页 > 编程知识 正文

预测公式算法,模型预测法的具体步骤是

时间:2023-05-04 17:10:30 阅读:148243 作者:1669

预测模型1 .时间序列分析2 .机器学习预测模型2.1决策树2.2支持向量机回归(SVR )

获得数据集时,任务是预测一组值,而预测任务大多采用拟合方法。 该文本主要介绍了三种预测方法的时间序列分析、灰色预测模型和神经网络。

1 .时间序列分析

时间序列也叫动态序列,数据是由时间和数值组成的序列。 时间序列分析有三个作用,可以大致记述为记述过去,分析规律,预测未来。 接下来将介绍3个模型,季节分解,指数平滑,ARIMA模型

一般时间序列数值变化规律有4种(长期趋势t、循环波动c、长期趋势t、不规则波动I )。 首先,对数据绘制时间序列图,观察数据随周期的变化,进而判断序列是否会随周期有较大的变动。 整体序列根据周期的不同会有较大变动还是不会有较大变动,我们采用季节性分解,分别采用乘法和叠加模型。

缺损值可以自己选择方法来填补,这里主要介绍该模型的思想和步骤。 介绍具体的预测模型。

首先,请参阅指数平滑模型

指数平滑大致分为3358www.Sina.com/和简单平滑,Holt线性趋势模型,阻尼趋势模型,简单季节性

yydhl模型

这里截取了文章的段落。

这里,对平滑化参数的选择进行说明。 (1)时序不规则起伏,但长期呈较稳定数时,介于) 0.05、0.2 )之间;(2)序列有明显变化时,介于) 0.3、0.5 )之间;(3)序列变化较慢时这个模型只能预测一期的数据。 原因是他的预测公式。

这里的第一项是预测。 如果预测了,并且要预测t 2时的数据,就会知道需要Xt 1的实际数据,我们不存在该实际数据。 最终预测t 2时只能用t 1的预测值代替,带入方程式中可以得到Xt 2=Xt 1。 这些现象包括:

到了2014年之后就是一个数。 各型号的具体介绍和比较

简单平滑模型

Hole提出了简单的指数平滑模型,可以预测包括趋势在内的数据。 该方法包括预测方程和两种平滑方法。 适用条件:不含季节成分的线性趋势。 另外,Brown线性趋势模型是该模型的特例。

Hole现象趋势模型

适用条件:线性趋势逐渐减弱,不含季节成分。 Hole的线性趋势模型未来的预测值过高。 在此基础上调整该模型,有效施加阻力效应缓解高线性趋势。

模型如下。

以下是两种模型的比较,红色是指加阻尼的模型,蓝色是指Hole线性趋势模型。

阻尼趋势模型

适用条件:含稳定季节性,不含趋势。 模型如下。

简单季节性

他们的适用条件都含有季节性和稳定的季节成分,如上所述,加法和乘法的选择要看时间序列的波动性,周期性波动大的是乘法,反之则是加法。 以下分别是yydhl加法和yydhl乘法。

从图中更清楚地看到他们的差异,一方预测波动较大,另一方预测波动相对缓慢。

另外,使用这些模型需要时间序列的稳定性,稳定性较低,如果时间序列间隔与预测无关,协方差为0,则Xt为白噪声序列。 一般用ACF和PACF检查,但这两种检查偶然情况太多,很难判断。 如后所述,如果是ARMA模型,则完全无法判断。

根据上面的指数平滑模型,在这里预测女装的销售额,

首先,绘制数据的时间序列图。

从中发现整体序列周期性地越来越大,本文采用叠加模型对周期进行季节性分解。 由于时序数据受季节性的影响较大,且存在数据的波动规律,本文选择了yydhl的乘法模型。

观察数据,发现每年中3月和12月,一个周期的销售额明显大于其他月份,随着周期的推进,整体时序数据随周期波动逐渐上升。 因此,对该时间序列采用乘法模型的季节性分解,分解如下图所示。

由于时序数据受季节性变化的影响较大,本文采用yydhl乘法(winter’smultiplicative )模型对数据进行建模

用于描述yydhl乘法序列模型的三个参数、、的值分别为0.034、2.4.6e-7、0.001,此时q检验按原假设绘制残差ACF及残差PACF图,在ACF检验中为滞后

根据yydhl乘法,预测的数据如下图所示,实际值与拟合值的倾向大致一致。 上表表明,拟合似然度为0.815,表明拟合效果良好,预测的数据也呈现出周期性和波动的趋势。

最后预测10年女装销售额的数据如下

2.1机器学习预测模型2.1决策树此博客可以介绍决策树,利用此博客通过sklearn实现回归树

决策树介绍

froms klearn.datasetsimportload _ diabetesf

rom sklearn.model_selection import train_test_splitfrom sklearn.model_selection import cross_val_scorefrom sklearn.tree import DecisionTreeRegressor#导入内置数据集X, y = load_diabetes(return_X_y=True)#切分训练集和测试集train_x,test_x,train_y,test_y = train_test_split(X,y,test_size=0.3)#构建回归树模型regressor = DecisionTreeRegressor(random_state=0).fit(train_x,train_y)#十折交叉验证模型的性能cross_val_score(regressor, X, y, cv=10)#预测regressor.predict(test_x)

另外可以对决策树可视化,效果图:

附上实现的连接:可视化

2.2 支持向量机回归(SVR)

支持向量分类产生的模型(如上所述)仅依赖于训练数据的一个子集,因为构建模型的成本函数不关心超出边界的训练点。类似地,支持向量回归生成的模型仅依赖于训练数据的一个子集,因为成本函数忽略了预测接近其目标的样本。

支持向量回归有 3 种不同的实现: SVR、NuSVR和LinearSVR。LinearSVR 提供比SVR但仅考虑线性内核更快的实现,同时NuSVR实现与SVR和略有不同的公式LinearSVR。
具体实现如下:

from sklearn.model_selection import train_test_splitimport numpy as npfrom sklearn.svm import SVRfrom sklearn import metricsfrom sklearn.metrics import accuracy_score,precision_score, recall_score'''X:特征向量y:样本的目标值trn_x:训练集的特征val_x:测试集的特征trn_y:训练集的目标值val_y:测试集的目标值'''trn_x, val_x, trn_y, val_y = train_test_split(X, y, test_size=0.3, random_state=42)'''kernel参数可选:{'linear','rbf','sigmoid'...}'''clf2 = SVR(kernel='linear',C=15,gamma='auto',probability=True,random_state=42).fit(trn_x,trn_y)resu = clf2.predict(val_x)y_pred_gbc = clf2.predict_proba(val_x)[:,1] y_pred = clf2.predict(val_x)y=np.array(val_y)print('-'*10,'svm','-'*10)fpr, tpr, thresholds = metrics.roc_curve(y,y_pred_gbc,pos_label=1)#输出测试集的Accuracyprint('acc',accuracy_score(val_y,y_pred))

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。