Source: Business photo created by frimufilms
引言
人工智能已經風行許久,目前不但有強大的配套基礎設施和先進的算法,在市場上的應用也廣泛增加。但是,這一切并沒有讓機器學習(ML)項目的落地變得容易。
Source: Chat bot vector created by roserodionova
數據質量問題也不是什么新概念,自從機器學習開始應用以來,它就得到了人們的關注。機器從歷史數據中不斷學習,其結果的好壞與它的訓練數據的質量密切相關。
以數據為中心vs 以算法為中心
在數據科學家的工作中,有兩種情況時有發生:假設你已經完成了初步的探索性數據分析,并對模型的性能感到非常滿意,但模型的應用結果不夠好,不能被業務所接受。在這種情況下,考慮到研發的成本和時效,你的下一步計劃是什么:
分析錯誤的預測,并將其與輸入數據聯系起來,以發現可能的異常和以前忽略的數據模式。
或者采用一種前瞻性的方法,模型采用更復雜的算法。
簡而言之,如果不能向機器提供良好的輸入數據,那么即使采用更先進的、更高精度的ML算法,也不會產生太好的效果。吳恩達(Andrew Ng)在他的講座“MLOps:從以模型為中心到以數據為中心的AI”(MLOps: From Model-centric to Data-centric AI) 中很好地闡述了這一點。
數據質量評估
機器學習算法需要的訓練數據是單一視圖(即扁平化結構)。由于大多數組織維護多個數據庫,通過組合多個數據源并將所有必要的屬性提取出來,這一數據準備的過程是相當耗費時間和人力資源(需要專業技術人員)的。
在這一步驟中,發現的錯誤數據暴露于多個錯誤源,因而數據需要嚴格的同行評審,以確保建立的邏輯得到了正確的表達、理解、編程和實現。
由于數據庫集成了多種來源的數據,與數據獲取、清洗、轉換、關聯和集成相關的質量問題變得至關重要。
數據準備、清理和轉換占用模型構建大部分時間大概是數據科學行業普遍共識。因此,建議不要匆忙地將數據輸入模型,而要執行廣泛的數據質量檢查。雖然對數據進行檢查的數量和類型可能比較主觀,但我們還是有必要討論一些在數據質量評估中的關鍵因素:完整性、獨特性、時效性、一致性、準確性。
保證數據質量的技術:
缺失值填充
異常值檢測
數據轉換
降維
交叉驗證
bootstrapping算法
質量!質量!質量!
下面讓我們來看看如何提高數據質量:
不同的標注:數據是從多個來源收集的。不同的供應商對數據的最終用途有不同的理解,他們有不同的方法來收集和標記數據。即使在同一個數據供應商中,當主管得知需求并下達給不同的團隊成員時,也會出現無數種標注方式,因為所有的團隊成員都是根據自己的理解進行標注。
供應商方面的質量檢查,對消費者方面的共同理解,將有助于形成同質化標注。
不同的記錄:對模型的訓練數據進行不同的聚類、轉換操作,會產生重要的影響。例如計算滑動平均值、回填空值、缺失值估算等。這需要該領域的專家進行驗證。
如何處理丟失的數據?系統缺失的數據會導致有偏差的數據集。此外,從有更多空值或缺失值的數據中刪除這一屬性(如性別或種族),可能會導致刪除代表特定人群的數據。因此,錯誤表述的數據將產生有偏差的結果——不僅在模型輸出水平上存在缺陷,而且也違背了負責任的使用人工智能的道德和公平原則。此外,另一種找到缺失屬性的方式也可能是“隨機”的。由于高缺失值,盲目地刪除某個重要屬性會降低模型的預測能力,甚至損害模型。輸入缺失值的最常見方法是通過計算類似維度或級別上數據的平均值。
扁平化結構:大多數組織都缺少一個集中的數據庫,且缺乏結構化數據是采用機器學習模型進行決策的關鍵問題之一。例如,網絡安全解決方案需要將來自多個資源(如網絡、云和端點)的數據歸一化到一個視圖中,以便針對此前發生的網絡攻擊或威脅進行算法訓練。
規?;斫鈹祿?/strong>
前文已經討論了一些可能會引起數據質量下降的關鍵之處,接下來我們將通過使用TensorFlow來看看如何來規?;斫鈹祿?/p>
使用TFDV進行統計分析,顯示數據的統計分布——均值(mean)、最小值(min)、最大值(max)、標準差等。
理解數據模式非常關鍵——包括特性、數值和數據類型。
一旦你理解了數據分布,持續對異常行為進行跟蹤也是很重要的。TFDV突出域外值,從而指導誤差的檢測。
它通過疊加訓練數據和測試數據的分布,來顯示訓練數據和測試數據之間的漂移。
TensorFlow的文檔說明了使用TFDV分析數據并提高其質量的方式,感興趣的話可以在數據集上嘗試使用合作平臺Colab中的TFDV代碼。
谷歌在這個Colab平臺中分享了一段代碼,對出租車的數值數據和分類數據的統計分析如下:
右邊顯示的缺失值的占比有助于更好地理解數據。
pickup_census_tract代表完全缺失值的記錄,對ML模型來說毫無意義,可以采用EDA算法對其進行過濾。
數據漂移是部署模型當中不可避免的現象,可能在訓練數據和測試數據之間產生,也可能在訓練數據進行幾天訓練之后產生。
ML算法是在訓練數據和測試數據具有相似特征的假設下執行的,違反這一假設將導致模型性能下降。
參考文獻
《啟用Tensorflow數據驗證》(Get started with Tensorflow Data Validation)
原文標題:The Significance of Data Quality in Making a Successful Machine Learning Model,作者: Vidhi Chugh