商品信息數(shù)據(jù)分析和展現(xiàn)系統(tǒng)的設(shè)計與開發(fā)
實現(xiàn)過程:
針對從價格信息網(wǎng)抓取來的數(shù)據(jù)利用eclipse工作平臺開發(fā)出了商品信息數(shù)據(jù)分析及展現(xiàn)系統(tǒng),實現(xiàn)了價格展示、價格分析、價格預(yù)測、居民消費指數(shù)分析、商品流通情況以及作物主要產(chǎn)地及產(chǎn)量的展示。價格分析包括價格走勢、價格對比(市場之間對比)、價格展示(各省對比)。價格預(yù)測最后采用基于時間序列的神經(jīng)網(wǎng)絡(luò)算法做了初步短期價格預(yù)測。居民消費指數(shù)CPI作為反映消費者支付商品和勞務(wù)的價格變化情況,也是一種度量通貨膨脹水平的工具,主要包括同比環(huán)比及其漲跌情況、CPI構(gòu)成比例以及各省月度CPI展示等。
分析結(jié)果以帶有時間軸的折線圖、柱狀圖、地圖熱力圖、餅狀圖形式展示,界面美觀,和用戶交互性強,簡單易懂。(圖片點擊可放大)
一、數(shù)據(jù)獲取
數(shù)據(jù)來源:
濰坊物價信息網(wǎng) http://www.wfwj.gov.cn/
中華人民共和國國家統(tǒng)計局 http://www.stats.gov.cn/
獲取方式:
針對數(shù)據(jù)來源網(wǎng)站信息大多有規(guī)律的更新,但網(wǎng)頁數(shù)據(jù)結(jié)構(gòu)保持不變,使用的方式有兩種:
1.使用Excel工具抓取
1)通過Excel從網(wǎng)頁導(dǎo)入數(shù)據(jù),選中自己要導(dǎo)入的數(shù)據(jù)。
2)新建宏,重復(fù)上步操作
3)觀察數(shù)據(jù)發(fā)布的網(wǎng)頁地址規(guī)律,修改宏代碼
(使用該方法的好處是可用Excel對獲取來的數(shù)據(jù)進行數(shù)據(jù)處理)
2.使用RCurl爬蟲
(方便對抓回來的數(shù)據(jù)用R直接對數(shù)據(jù)進行相關(guān)分析計算)
數(shù)據(jù)處理:
因為各種原因,價格信息網(wǎng)提供的商品價格信息有數(shù)據(jù)單位不統(tǒng)一、商品名稱不規(guī)范、市場名稱前后不一、缺失值等等問題。經(jīng)過對這些數(shù)據(jù)的分析和總結(jié),對數(shù)據(jù)進行了統(tǒng)一商品名稱格式、規(guī)范市場名稱、規(guī)范數(shù)據(jù)單位、去重和缺失值5方面的處理。
存儲方式:
將處理好的數(shù)據(jù),建好表結(jié)構(gòu)存儲到mysql數(shù)據(jù)庫中。
二、數(shù)據(jù)展現(xiàn)
展現(xiàn)方式:使用Echarts在網(wǎng)頁顯示。
展現(xiàn)內(nèi)容:
1. 價格分析
① 價格走勢:
這里主要展示的是將爬取來的每日商品價格數(shù)據(jù)按商品類型取平均值(右側(cè)圖例選擇要查看的商品類型),做曲線圖。通過下面時間軸拖動、拉長查看某一范圍內(nèi)的價格走勢;也可通過區(qū)域縮放按鈕查看某一段曲線的詳細走勢。
效果展示:(點擊圖片可放大)
② 價格對比:
針對從濰坊物價信息網(wǎng)獲取來的數(shù)據(jù),根據(jù)價格采集地點進行價格對比。大體分為兩類:超市價格和集市價格。以柱狀圖的方式可直觀的看出某天某種商品在不同地點的價格高低情況。如要查看2014-08-01的價格對比情況。
效果展示如下:
鼠標(biāo)移動切換標(biāo)簽展示集市商品價格對比。
③ 全國商品價格
在地圖上,以熱力圖的形式展現(xiàn)全國各省某種商品價格的高低。鼠標(biāo)懸停顯示具體價格信息。
此外,可以具體到某省下的各市價格展示:
繼續(xù)往下深入,具體到某市下各區(qū)、鎮(zhèn)價格展示(以濰坊市為例):
2.居民消費指數(shù)
CPI (Consumer price index) 居民消費指數(shù),反應(yīng)通貨膨脹或者緊縮的程度,一般來講,物價全面的持續(xù)的上漲就會被認(rèn)為發(fā)生的通貨膨脹。
① 同比環(huán)比(數(shù)據(jù)來自濰坊物價信息網(wǎng))
可選擇查看整體CPI漲跌情況,或者影響CPI八大類中某一類CPI漲跌情況。
如選擇食品類,還可繼續(xù)查看食品類下的具體漲跌情況
效果展示如下:下方為時間軸,可以選擇相關(guān)年份查看
② CPI比例
用餅狀圖的方式可直觀展現(xiàn)八大類及其分類對整體CPI的構(gòu)成影響。下方為時間軸,展現(xiàn)不同時間段的構(gòu)成比例。
③ 各省月度CPI(下方為時間軸,可以選擇年月份查看)
3.商品流通情況
國家有南菜北運、西果東送的政策,友好的相關(guān)信息展示,為合理分配資源開辟市場提供相關(guān)決策依據(jù)。
效果展示如下:
4.各農(nóng)作物主要產(chǎn)地
鼠標(biāo)懸停顯示產(chǎn)地產(chǎn)量信息。
效果展示如下:
5.價格預(yù)測
主要包含兩部分:1 .價格預(yù)警 2.商品價格預(yù)測
價格預(yù)警:采用Ajax技術(shù)每隔一小時自動刷新屬于,紅色為預(yù)警標(biāo)識。
計算上一周價格移動平均值,和當(dāng)前價格做差,漲跌絕對值大于0.5紅色箭頭標(biāo)識預(yù)警。
效果展示如下:
商品價格預(yù)測(以大白菜價格為例):
虛線為預(yù)測價格,實線為實際價格
三、數(shù)據(jù)預(yù)測
預(yù)測工具:rapidminer
數(shù)據(jù)來源:濰坊物價信息網(wǎng)
實現(xiàn)算法:基于時間序列神經(jīng)網(wǎng)絡(luò)的短期價格預(yù)測
實現(xiàn)過程:
(以大白菜價格為例)
訓(xùn)練集:選取2013-2014內(nèi)大白菜的價格。
測試集:抽取1/3作為測試集。
預(yù)測模型:方案有兩種一是采用支持向量機SVM,二是采用神經(jīng)網(wǎng)絡(luò),下面對兩種模型進行評估。
指數(shù)平滑和移動平均
模型如下:
首先使用支持向量機進行移動平均和指數(shù)平滑的計算(這里窗口大小設(shè)為5,alpha設(shè)為0.8)
部分結(jié)果如下:
折線圖如下:
可以看出移動平均線和本期實際價格有一定誤差,而指數(shù)平滑出來的價格exponential_smoothing(本期價格)和本期價格基本重合,而趨勢線(trend藍線)效果不是很好。
再使用神經(jīng)網(wǎng)絡(luò)進行移動平均和指數(shù)平滑的計算(參數(shù)設(shè)置如上)
部分結(jié)果如下:
折線圖如下:
可以看出時間序列幾何平均法(average)和本期價格誤差不大,而指數(shù)平滑exponential_smoothing基本和本期價格一致。趨勢線基本符合價格漲跌情況,在14年4月出現(xiàn)了大幅度上升,這樣就能發(fā)現(xiàn)價格異常的產(chǎn)品,從而對其價格預(yù)警。
為了評估模型預(yù)測的精度,加入時間序列包中Validation 操作符,并設(shè)定好相關(guān)參數(shù)。
Validation 操作符內(nèi)部需要放置某種算法,這里采用支持向量機 SVM:
預(yù)測精度:
下面再采用神經(jīng)網(wǎng)絡(luò)Neural Net 比較一下預(yù)測精度:
預(yù)測精度:
可以看出采用神經(jīng)網(wǎng)絡(luò)預(yù)測精度高一些,所以下面采用神經(jīng)網(wǎng)絡(luò)算法進行模型訓(xùn)練及預(yù)測。
這里窗口大小設(shè)為5
模型如下:
預(yù)測結(jié)果如下:
紅色線為實際價格 ,藍色線為預(yù)測價格。
從圖中可以看出,預(yù)測價格基本還行。
不足與展望:
因為時間和能力有限,作品本身還有很大的提升空間。比如數(shù)據(jù)抓取和處理沒有實現(xiàn)完全自動化。數(shù)據(jù)預(yù)測因素單一,需要收集更多的數(shù)據(jù)來進一步產(chǎn)品價格預(yù)測精度,及時發(fā)現(xiàn)價格異常的農(nóng)產(chǎn)品。商品價格波動的主導(dǎo)因素很復(fù)雜,像供需關(guān)系、生產(chǎn)成本、自然條件、科技發(fā)展、運輸存儲、國家政策、自然災(zāi)害等都是造成價格波動的主導(dǎo)因素。這也為提高商品價格預(yù)測的精度帶來了很多困難。如何有效、準(zhǔn)確的預(yù)測商品價格還需要繼續(xù)學(xué)習(xí)和研究。
自己對物價這方面的研究很有興趣,因為它和人們的生活息息相關(guān),一方面對農(nóng)民收入和農(nóng)民積極性產(chǎn)生直接影響,另一方面又關(guān)乎我們每一個人的日常生活和切身利益。物價過高,漲速過快,就會造成百姓生活壓力過大、心里不安影響人們的幸福度。所以,促公開,推進信息價格透明化是一項很有意義的工作。穩(wěn)定高效的商品智能分析系統(tǒng)可以增強相關(guān)部門決策的科學(xué)性、針對性和及時性,希望自己能夠通過進一步的努力更加完善。