徐馨潤(rùn)
摘要
隨著軟件技術(shù)的飛速發(fā)展,現(xiàn)代互聯(lián)網(wǎng)涉及的算法和動(dòng)態(tài)效果也越來越復(fù)雜?;ヂ?lián)網(wǎng)上的一系列數(shù)據(jù)的測(cè)量對(duì)于指導(dǎo)網(wǎng)絡(luò)設(shè)計(jì)和改進(jìn)網(wǎng)絡(luò)運(yùn)行性能狀況有著重要的意義。為了能夠利用軟件準(zhǔn)確的計(jì)算出以后的數(shù)據(jù)情況,本論文主要分析了多選預(yù)測(cè)功能實(shí)現(xiàn)的框架工具、方法與原理以及實(shí)現(xiàn)的具體工程,其中結(jié)合實(shí)際案例分析了多選預(yù)測(cè)功能實(shí)現(xiàn)所使用的主要方法。
【關(guān)鍵詞】預(yù)測(cè)算法設(shè)計(jì) 多選功能實(shí)現(xiàn) 數(shù)據(jù)可視化
隨著軟件工程專業(yè)知識(shí)的迅猛發(fā)展,使得軟件工程技術(shù)應(yīng)用范圍無所不在,為了關(guān)注未來的發(fā)展趨勢(shì),它的預(yù)測(cè)功能也更具有研究的價(jià)值。下面我主要從三個(gè)方面對(duì)軟件的多選預(yù)測(cè)功能進(jìn)行了深入分析:
首先是多選預(yù)測(cè)功能技術(shù)的實(shí)現(xiàn)所運(yùn)用到的主要框架工具有:JavaScript,iQuery3.1,JSON, AJAX, Echart3.0。
其次要通過技術(shù)創(chuàng)新達(dá)到多選功能的實(shí)現(xiàn),主要的方法與原理如下:
1預(yù)測(cè)算法設(shè)計(jì)
基于優(yōu)化版移動(dòng)平均算法實(shí)現(xiàn)未來收支狀況預(yù)測(cè)。在已有數(shù)據(jù)庫(kù)中,共存儲(chǔ)我國(guó)現(xiàn)代近70年的數(shù)據(jù),包含人口、收支、工農(nóng)業(yè)產(chǎn)量等眾多數(shù)據(jù)。為實(shí)現(xiàn)對(duì)已有數(shù)據(jù)重用和數(shù)據(jù)復(fù)用,有效地挖掘潛在的數(shù)據(jù)價(jià)值與數(shù)據(jù)效益,提高數(shù)據(jù)利用率與使用率,故利用移動(dòng)平均預(yù)測(cè)法,并在其基礎(chǔ)之上,結(jié)合現(xiàn)有數(shù)據(jù)屬性與需求特點(diǎn),進(jìn)行適當(dāng)改進(jìn),實(shí)現(xiàn)用于預(yù)測(cè)未來一年收支數(shù)據(jù)預(yù)測(cè)的優(yōu)化版移動(dòng)平均預(yù)測(cè)法,以下為算法的實(shí)現(xiàn)方法與原理:
第i+l項(xiàng)的預(yù)測(cè)結(jié)果=項(xiàng)目權(quán)重*項(xiàng)目數(shù)據(jù)值+全部相鄰項(xiàng)目數(shù)據(jù)值之差的和/n
其中:i=l-n表示已有的n項(xiàng)數(shù)據(jù)。
公式中運(yùn)用加權(quán)移動(dòng)平均法時(shí),需要注意的重要問題是權(quán)重的選擇,在傳統(tǒng)的加權(quán)移動(dòng)平均算法中,主要有經(jīng)驗(yàn)法和試算法兩種用于對(duì)權(quán)重決策。在項(xiàng)目中,由于數(shù)據(jù)屬于工農(nóng)業(yè)實(shí)際生產(chǎn)值,更具有經(jīng)驗(yàn)代表性,同時(shí)為減小計(jì)算量,提高網(wǎng)頁(yè)響應(yīng)速度,故此選擇經(jīng)驗(yàn)法,在更靠近的預(yù)測(cè)項(xiàng)目的項(xiàng)中,權(quán)重值越大,同時(shí)若數(shù)據(jù)具有季節(jié)性,也將會(huì)考慮在其中。
公式中主要計(jì)算前n年的平均增長(zhǎng)時(shí),修正加權(quán)移動(dòng)平均算法的偏差,從而削弱由于權(quán)重取值導(dǎo)致的必然誤差以及數(shù)據(jù)陡變帶來的不穩(wěn)定性對(duì)預(yù)測(cè)結(jié)果的影響,進(jìn)而提高預(yù)測(cè)結(jié)果的可靠性。
2多選功能實(shí)現(xiàn)
在常見的預(yù)測(cè)算法中,為保證預(yù)測(cè)結(jié)果的穩(wěn)定性與準(zhǔn)確性,大部分實(shí)現(xiàn)中都不給予用戶自選數(shù)據(jù)預(yù)測(cè)的功能,在本項(xiàng)目中,為提高預(yù)測(cè)的靈活性與可變性,給予用戶更好的交互體驗(yàn)功能,體現(xiàn)創(chuàng)新性,突出創(chuàng)新點(diǎn),故設(shè)計(jì)多選預(yù)測(cè)功能。
3數(shù)據(jù)可視化
動(dòng)態(tài)化展示數(shù)據(jù),展示頁(yè)面進(jìn)行模塊分解處理,使數(shù)據(jù)可視化更為規(guī)范和不易出錯(cuò),整個(gè)網(wǎng)站在數(shù)據(jù)可視化方面采用同一標(biāo)準(zhǔn),后期維護(hù)和升級(jí)非常便利和簡(jiǎn)潔。同時(shí)經(jīng)過簡(jiǎn)單動(dòng)畫處理過的數(shù)據(jù)展示流程更為生動(dòng)形象,同時(shí)擁有多個(gè)數(shù)據(jù)展示的形態(tài),使整個(gè)展示頁(yè)面豐富和形象。
4異步請(qǐng)求數(shù)據(jù)
在傳統(tǒng)的網(wǎng)頁(yè)中,實(shí)現(xiàn)數(shù)據(jù)獲取與獲取的方式主要是刷新頁(yè)面重新請(qǐng)求,但此種方式對(duì)于多模塊多動(dòng)態(tài)數(shù)據(jù)頁(yè)面中顯得捉襟見肘,會(huì)造成刷新數(shù)據(jù)量,網(wǎng)頁(yè)更新緩慢等明顯不良交互體驗(yàn),為提高響應(yīng)速度,減少用戶等待,本項(xiàng)目中使用了aj ax異步請(qǐng)求技術(shù)。在用戶標(biāo)記數(shù)據(jù)項(xiàng)目之后,通過監(jiān)聽預(yù)測(cè)事件,將要獲取的數(shù)據(jù)項(xiàng)通過aj ax異步請(qǐng)求發(fā)送至后臺(tái),并交由后臺(tái)處理,進(jìn)行格式轉(zhuǎn)后返回至前臺(tái)頁(yè)面。
最后是多選預(yù)測(cè)功能實(shí)現(xiàn)過程,具體包括:
4.1多選監(jiān)聽與預(yù)測(cè)響應(yīng)
在每一行數(shù)據(jù)項(xiàng)的列首,添加一個(gè)新的多選擇標(biāo)記按鈕,并引入FontAwesome多選擇標(biāo)記圖標(biāo)。添加該按鈕以處理單擊事件、監(jiān)視用戶操作并根據(jù)監(jiān)視結(jié)果動(dòng)態(tài)顯示當(dāng)前項(xiàng)的選擇狀態(tài)。當(dāng)用戶啟動(dòng)預(yù)測(cè)時(shí),瀏覽器將捕獲事件并從后臺(tái)請(qǐng)求數(shù)據(jù)。直到處理和響應(yīng)。
4.2后端查詢與格式轉(zhuǎn)換
目前,該項(xiàng)目采用了非常成熟的SpringMVC框架。當(dāng)在后端調(diào)用和查詢數(shù)據(jù)時(shí),它基本上封裝了大量的sql語句,這些語句用于通過主控制器獲取數(shù)據(jù)。將特定的格式轉(zhuǎn)換為將數(shù)據(jù)填充到類生成的ResultSet對(duì)象中,然后生成相應(yīng)數(shù)量的模型對(duì)象,然后每個(gè)模型對(duì)象獲得相應(yīng)的數(shù)據(jù)。此處的數(shù)據(jù)被轉(zhuǎn)換為對(duì)象的成員變量中的特定值。所有這些對(duì)象一起是列表對(duì)象。然后通過創(chuàng)建多個(gè)arraylist對(duì)象將數(shù)據(jù)發(fā)送到j(luò)son對(duì)象。最后,使用echarts圖表顯示數(shù)據(jù),數(shù)據(jù)源是這一個(gè)json對(duì)象。
4.3數(shù)據(jù)提取與數(shù)據(jù)處理
在獲取到后臺(tái)數(shù)據(jù)之后,為方便預(yù)測(cè)計(jì)算,提高計(jì)算速度,減少預(yù)測(cè)誤差,需要進(jìn)行數(shù)據(jù)處理,即將所有數(shù)據(jù)統(tǒng)一進(jìn)行格式轉(zhuǎn)換、末位保留等。并檢測(cè)數(shù)據(jù)有效性與可靠性,進(jìn)行數(shù)據(jù)檢驗(yàn)測(cè)試,防止因數(shù)據(jù)問題造成預(yù)測(cè)模型崩潰。
4.4數(shù)據(jù)計(jì)算與預(yù)測(cè)實(shí)現(xiàn)
通過數(shù)據(jù)處理之后,已經(jīng)確保獲取到的數(shù)據(jù)為有效數(shù)據(jù),且格式統(tǒng)一.通過優(yōu)化的加權(quán)移動(dòng)平均算法,將各項(xiàng)數(shù)據(jù)值,例如人均GDP,總GDP等值使用模型進(jìn)行預(yù)測(cè)計(jì)算,并加入標(biāo)記,合并到數(shù)據(jù)存儲(chǔ)容器,再進(jìn)行異常值邊界檢測(cè),無誤后便是正確的預(yù)測(cè)模型計(jì)算結(jié)果。
4.5數(shù)據(jù)圖表可視化
圖表可視化使用的主要框架和工具是echarts圖表,其基于Javascript的數(shù)據(jù)可視化圖表庫(kù),提供直觀,可交互,可個(gè)性化定制的數(shù)據(jù)可視化圖表。
數(shù)據(jù)源使用的是經(jīng)過了多次轉(zhuǎn)換形成的json對(duì)象,同時(shí)按需加載所需圖表,關(guān)聯(lián)前端觸發(fā)器(按鈕),按照echarts的標(biāo)準(zhǔn)格式設(shè)置橫縱數(shù)據(jù),對(duì)應(yīng)數(shù)據(jù)源每項(xiàng)數(shù)據(jù)。在前端使用自動(dòng)加載的方式進(jìn)行展示,最終呈現(xiàn)在用戶面前。圖表出現(xiàn)的動(dòng)態(tài)效果則是相應(yīng)設(shè)置好的echarts圖表所有的功能模塊。
參考文獻(xiàn)
[1]趙俊峰等.基于MVC模式的JSP+Servlet+JDBC和AJAX [M].清華大學(xué)出版社,201 2.
[2] Weiss,MA.數(shù)據(jù)結(jié)構(gòu)與算法分析[J].機(jī)械工業(yè)出版社,2009.