1.一種農(nóng)產(chǎn)品價格預(yù)測方法,其特征在于,包括:
獲得第一類型農(nóng)產(chǎn)品的M個價格預(yù)測樣本,M至少為百數(shù)量級;
通過VMD變分模態(tài)分解將所述M個價格預(yù)測樣本分解為k個具有不同振動頻率特征的價格VM變分模態(tài)分量,其中,k為大于1的整數(shù);
輸入所述k個價格VM分量至經(jīng)過螢火蟲算法優(yōu)化的SVM預(yù)測模型中進行預(yù)測,以預(yù)測到與所述k個價格VM分量對應(yīng)的k個VM分量預(yù)測值;
將所述k個VM分量預(yù)測值線性疊加,以得到對所述第一類型農(nóng)產(chǎn)品的價格預(yù)測值。
2.如權(quán)利要求1所述的農(nóng)產(chǎn)品價格預(yù)測方法,其特征在于,所述通過VMD變分模態(tài)分解將所述M個價格預(yù)測樣本分解為k個具有不同振動頻率特征的價格VM分量,包括:
步驟A1:初始化和n,其中,為所對應(yīng)的傅里葉轉(zhuǎn)換,為{λ1}所對應(yīng)的傅里葉轉(zhuǎn)換,為初始化后中心頻率,uk表示模態(tài)函數(shù),λ為拉格朗日乘法算子,n代表迭代次數(shù);
步驟A2:根據(jù)如下公式更新模態(tài)函數(shù)uk:
以及根據(jù)如下公式更新中心頻率ωk:
其中,為當(dāng)前剩余量的維納濾波,為當(dāng)前模態(tài)函數(shù)功率譜的重心,對應(yīng)為f(t)、ui(t)、λ(t)、的傅里葉轉(zhuǎn)換,f(t)為所述價格預(yù)測樣本,ui(t)為第i個模態(tài)函數(shù),λ(t)表示拉格朗日乘法算子,為uk經(jīng)過n+1次迭代后的值,1≤i≤k;
步驟A3:根據(jù)如下公式更新λ;
其中,為λ(ω)經(jīng)過n次迭代后的傅里葉轉(zhuǎn)換,τ為更新系數(shù);
步驟A4:若則停止迭代,并將uk的輸出作為k個價格VM分量,否則返回步驟A2。
3.如權(quán)利要求1所述的農(nóng)產(chǎn)品價格預(yù)測方法,其特征在于,在所述輸入所述k個價格VM分量至經(jīng)過螢火蟲算法優(yōu)化的SVM預(yù)測模型中進行預(yù)測之前,所述方法還包括:基于所述螢火蟲算法優(yōu)化所述SVM預(yù)測模型的懲罰系數(shù)和核參數(shù)。
4.如權(quán)利要求3所述的農(nóng)產(chǎn)品價格預(yù)測方法,其特征在于,所述基于所述螢火蟲算法優(yōu)化所述SVM預(yù)測模型的懲罰系數(shù)和核參數(shù),包括如下步驟:
步驟B1:初始化熒光素揮發(fā)系數(shù)ρ、熒光素增強因子γ、感知范圍rs、鄰域變化率β、鄰居閾值n1和移動步長s,隨機初始化每個螢火蟲的位置;
步驟B2、基于所述價格預(yù)測樣本與所述SVM預(yù)測模型對所述價格預(yù)測樣本的擬合值之間誤差計算各個螢火蟲的適應(yīng)度值,并基于各個螢火蟲的適應(yīng)度值更新全局最優(yōu)值:
步驟B3:基于如下公式確定各個螢火蟲的決策范圍內(nèi)的螢火蟲個數(shù):
其中,為第t次迭代后第i只螢火蟲的決策范圍,xj(t)-xi(t)為第t次迭代后,第j只螢火蟲與第i只螢火蟲之間的距離,li(t)為在第t次迭代后第i只螢火蟲的螢光素值,lj(t)為在第t次迭代中第j只螢火蟲的螢光素值;
步驟B4:基于如下公式更新各個螢火蟲的熒光素:
li(t)=(1-ρ)li(t-1)+γf(xi(t)),
其中,li(t)為第t次迭代后第i只螢火蟲的螢光素值,li(t-1)第t次迭代前第i只螢火蟲的螢光素值,ρ∈(0,1)為與熒光素揮發(fā)有關(guān)的常數(shù),γ為表示熒光素更新率的常數(shù),f(xi(t))為第i只螢火蟲的適應(yīng)度值;
步驟B5:基于如下公式更新各個螢火蟲的位置:
其中,s為移動步長,xj(t)-xi(t)為第j只螢火蟲與第i只螢火蟲之間距離;
步驟B6:根據(jù)第i只螢火蟲的鄰居密度,對第i只螢火蟲的決策范圍進行更新:
其中,為t+1代第i只螢火蟲的決策范圍,rs為第i只螢火蟲的感知范圍,β為鄰域變化率,nt為鄰居閾值;
步驟B7:若滿足終止條件,輸出全局最優(yōu)值為所述SVM預(yù)測模型最優(yōu)的懲罰系數(shù)及核參數(shù),否則返回步驟B2。
5.如權(quán)利要求1所述的農(nóng)產(chǎn)品價格預(yù)測方法,其特征在于,在所述輸入所述k個價格VM分量至經(jīng)過螢火蟲算法優(yōu)化的SVM預(yù)測模型中進行預(yù)測之前,所述方法還包括:
構(gòu)建待訓(xùn)練SVM預(yù)測模型的輸入輸出結(jié)構(gòu);
基于訓(xùn)練樣本對所述待訓(xùn)練SVM預(yù)測模型的輸入輸出結(jié)構(gòu)進行訓(xùn)練,得到所述SVM預(yù)測模型。
6.一種農(nóng)產(chǎn)品價格預(yù)測裝置,其特征在于,包括:
獲得單元,用于獲得第一類型農(nóng)產(chǎn)品的M個價格預(yù)測樣本,M至少為百數(shù)量級;
分解單元,用于通過VMD變分模態(tài)分解將所述M個價格預(yù)測樣本分解為k個具有不同振動頻率特征的價格VM變分模態(tài)分量,其中,k為大于1的整數(shù);
預(yù)測單元,用于輸入所述k個價格VM分量至經(jīng)過螢火蟲算法優(yōu)化的SVM預(yù)測模型中進行預(yù)測,以預(yù)測到與所述k個價格VM分量對應(yīng)的k個VM分量預(yù)測值;
線性疊加單元,用于將所述k個VM分量預(yù)測值線性疊加,以得到對所述第一類型農(nóng)產(chǎn)品的價格預(yù)測值。
7.如權(quán)利要求6所述的農(nóng)產(chǎn)品價格預(yù)測裝置,其特征在于,所述分解單元,具體用于:
步驟A1:初始化和n,其中,為所對應(yīng)的傅里葉轉(zhuǎn)換,為{λ1}所對應(yīng)的傅里葉轉(zhuǎn)換,為初始化后中心頻率,uk表示模態(tài)函數(shù),λ為拉格朗日乘法算子,n代表迭代次數(shù);
步驟A2:根據(jù)如下公式更新模態(tài)函數(shù)uk:
以及根據(jù)如下公式更新中心頻率ωk:
其中,為當(dāng)前剩余量的維納濾波,為當(dāng)前模態(tài)函數(shù)功率譜的重心,對應(yīng)為f(t)、ui(t)、λ(t)、的傅里葉轉(zhuǎn)換,f(t)為所述價格預(yù)測樣本,ui(t)為第i個模態(tài)函數(shù),λ(t)表示拉格朗日乘法算子,為uk經(jīng)過n+1次迭代后的值,1≤i≤k;
步驟A3:根據(jù)如下公式更新λ;
其中,為λ(ω)經(jīng)過n次迭代后的傅里葉轉(zhuǎn)換,τ為更新系數(shù);
步驟A4:若則停止迭代,并將uk的輸出作為k個價格VM分量,否則返回步驟A2。
8.如權(quán)利要求6所述的農(nóng)產(chǎn)品價格預(yù)測裝置,其特征在于,所述裝置還包括優(yōu)化單元,具體用于:基于所述螢火蟲算法優(yōu)化所述SVM預(yù)測模型的懲罰系數(shù)和核參數(shù)。
9.如權(quán)利要求8所述的農(nóng)產(chǎn)品價格預(yù)測裝置,其特征在于,所述優(yōu)化單元,具體用于:
步驟B1:初始化熒光素揮發(fā)系數(shù)ρ、熒光素增強因子γ、感知范圍rs、鄰域變化率β、鄰居閾值n1和移動步長s,隨機初始化每個螢火蟲的位置;
步驟B2、基于所述價格預(yù)測樣本與所述SVM預(yù)測模型對所述價格預(yù)測樣本的擬合值之間誤差計算各個螢火蟲的適應(yīng)度值,并基于各個螢火蟲的適應(yīng)度值更新全局最優(yōu)值:
步驟B3:基于如下公式確定各個螢火蟲的決策范圍內(nèi)的螢火蟲個數(shù):
其中,為第t次迭代后第i只螢火蟲的決策范圍,xj(t)-xi(t)為第t次迭代后,第j只螢火蟲與第i只螢火蟲之間的距離,li(t)為在第t次迭代后第i只螢火蟲的螢光素值,lj(t)為在第t次迭代中第j只螢火蟲的螢光素值;
步驟B4:基于如下公式更新各個螢火蟲的熒光素:
li(t)=(1-ρ)li(t-1)+γf(xi(t)),
其中,li(t)為第t次迭代后第i只螢火蟲的螢光素值,li(t-1)第t次迭代前第i只螢火蟲的螢光素值,ρ∈(0,1)為與熒光素揮發(fā)有關(guān)的常數(shù),γ為表示熒光素更新率的常數(shù),f(xi(t))為第i只螢火蟲的適應(yīng)度值;
步驟B5:基于如下公式更新各個螢火蟲的位置:
其中,s為移動步長,xj(t)-xi(t)為第j只螢火蟲與第i只螢火蟲之間距離;
步驟B6:根據(jù)第i只螢火蟲的鄰居密度,對第i只螢火蟲的決策范圍進行更新:
其中,為t+1代第i只螢火蟲的決策范圍,rs為第i只螢火蟲的感知范圍,β為鄰域變化率,nt為鄰居閾值;
步驟B7:若滿足終止條件,輸出全局最優(yōu)值為所述SVM預(yù)測模型最優(yōu)的懲罰系數(shù)及核參數(shù),否則返回步驟B2。
10.如權(quán)利要求6所述的農(nóng)產(chǎn)品價格預(yù)測裝置,其特征在于,所述裝置還包括:
構(gòu)建單元,用于構(gòu)建待訓(xùn)練SVM預(yù)測模型的輸入輸出結(jié)構(gòu);
訓(xùn)練單元,用于基于訓(xùn)練樣本對所述待訓(xùn)練SVM預(yù)測模型的輸入輸出結(jié)構(gòu)進行訓(xùn)練,得到所述SVM預(yù)測模型。