呂文斌 秦笠偉 洪敏慎
摘要:隨著上海市水務海洋數據中心的建設運行,每天都要匯聚全市多個涉海部門的大量海洋類監測數據。針對這些不同源端數據存在的一些結構問題、格式問題、缺失問題、噪點問題等,進行了技術清洗和規范整合。
關鍵詞:海洋;數據治理;數據清洗
中圖分類號:P285.7 文獻標識碼:A 文章編號:1007-9416(2019)08-0222-02
0 引言
隨著信息時代的發展,各類海洋數據成果的數量也呈現幾何級別的增長趨勢,海洋數據目前主要可以分類為海洋基礎地理數據、海洋基礎資料數據、海洋管理專題信息、海洋業務運行數據、海洋綜合信息產品和海洋元數據等,這些數據集合的存儲結構模式存在著結構化數據、半結構化數據以及非結構化數據,其中非結構化數據所占的比例巨大。由于存在著大量的數據質量問題,這些數據在進行整合應用分析前需要進行清洗以保證正確的分析結果,本文主要探討了當前海洋數據成果中存在的質量問題以及對應這些問題的清洗方法。
1 海洋數據成果存在的質量問題
目前海洋數據成果存在的問題類型主要可以分為以下八種情況:
1.1 海洋數據結構存在問題
指的是某些海洋數據集合中的海洋對象數據結構不滿足關系型數據庫的范式定義。比如:在航道對象中定義的寬度屬性存在上下限的范圍,根據數據庫的第一范式規則應該定義兩個字段分別用于填寫寬度上限和寬度下限,而某些數據源中則把航道的寬度數據使用一個字段進行表示上下限“10-20”。
這類問題通常發生在半結構化和非結構化類型的數據源中,數據管理單位沒有把海洋對象的屬性進行完全區分,導致原本是兩種或以上的屬性字段被記錄在一個屬性字段中。
1.2 海洋數據屬性字段格式規范不統一
指的是某些數據源中海洋對象的屬性字段格式存在隨意性,標準規范不統一。比如:在非結構化數據源中對于日期格式的定義有些是年月日,有些是日月年。
這類問題通常發生在非結構化類型的數據源中,因為非結構化數據缺乏一些必要的數據類型,導致存儲相關數據時根據輸入者的習慣確定相關格式,導致出現了很多不符合規范格式的數據。
1.3 海洋數據屬性單位不規范
指的是海洋數據屬性在單位上不統一,不規范。比如:在深度的計量上有些使用“米”作為單位,有些使用“千米”作為單位。
這類問題在結構化、半結構化和非結構化的數據源中常見,因為缺乏相關的數據標準,數據的管理者通常按照自身習慣自由選擇單位進行數據的填報,導致不同數據源制式單位的不一致。
1.4 海洋數據記錄中存在離散型噪點
是指數據記錄中出現了明顯的離散點或者異常值。比如:監測雨量的氣象站點出現了負值雨量的情況。
這類問題發生的原因可能是由于監測設備出現了跳數或者異常,導致入庫數據存在問題。
1.5 海洋數據記錄的重復存儲
指同一數據記錄被進行重復存儲。比如:外高橋碼頭被同時存儲為兩條數據記錄。
這類問題在結構化、半結構化和非結構化的數據源中常見,主要由于缺乏對于數據對象的主鍵定義,導致數據庫中存在重復記錄。
1.6 無效的海洋數據記錄
是指某些無效的數據記錄被存儲在數據源中。比如:因為錄入錯誤,某個并不存在的監測站點保存在海洋監測站點表中,或者原對象被改名、廢除等,但是數據源沒有及時進行更新。這類問題在結構化、半結構化和非結構化的數據源中常見。
1.7 海洋數據記錄的屬性缺失
指的是數據記錄的某些屬性發生了丟失,包含海洋監測數據記錄或海洋實體對象記錄等。比如:監測站點在上傳記錄中丟失監測值。這類問題在結構化、半結構化和非結構化數據源中常見,主要由于海洋監測數據記錄的屬性缺失可能由于監測硬件設備異常導致;海洋實體對象記錄的屬性丟失可能是由于缺乏相關的數據支持導致無法填寫。
1.8 海洋數據記錄的缺失
指在海洋數據記錄在數據源中的存儲缺失,包含海洋監測數據記錄或海洋實體對象記錄等。海洋實體對象記錄的缺失可能是由于對于新建的對象或者改名的對象沒有實時更新至數據庫中導致;監測數據記錄的丟失可能由于數據入庫過程中發生了通訊異常或是監測硬件發生故障導致。
2 海洋數據清洗方法
2.1 人工智能處理
針對海洋數據結構問題、海洋數據屬性字段格式規范問題、海洋數據屬性單位規范問題以及無效的海洋數據記錄問題,需要根據可能出現的情況,在數據交換過程中定義相關的數據清洗流程,并不斷的通過數據集訓練人工智能神經網絡判別上述問題并進行修正,例如對于不滿足數據庫定義第一范式的數據結構問題,需要把源數據通過對比和字段拆分,比如表示航道寬度的“10-20”拆分為下限的10和上限的20并分別存儲在兩個字段中;將存在數據字段格式問題的數據記錄轉換為標準規范格式,比如在對時間字段進行標準化時,可以嘗試通過數字位數去識別年份,通過數值范圍去區別月份跟日期,或者可能出現的年月日組合情況去識別時間并轉換為日期格式存儲;對于屬性單位不一致的情況,首先要確定標準的單位制式,然后根據單位之間的差距進行換算處理,比如米和千米差了1000倍,假設使用米作為標準單位,需要對使用千米的數據乘以1000等;對于無效數據記錄可以根據每年海洋數據的更新頻次進行判別,如果出現較長年份未更新的情況,則把數據記錄標志為無效。
2.2 海洋數據去重
解決海洋數據記錄的重復存儲問題可以通過對交換的源端數據進行排序后篩選,根據判別唯一性條件的數據屬性字段對數據集合進行排序,通過比較排序后相鄰的數據記錄的相似度和重復性情況,通過分析后對判定為重復記錄的數據進行合并。
2.3 海洋缺失數據插值
對于海洋數據記錄的屬性缺失和海洋數據記錄的缺失問題可以通過插值法進行修正和補充,常見的插值法主要有均值填充法和熱卡填充法。對于實時監測數據發生的少數數據屬性丟失或者記錄丟失情況可以選用均值填充法,選擇丟失數據鄰近關系最大的一組記錄計算均值,然后使用均值進行填充屬性或者插入缺失記錄;對于缺失較大規模的監測數據屬性或者數據記錄,比如丟失了某一段時間的數據,可以選用熱卡填充法進行補充數據,在歷史數據庫中根據丟失數據日的自然狀況如:風速、風向、溫度等設定排序條件,選擇歷史數據源中與丟失時間段情況相似度最高的記錄進行填補。對于實體對象數據出現的屬性丟失或者記錄丟失,可以采用熱卡填充法,選擇數據庫中存儲與丟失記錄相似或最近的對象記錄進行填補。除上述兩種常見的插值法外,還存在回歸填補法、多重填補方法、K-最近鄰法、有序最近鄰法、基于貝葉斯的方法等,可以根據海洋數據的實際情況進行選擇使用。
2.4 海洋數據去噪
對于海洋數據記錄中存在離散型噪點問題可以分為不滿足數據屬性字段規范性約束條件數據(比如:長度字段出現了負值)和離散型噪點數據。
對于明顯不滿足數據屬性字段規范性約束條件的數據,可以通過設定相關屬性字段的值域范圍邊界,在數據交換過程對于屬性值超出邊界的記錄進行過濾,后續可以采用插值法填補被過濾的記錄。
對于離散型噪點數據的判定,通常可以基于箱型圖進行分析,先把歷史樣本數據進行從小到大排序,然后獲取位于25%處的數值設為下四分位值即L,獲取位于75%處的數值設為上四分位值即U,由此可計算出上四分位與下四分位的插值IQR,即:IQR=U-L,然后在數據抽取過程中出現屬性值超過下界L-1.5IQR或者超過上界U+1.5IQR視為離散型噪點進行過濾。使用箱型圖進行分析的優勢在于確定異常值范圍邊界的條件是根據樣本數據進行判定,結果比較客觀。除了基于箱型圖的噪點判定方法外,還有根據屬性字段之間的距離差,根據屬性字段的空間密度分布情況進行判斷的方法,可以根據具體的實際情況進行分析應用。
3 關鍵技術
3.1 海洋數據規范
對于海洋數據成果進行數據清洗,規范標準的制定是重要的環節,完善的標準規范一般包含以下內容:
3.1.1 海洋對象范圍的確定
標準規范中需要確定海洋對象范圍,需要明確規定海洋數據集合中存在的要素對象以及其分類,對于一些相似或者相近的對象可以直接合并歸類為一種海洋對象實體。
3.1.2 對象屬性的規范
標準規范需要明確各個海洋對象屬性的數量、名稱以及其約束性條件,包括:必填項與選填項、默認值等。
3.1.3 字段類型的規范
標準規范需要定義各個海洋對象屬性的字段類型、字段大小、字段所使用的單位以及字段取值的閾值范圍。
3.1.4 對象名稱的規范
針對同一對象在不同單位出現不同名存儲的情況,規范標準需要規定最終具有命名權利的機構,其它單位要根據確定規范的對象名稱對其數據進行調整。
3.2 管理制度的規范
對于海洋數據管理需要明確落實責任單位主體,對于數據的更新機制、溝通反饋機制、數據質量評估機制以及考評機制需要作出明確規定。
3.2.1 ETL技術
ETL技術主要由三個部分組成:數據的抽取(Extract)、數據的清洗轉換(Transform)和數據的加載(Load)。使用ETL工具將來自各個不同的數據源中存儲的海洋數據資源抽取到指定的中轉數據存儲中,然后通過對海洋數據進行質量清洗轉換后根據業務需要寫入不同業務模式的數據庫用于應用分析,以提高分析的準確度。主流開源的ETL工具有Apache Kafka、Apache Camel、Logstash和Kettle等。
3.2.2 人工智能技術
人工智能技術是通過深層神經網絡算法來模擬人類的大腦學習過程,從而去解決相關的問題,用于訓練神經網絡的樣本數據量多少以及算法的有效性決定了人工智能解決問題的能力強弱。在海洋數據質量處理方面,可以通過歷史積累的大量海洋數據資源幫助人工智能技術進行模仿式的學習,將事先分類完成正確的海洋數據與存在質量問題的海洋數據反復引導人工智能識別、判斷和修正,從而建立人工智能海洋數據質量判別知識儲備庫,為之后自動進行數據甄別和改正提供技術支撐。主流開源的人工智能框架有TensorFlow、Apache SystemML、Caffe和OpenCog等。
4 結語
本文對海洋數據集合中存在的問題進行了分類,并逐一進行了成因的分析,并對這些問題在數據交換過程進行清洗的方法進行了探討,這些方法對于提高海洋數據質量有著重要的幫助。如何將這些方法跟實際的海洋數據整合工作相結合,為提升海洋數據清洗工作效率發揮更好的作用,值得更多的思考。
參考文獻
[1] 黃冬梅,趙丹楓,魏立斐,等.大數據背景下海洋數據管理的挑戰與對策[J].計算機科學,2016(6):17-23.
[2] 宋德瑞,曹可,張建麗,等.大數據視域下的海洋信息化建設構想[J].海洋開發與管理,2017(9):50-52.
[3] 許莉莉,湯海榮,張燕歌.海洋信息化標準體系研究[J].中國標準導報,2015(1):49-51.
[4] 王洪艷,郭云峰.大數據技術在人工智能中的應用研究[J].數字技術與應用,2015(12):109-110.
[5] 劉高嶺.海洋信息元數據目錄服務系統的設計與實現[D].青島:中國海洋大學,2008.
Analysis on the Quality Problems and Cleaning Methods of Marine Data
LV Wen-bin1,QIN Li-wei2,HONG Min-shen2
(1.Shanghai Ocean Information Center,Shanghai? 200050;2.Shanghai Net Yue Information Technology Co., Ltd.,Shanghai? 200050)
Abstract:With the construction and operation of the Shanghai Water and Marine Data Center, a large number of marine monitoring data from various sea-related departments in the city are gathered every day. For some structural problems, format problems, missing problems, noise problems, etc. of these different source data, technical cleaning and specification integration were carried out.
Key words:ocean; data governance; data cleaning