江蘇蘇源高科技有限公司 王征美
基于JAVA與MATLAB實現(xiàn)投資預(yù)測應(yīng)用
江蘇蘇源高科技有限公司 王征美
有效運用Matlab和Java集成開發(fā),結(jié)合投資預(yù)測模型算法,較便捷地實現(xiàn)投資預(yù)測應(yīng)用功能,為投資管理提供信息系統(tǒng)支撐。
多元線性回歸;BP神經(jīng)網(wǎng)絡(luò);灰色系統(tǒng)
MATLAB矩陣工廠,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計算,其強(qiáng)大而高效的處理功能,讓人們從繁雜的數(shù)學(xué)運算分析中解脫出來。而JAVA是一種跨平臺,適合于分布式計算環(huán)境的面向?qū)ο缶幊陶Z言。本文主要介紹運用兩者的優(yōu)勢相結(jié)合,共同實現(xiàn)投資預(yù)測的應(yīng)用。
充分利用信息化手段輔助實現(xiàn)投資計劃預(yù)測,為有效管控和科學(xué)安排年度投資計劃,優(yōu)化資源配置提供信息系統(tǒng)支撐。通過對投資影響因素及歷史數(shù)據(jù)分析,科學(xué)預(yù)測,為投資計劃提供理論依據(jù)。
通過投資預(yù)測管理應(yīng)用功能的建設(shè),收集基礎(chǔ)數(shù)據(jù),運用多元線性回歸、BP神經(jīng)網(wǎng)絡(luò)、灰色系統(tǒng)、組合算法相結(jié)合,建立投資預(yù)測模型。
多元回歸分析預(yù)測法[1],是指通過對兩個或兩個以上的自變量與一個因變量的相關(guān)分析,建立預(yù)測模型進(jìn)行預(yù)測的方法。當(dāng)自變量與因變量之間存在線性關(guān)系時,稱為多元線性回歸分析。根據(jù)歷史的樣本數(shù)據(jù),建立多元線性回歸的預(yù)測模型;從而在不需要未來樣本數(shù)據(jù)的情況下,預(yù)測未來時刻多元線性回歸模型中的回歸參數(shù)[2]。
BP神經(jīng)網(wǎng)絡(luò)算法是一種有監(jiān)督式的學(xué)習(xí)算法,其主要思想是:輸入學(xué)習(xí)樣本,使用反向傳播算法對網(wǎng)絡(luò)的權(quán)值和偏差進(jìn)行反復(fù)的調(diào)整訓(xùn)練,使輸出的向量與期望向量盡可能地接近,當(dāng)網(wǎng)絡(luò)輸出層的誤差平方和小于指定的誤差時訓(xùn)練完成,保存網(wǎng)絡(luò)的權(quán)值和偏差[3]。
灰色預(yù)測(GM)通過鑒別系統(tǒng)因素之間發(fā)展趨勢的相異程度,即進(jìn)行關(guān)聯(lián)分析,并對原始數(shù)據(jù)進(jìn)行生成處理來尋找系統(tǒng)變動的規(guī)律,生成有較強(qiáng)規(guī)律性的數(shù)據(jù)序列,然后建立相應(yīng)的微分方程模型,從而預(yù)測事物未來發(fā)展趨勢的狀況[4]。組合算法是一種基于群體智能的新興演化計算技術(shù),廣泛用于解決科學(xué)研究和工程實踐中的優(yōu)化問題。
投資預(yù)測系統(tǒng)基于統(tǒng)一門戶登錄,集成統(tǒng)一權(quán)限,主要包括:基礎(chǔ)數(shù)據(jù)、基本算法、組合算法、預(yù)測分析四個模塊。
基礎(chǔ)數(shù)據(jù)部分,包括:歷年GDP、售電量、統(tǒng)調(diào)負(fù)荷、實際投資額等數(shù)據(jù)收集。
基本算法部分,包含:線性回歸分析、BP神經(jīng)網(wǎng)絡(luò)、灰色系統(tǒng)三個基本算法,提供按單位、年度、電壓等級等篩選方式。
組合算法分布,包含:系數(shù)調(diào)整設(shè)置、組合算法功能。根據(jù)實際業(yè)務(wù)需要,調(diào)整基本算法計算出的系數(shù)值,從而進(jìn)行組合優(yōu)化計算。
預(yù)測分析部分,將四種算法計算結(jié)果和實際投資進(jìn)行對比分析展示,便于直觀瀏覽。
系統(tǒng)采用多層架構(gòu)的技術(shù)方式,分為視圖層、控制層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層,通過各層次系統(tǒng)組件間服務(wù)的承載關(guān)系,實現(xiàn)系統(tǒng)功能。
視圖層主要完成用戶交互功能。數(shù)據(jù)的展示主要使用Extjs、HightChart組件完成,向服務(wù)器提交的數(shù)據(jù)提交到后臺的Action類進(jìn)行處理。
控制層使用Struts的Action來實現(xiàn),通過內(nèi)置MVC開發(fā)模式分離頁面數(shù)據(jù)處理、流轉(zhuǎn)控制、頁面生成??刂茖诱{(diào)用業(yè)務(wù)邏輯層進(jìn)行業(yè)務(wù)處理。
業(yè)務(wù)邏輯層由一系列Service組成,主要進(jìn)行業(yè)務(wù)處理,每個Service是一組緊密關(guān)聯(lián)的業(yè)務(wù)功能。業(yè)務(wù)邏輯層用JavaBean來實現(xiàn)業(yè)務(wù)邏輯層功能,用MatLab來實現(xiàn)線性回歸、BP神經(jīng)網(wǎng)絡(luò)、灰色系統(tǒng)、組合優(yōu)化四個核心算法模型。
數(shù)據(jù)訪問層主要負(fù)責(zé)訪問關(guān)系數(shù)據(jù)庫等數(shù)據(jù)源并把數(shù)據(jù)轉(zhuǎn)換為Java對象供其它層的程序調(diào)用。
用Matlab和JAVA共同實現(xiàn)投資預(yù)測應(yīng)用,依據(jù)業(yè)務(wù)模型可以并行實現(xiàn)Matlab算法類庫和JAVA應(yīng)用功能。
1)首先要配置環(huán)境變量,JAVA和Matlab使用的JDK運行環(huán)境保持一致,便于調(diào)試成功。
2)接著用MyEclipse建立web應(yīng)用,實現(xiàn)基礎(chǔ)數(shù)據(jù)收集、投資預(yù)測的頁面展示功能。
3)可以并行用MatLab建立一個Project,利用MatLab強(qiáng)大的函數(shù)功能實現(xiàn)多元線性回歸算法、BP神經(jīng)網(wǎng)絡(luò)算法、灰色系統(tǒng)算法、組合算法,建立不同的M文件,測試驗證后打成Jar文件。
4)將MatLab生成的javabuilder.jar和mat.jar包拷貝到MyEclipse工程的lib中,即可實現(xiàn)Java調(diào)用Matlab的函數(shù)。
5)若系統(tǒng)是在Linux環(huán)境下部署,需在Linux環(huán)境安裝MCRInstaller,并配置運行時環(huán)境變量。
項目實踐過程表明,利用MATLAB和JAVA進(jìn)行優(yōu)勢互補(bǔ),縮短了開發(fā)時間,降低了實現(xiàn)復(fù)雜度,讓人們可以更多地關(guān)注業(yè)務(wù)模型的建立,用戶交互體驗設(shè)計方面,拓展了技術(shù)實現(xiàn)的可行性。
[1]王華麗.多元線性回歸分析實例分析[J].科技資訊,2014,12(29):22+24.
[2]王惠文,孟潔.多元線性回歸的預(yù)測建模方法[J].北京航空航天大學(xué)學(xué)報,2007,(04):500-504.
[3]梁海峰,涂光瑜,唐紅衛(wèi).遺傳神經(jīng)網(wǎng)絡(luò)在電力系統(tǒng)短期負(fù)荷預(yù)測中的應(yīng)用[J].電網(wǎng)技術(shù),2001,(01):49-53.
[4]王成山,楊軍,張崇見.灰色系統(tǒng)理論在城市年用電量預(yù)測中的應(yīng)用——不同預(yù)測方法的分析比較[J].電網(wǎng)技術(shù),1999,(02):17-20.