福建省莆田市荔城區拱辰街道辦事處 鄭志良
數據清洗對農業機械大數據平臺的有效應用具有積極意義[1]。為提升數據清洗的精準性和實效性,有必要對農業機械大數據清洗算法進行研究。本文在分析農業機械數據異常情況的基礎上,提出了基于滑動窗口的在線清洗算法,并通過試驗驗證了算法的有效性,以期為農業機械大數據平臺的有效運行及數據的精準應用提供參考與借鑒。
根據既有研究成果分析,本文將農業機械數據異常定義為在農業機械使用過程中的某個時間節點,服務器接收到的數據及其中的某數據要素,出現不完整、不精準等情況[2]。農業機械的運行條件較為復雜,在實際工作中,田間環境會對機械傳感器的檢測精度產生影響,表現為數據離散、缺失等;作業過程中的粉塵會對傳感器的檢測精度產生影響,表現為數據抖動等;農業機械發動機及供電系統的不穩定性會對傳感器檢測精度產生影響,表現為數據丟失、抖動等;農業機械具體工作環境中的網絡信號、電磁信號,對數據傳輸產生干擾,表現為數據傳輸延時等[3]。
需要說明的是,本文討論的農業機械數據異常的情況,不包括作業環境合理變化導致的數據波動。
為實現農業機械大數據在線清洗,基于農業機械作業數據特征(以數值型為主),確定大數據在線清洗算法為滑動窗口法,其流程為數據異常識別—生成候選修正數據—候選修正數據的迭代修正。
在數據異常動態識別過程中,先對數據對應的窗口區間進行方差檢驗,通過窗口滑動,可實現數據異常的動態識別,公式表示為:

式中,Di表示窗口;表示窗口中數據的平均值;dij表示窗口Di中的第j個數據;w表示數據個數;δ(Di)表示窗口的方差。
在實際計算過程中,若δ(Di)小于或等于選取的方差閾值,則原始數據集第i個數據為正常數據;若δ(Di)大于選取的方差閾值,則原始數據集第i個數據為異常數據[4]。
若確定數據為異常數據,則對其進行原始解求解,并生成候選數據集,公式表示為:

式中,di1表示窗口Di中的第1個數據;diw表示窗口Di中的第w個數據;x表示異常數據;v表示選取方差閾值[5]。
通過求解計算,可以得到候選修正數據,公式表示為:

在對候選修正數據進行迭代修正時,應用AR模型或ARX模型[6],對候選數據進行修正。
AR模型表示為:

式中,γ★i表示最終修復值;C表示常量;m表示階數;Φk表示AR模型參數;εi表示白噪聲點。
ARX模型表示為:

公式(4)和公式(5)中的Φk與m可以通過數學統計進行估算。
基于此,應對樣本數據集的協方差函數進行Yule—Walker方程計算[7],公式表示為:

式中,β0、β1、…βp分別表示樣本數據集的協方差函數。
將上述函數轉換為矩陣形式表示為:

公式(7)中的矩陣Ap為對稱可逆矩陣,所以可以得出下式:

通過Φk的計算,可以得出Φ(p)的第p個分量Φpp(偏相關函數)。
在迭代計算過程中,直至前后2次迭代的γ′i小于閾值時,停止迭代[8]。
選擇2018~2021年某省農機保護性耕作等8類型的作業數據,數據規模超過1×109,農機數據基本信息如表1所示。

表1 農機數據基本信息
結合具體農業機械作業數據情況和表1內容,確定試驗環境:計算機CPU應用Inteli7;內存為32GB;ZooKeeper組建為3.4.6;操作系統為CentOS7.0。
為提升數據修復的有效性,對本研究方法的數據修復有效性進行評價,公式表示為:

式中,n表示異常數據個數;γ★i表示修復后的異常數據;ERMSE表示均方根誤差。在具體試驗中,首先選取具有一定規模和代表性的正常數據,通過人工的方式,對數據進行預處理。其次,按照一定比例,對正常數據進行異常化處理。最后,將正常數據標記為1,異常數據標記為0[8]。將預處理后的數據作為試驗數據集,通過算法完成對數據的清洗,在取得各評價指標平均值后,對數據進行分析。
選擇不同規模的試驗數據集,在數據預處理過程中,將5%的數據修改為正常,窗口大小設置為100,階數設置為4,閾值設置為0.1。為提高試驗的有效性,對每一個規模水平下的試驗次數設置為3次,分別對修正處理的精確率、數據召回率、綜合型指標、均方根誤差的平均值進行取值。圖1(a)為異常數據識別指標;(b)為均方根誤差與數據規模關系。

圖1 異常數據識別指標、均方根誤差與數據規模關系
圖1(a)分析可知,精確率、綜合性指標隨數據量的增加而增加,當數據規模達到1×105條時,精確率在0.94左右[8],且趨于穩定,這表明本研究算法在大規模數據集清洗中具備良好的數據異常識別功能。
圖2(b)分析可知,在數據規模不斷增加的情況下,3種算法的均方根誤差值均減小,且在達到一定數據規模后,趨于穩定。與Holistic、SWAB[9]算法相比,本文算法的均方根誤差始終較小,這表明本研究算法的數據修正效果良好。
為進一步驗證本研究算法的有效性,對本文算法、Holistic算法、SWAB算法進行數據異常率與均方根誤差關系試驗分析。在試驗過程中,選取1×105條規模的數據集,窗口大小設置為100,階數設置為4,閾值設置為0.1[9]。數據異常率不斷提升的情況下,3種算法的均方根誤差也逐漸增大。但與Holistic、SWAB算法相比,本文算法的均方根誤差始終較小,這表明本文算法在數據異常修正方面具有精準性,且在數據異常越率低的情況下,本文算法的數據異常修正精準性越高。
農業機械大數據平臺的應用是全力推進農業現代化發展的基礎和保障內容。為提升農業機械數據使用的可靠性和精準性,有必要對農業機械大數據清洗算法進行深度研究。本文以實踐應用為視角,闡述了農業機械數據異常的主要原因和具體表現,并結合農業機械作業特征,以數據最小變動性為原則,提出了基于滑動窗口的數據清洗算法,而且對提出的算法進行試驗分析,并與Holistic、SWAB算法進行對比分析,以驗證本文提出的算法的有效性。結果表明:本研究算法在大規模數據集清洗中具備良好的數據異常識別功能;數據修正效果良好;在數據異常修正方面具有精準性,且在數據異常率越低的情況下,本文算法的數據異常修正精準性越高。