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