





摘 要:文中針對龐雜的農產品市場價格信息,設計了基于指數平滑的農產品價格大數據平臺,通過構建Hadoop、Hive和Spark大數據框架,在Spark-SQL內完成了農產品價格信息的數據清洗工作;并利用改進的指數平滑法模型,實現了農產品價格預測功能;借助SpringMVC、Ajax、Echarts等技術實現了農產品價格數據統計、分析、預測等功能的圖形化顯示。數據平臺的應用在幫助用戶直觀準確地獲取農產品價格信息、分析農產品價格發展趨勢、預判農產品的市場前景、規劃農業種植等方面均具有較為重要的參考價值和現實意義。
關鍵詞:大數據平臺;Hadoop;數據清洗;指數平滑模型;價格預測;圖形化顯示
中圖分類號:TP391 文獻標識碼:A 文章編號:2095-1302(2024)08-0-04
DOI:10.16667/j.issn.2095-1302.2024.08.029
0 引 言
技術發展日新月異,為現代化農業的發展帶來了前所未有的機遇,傳統農業種植與管理在物聯網技術、云計算、5G通信技術、大數據技術的支撐下,逐漸向智能化、精細化、數字化轉型。物聯網技術通常負責農業種植環境的數據采集,并利用適當的通信手段將數據在農業信息服務器、設備終端呈現[1]。
大數據技術的應用不僅能夠在農業生產的精細化作業水平、智能農場建設與科學化管理水平、農業機械利用率等方面促進農業生產[2],還能夠幫助農民精準掌握農產品的價格信息,并借助大數據農業信息服務技術平臺增強農業種植與農產品市場價格波動的聯系,預測市場動態,及時調整農業生產規劃,有效降低農業種植的風險[3-4]。因此,設計具備農產品價格預測功能的大數據平臺具有較為重要的現實意義和社會意義。
1 Hadoop大數據平臺架構
目前,基于Hadoop分布式系統基礎架構的大數據平臺已經得到了較為廣泛的應用,具有較為成熟的技術支持[5]。Hadoop主要由提供海量存儲的分布式文件系統HDFS和為大數據集提供算力的MapReduce構成,具有支持跨平臺安裝、集群構建簡單、數據處理能力強、支持在計算機簇中進行數據運算、可靠性高、技術開源等特點[6-7]。基于Hadoop架構的大數據平臺主要包括HDFS、MapReduce、YARN等組件,架構如圖1所示。
HDFS是具有高容錯性能的文件系統,能夠存儲龐大的數據集,提高數據訪問的吞吐量;MapReduce是一種針對大規模數據運算的編程模式,為HDFS上的數據集提供了運算框架,能夠較好地支持離線運算;YARN作為Hadoop的資源管理者,負責資源的調度與統一管理;Hadoop中的大規模數據通常可以利用數據倉庫基礎構架Hive實現數據的存儲、分析、查詢等[8];Spark的內存分布數據集能夠實現大規模數據的快速運算。
2 農產品價格大數據平臺系統構建
農產品涵蓋了動物、植物等農業活動的初級產品[9],其價格受到農產品的供需關系及中間經營商的共同影響[10]。然而,農產品供需信息的時滯性、分散性、隱蔽性[11]以及經營商的價格期望水平,都是影響農產品價格波動的
因素。
針對農產品價格信息管理與預測的功能特點,以為農業種植提供信息支撐、促進農產品供需關系平衡為目的,文中以Hadoop、Hive和Spark為基礎框架,利用改進的指數平滑方法模型構建了具有農產品價格預測、歷史信息查詢、統計分析與管理等功能的農產品價格預測大數據平臺。此外,平臺還具備圖形化顯示功能,能夠為用戶呈現預測曲線圖、歷史信息、農產品價格趨勢圖等直觀的數據圖表,為用戶科學規劃種植項目與種植規模提供數據參考。
在Linux服務器上部署Hadoop、Hive、Spark框架,構建由主節點Master與從節點Slave組成的集群系統;將農產品價格信息以文件形式上傳至HDFS,同時映射至Spark-SQL數據庫,并在Spark-SQL數據庫內清洗農產品價格數據;利用改進的三次指數平滑方法(Holt-Winters)模型,實現農產品價格的預測功能;借助Spring MVC、Ajax、Echarts等技術將預測結果進行可視化顯示。農產品價格預測大數據平臺的系統構建流程如圖2所示。
2.1 農產品價格數據獲取
農產品價格的數據獲取通常有政府部門的統計數據、農業研究機構數據中心及農產品交易平臺的公開數據等幾個渠道。其中,交易平臺公開數據的獲取難度相對更低、實時性相對更好,因此選擇通過Python程序抓取權威農產品交易平臺公開發布的價格信息作為研究的數據基礎。農產品價格數據抓取程序依據農產品交易平臺的URL,獲取相關農產品價格頁面的全部信息,并通過網頁解析、數據字典等方法迭代抓取,包括省份、城市、價格、單位、時間等農產品價格信息關鍵字段。
2.2 數據清洗概述
通過數據抓取程序在農產品交易平臺獲得的農產品價格信息存在數據駁雜、冗余等問題,故而在數據使用前需要完成相應的清洗工作。Spark-SQL既能夠使用RDD數據,也能夠使用Hive、HDFS、Cassandra和JSON格式的外部數據,并支持Python、Scala和Java及SQL-92規范等[12],確保農產品價格數據清洗工作順利完成。在農產品價格數據獲取之后,首先將存儲于MySQL的數據信息以文本文件形式導出,經過預處理后上傳至HDFS,并通過HQL程序創建外部表,完成Map和Reduce轉換,再將農產品價格數據映射至Spark-SQL數據庫內,實現數據的清洗。農產品價格數據清洗流程如圖3所示。
農產品價格數據將按照區域(省份)、年份、種類、每個月的平均價格、最高價格、最低價格;區域、月份、種類、每天的平均價格、最高價格、最低價格以及某類農產品最近半個月的價格波動情況、數據獲取量在全國農業市場中的占比等完成清洗工作與數據的歸類存儲,從而保證滿足農產品價格預測大數據平臺的各項功能需求。
3 農產品價格預測功能實現
農產品價格預測以指導農業生產為目的,根據農產品價格的歷史數據,預測未來一段時間內的農產品價格趨勢。由于受農產品生長條件、生長周期等因素的約束,其價格信息具有較強的季節性特點,所以基于時間序列的預測方法在農產品價格預測功能的實現中被廣泛應用。
時間序列數據的研究方法種類繁多,相對成熟,包括AR模型、ARMA模型、ARCH模型、ARIMA模型等[13],都有較為典型的應用。此外,機器學習的支持向量機、貝葉斯神經網絡等方法,也在時間序列數據的預測中表現較好[14]。平臺針對農產品價格數據的趨勢特性,從降低計算成本、提高效率等方面考慮[15],選擇了改進的三次指數平滑方法,實現農產品價格預測。
3.1 預測方法的選擇與實施
指數平滑法是一種在生產預測中常用的時間序列預測法,不僅適用于短期預測,還適用于中期、長期預測。指數平滑法通過當前數據觀察值與前期指數平滑值的權值計算,逐漸收斂遠離當前數據的權值至零,具有實現簡單、兼顧前期計算結果等特點。根據平滑次數區分,方法可被分為:一次指數平滑法、二次指數平滑法和三次指數平
滑法[16]。
Holt-Winters指數平滑模型可應用于以下3種情況:
(1)僅含有線性趨勢的情況:類似雙指數平滑方法,Holt-Winters指數平滑模型可預測僅含有線性趨勢的數據序列,是yt平滑后的序列,計算如下:
(1)
(2)
式中:a(t)表示截距;b(t)表示趨勢;α表示數據平滑因子,0lt;αlt;1;β表示趨勢平滑因子,0lt;βlt;1;k表示預測時間長度。
(2)具有線性時間趨勢及加法模型季節變化的序列,是yt平滑后的序列,計算如下:
(3)
(4)
式中:c(t)為加法模型的季節因子;r為季節改變平滑因子,0lt;rlt;1;s為周期長度。
(3)具有線性時間趨勢及乘法模型季節變化的序列,是yt平滑后的序列,計算如下:
(5)
(6)
3.2 Holt-Winters模型構建
在Holt-Winters模型的基礎上增加了區域列,進行農產品價格預測時,不僅考慮時間序列,還通過增加區域列尋覓相關隱藏信息,從而達到提高農產品價格預測精度的目的。Holt-Winters模型的構建過程主要包括以下幾個方面:
(1)完成重要參數的設置工作,確定預測值的數量、存放位置等;
(2)添加區域key列,創建、訓練改進的Holt-Winters模
型,并設置RDD格式為(Holt-Winters Model, Vector);
(3)構建預測向量并導入Holt-Winters模型的forcast方法,實現預測;
(4)預測結束條件判斷;
(5)利用Holt-Winters模型評估標準,通過數量、極差、最大值、最小值、均值、方差和標準差等參數,完成預測結果的評估;
(6)將預測結果及評估結果進行Vector轉置后,以dataframe形式存儲于Hive表。
此外,日期格式的設置、預測日期的批量生成與保存、增加區域key列的信息存儲、實際值和預測結果合并等輔助操作的實施,同樣是保證模型效果的必要步驟。Holt-Winters模型構建流程如圖4所示。
3.3 模型訓練的實施
模型訓練的實施對于平臺最后的預測結果至關重要,本平臺的農產品價格預測模型訓練主要由timeChangeToDate、main和mainKey構成。其中,timeChangeToDate負責將農產品價格數據中的“time”列轉換成固定的時間格式[17];mainKey方法能夠篩選keyName數據,有效去除空值,并考慮了包括區域(keyName)在內的全部參數,對于尋覓隱藏信息、提高農產品價格預測精度至關重要;main函數作為程序的入口與執行主體,不僅負責設置環境變量和參數,還負責讀取數據和創建訓練數據,將數據在預測模型內運行,得到未來某段時間的農產品價格預測結果。模型訓練實施流程如圖5所示。
模型訓練首先將數據的日期參數以固定的時間格式存儲,并轉化為dataframe格式;然后完成確定預測開始時間與結束時間、預測數據的數量、輸出key列和設置季節性參數等工作;隨后平臺讀取Hive表中數據作為模型訓練數據,并將數據的時間跨度存儲為:開始日期+結束日期+遞增數,訓練數據的RDD為TimeSeriesRDD(key, DenseVector(series));創建和訓練具有區域列的Holt-Winters模型,并完成模型的實例化。最后,合并實際值和預測值并以dataframe(Date, Data)形式保存。
3.4 數據可視化
農產品價格預測大數據平臺具有歷史價格數據查詢、價格趨勢管理、價格預測等功能,借助SpringMVC、Ajax、Echarts和MySQL等技術實現了數據可視化,以便用戶能夠通過數據相關性分析圖、趨勢分析圖,直觀獲取農產品價格的歷史數據、預測結果等。選擇Echarts庫支持圖表定制,通過MVX框架將待顯示的農產品價格數據映射至用戶的可視化界面中,并利用JavaScript腳本語言、Ajax技術實現可視化界面的動態更新,從而達到農產品價格數據可視化的
目的。
此外,農產品價格數據能夠按照種類、產地、時間等條件供用戶查詢,并能夠依據省份、農產品種類、數量、價格平均值、最大值和最小值等條件顯示價格發展趨勢;利用改進的Holt-Winters指數平滑法,根據農產品的歷史價格信息和省份等,對未來農產品價格水平進行預測,將相應農產品的實際價格與預測價格趨勢以圖表形式直觀展示給用戶,為農產品的科學種植提供科技支撐。
4 結 語
針對龐大的農產品市場信息,文中通過數據共享、整合的方式,利用大數據相關技術搭建了農產品價格預測平臺,實現了農產品價格數據的清洗、統計、分析和預測等功能,并能夠實現價格信息數據的圖形化顯示,幫助用戶及時了解農產品價格趨勢,預判農產品的市場價格,為用戶的農業種植、商業決策提供指導,具有較重要的現實意義和研究價值。
參考文獻
[1]李自榮.基于大數據的設施農業管理系統設計[J].農機化研究,2020,42(7):245-248.
[2]董春巖,劉佳佳,王小兵.日本農業數據協作平臺建設運營的做法與啟示[J].中國農業資源與區劃,2020,41(1):212-216.
[3]劉艷昌,趙海生,張平川,等.基于機器人的盆栽作物生長環境智能監控系統設計[J].中國農機化學報,2019,40(11):181-188.
[4]樊艷英,張自敏,陳冠萍,等.基于物聯網的精準農業玉米長勢監測分析系統研究[J].農機化研究,2018,40(8):223-227.
[5]杜毅博,趙國瑞,鞏師鑫.智能化煤礦大數據平臺架構及數據處理關鍵技術研究[J].煤炭科學技術,2020,48(7):177-185.
[6]袁智,李樾,劉奕,等.基于Jeston TK1的并行計算系統設計與實現[J].計算機應用,2019,39(z2):160-163.
[7] ISLAM N S,WASI UR RAHMAN M,LU X,et al. Performance characterization and acceleration of in memory file systems for Hadoop and Spark applications on HPC clusters [C]// 2015 IEEE International Conference on Big Data (Big Data). Santa Clara,CA:[s.n.],2015:243-252.
[8]趙翀,王麗達.基于數據挖掘技術的智能圖書館云檢索系統設計[J].現代電子技術,2020,43(2):60-63.
[9]太玲娟,李林紅.農產品銷售市場信息不對稱與應對策略分析[J].吉首大學學報,2017,38(z2):9-11.
[10]姚升.中間商、反饋交易與小宗農產品價格波動研究—以大蒜為例[J].價格月刊,2020,41(8):6-12.
[11]陳夢,付臨煊.“互聯網+”背景下農產品供需信息平臺建設博弈分析[J].中國農業資源與區劃,2017,38(12):221-226.
[12] THUSOO A,SARMA J S,JAIN N,et al. Hive-a petabyte scale data warehouse using hadoop [C]// 2010 IEEE 26th International Conference on Data Engineering(ICDE 2010). Long Beach,CA:[s.n.],2010:996-1005.
[13]張美英,何杰.時間序列預測模型研究綜述[J].數學的實踐與認識,2011,41(18):189-195.
[14]楊海民,潘志松,白瑋.時間序列預測方法綜述[J].計算機科學,2019,46(1):21-28.
[15]董鑫,周利明,劉陽春,等.基于指數平滑預測的高效變量噴灌方法[J].農業機械學報,2018,49(z1):372-378.
[16]李穎. 時間序列指數平滑算法的改進研究[D].阜新:遼寧工程技術大學,2009.
[17]歐高飛.基于Hadoop+Spark平臺的農產品價格分析預測系統設計[D].桂林:桂林理工大學,2018.
收稿日期:2023-08-16 修回日期:2023-09-27
基金項目:廣西自然科學基金(2020GXNSFAA297233);廣西高校中青年教師基礎能力提升項目(2022KY0417);廣西高校中青年教師基礎能力提升項目(2023KY0441)
作者簡介:趙榮陽(1982—),男,碩士,教授,研究方向為嵌入式系統、無線傳感器網絡。