TF新庫TFDV:大規模理解、驗證和監控你的ML資料
來源:TensorFlow
編譯:Bot
編者按:在KDD 2017上,Google推出基於TensorFlow的可擴充套件機器學習平臺TFX,主打管理資料、訓練模型、模型評估和模型服務四塊內容。而今天,TensorFlow宣佈開源TXF的一個重要元件:“資料驗證( tf.DataValidation
)”,可幫助開發人員更好地認識資料,並將其用於機器學習。
ML演算法及其效能一直是學術界和工業界關注的一個重點,如果輸入資料有誤,所有的優化工作就會付諸東流。在資料量較少的時候,理解和驗證資料只是一項微不足道的任務,但是在實踐中,研究人員使用的資料量往往非常龐大,這就給手動檢查造成了巨大壓力。因此,自動化資料分析、驗證和監管是有必要的。
TFDV(資料驗證)是TFX平臺的一部分,它也是Google每天用來分析和驗證數PB資料的技術。鑑於此前它在資料糾錯上一直有不錯的表現,Google相信,TFDV也可以被使用者作為維持ML模型效能的一個好工具。

在設計TFDV的早期,Google就已經考慮到了在膝上型電腦環境中使用它的需求,所以對於硬體要求,大家可以放寬心。
計算描述性資料統計
TFDV可以計算描述性統計資料,根據存在的特徵和值分佈的形狀快速概述資料。這些統計資訊有助於開發人員調查和了解他們的資料,並據此推斷資料模式。
用TFDV計算統計資訊:
stats = tfdv.generate_statistics_from_tfrecord(data_location=path)
視覺化:

推斷資料模式
所謂資料模式,就是描述資料的預期效能,它可以包括:
- 預計將出現哪些特徵
- 它們的型別
- 每個樣本中,一個特徵有幾個值
- 所有樣本中,每個特徵的出現機率
- 特徵的預期域
簡而言之,模式描述了對“正確”資料的期望,因此可被用於檢測資料中的錯誤。但是在實踐中,編寫模式可能是非常繁瑣的,尤其是對於具有大量特徵的資料集。TFDV提供了一種基於描述性統計資訊,生成旨在反映資料穩定特徵的模式的方法:
#根據統計資訊推斷模式 schema = tfdv.infer_schema(train_stats) #以表格格式顯示內聯模式 tfdv.display_schema(schema)

上圖是個簡單的視覺化,列出了資料集中的每個特徵以及它在編碼模式下的主要特徵。
驗證新資料
給定一個模式,TFDV可以根據模式中的期望驗證一組新資料。
#統計一組新資料 new_stats = tfdv.generate_statistics_from_csv(NEW_DATA) #比較新資料如何符合模式 anomalies = tfdv.validate_statistics(new_stats, schema) #顯示內聯異常 tfdv.display_anomalies(異常)

驗證持續新增的資料
對於資料集中不斷增加的新資料,我們需要用原模式對它們進行驗證。但是,在常規設定中,這個模式每個一段時間都會維護一次,它基於統計資訊,而統計資訊又會受新加入的資料影響。因此,之前我們推斷的模式只是原始模式,它還必須要能隨著時間推移不斷變化。

如果想視覺化不同資料集(不同日期的資料集)的統計資料,用visualize_statistics:

TFDV還可以檢測連續版本訓練資料之間的分佈變化,這有助於對比連續版本資料集之間的統計資訊,如果發現有刪改/新增的情況,應及時在檢查資料異常時,更新資訊。此外,TFDV還能檢查訓練資料和服務系統觀察到的資料之間的特徵值/分佈差異,並用Facets視覺化。
Github: ofollow,noindex">github.com/tensorflow/data-validation
官方文件: www.tensorflow.org/tfx/data_validation/get_st arted