今天我們探討了資料品質對機器學習模型的影響。為了避免「垃圾進,垃圾出」的問題,我們必須關注資料的準確性、完整性、一致性和即時性等方面。這篇文章討論了如何處理重複資料、錯誤標籤、缺失值等問題,並提供了常見的解決方法。
雖然更正資料是最理想的解決方案,但在實務上,除非出現大規模的錯誤,否則要找出個別錯誤非常困難。通常,我們可以在研究資料集時進行統計分析以識別異常值,常見的識別方法包括:
常見的處理方法有:
這裡的關鍵問題是:該怎麼確定異常值就是錯誤的呢? 想像一下,如果我們的資料是關於人體體溫的,而某個資料點顯示體溫為50°C,顯然就是不合理的。但是,假如某人的收入比其他人高出數倍,我們很難下結論說這就是錯誤的。此外,有時會發生離群值其實是重要特徵的狀況,例如信用卡盜刷偵測時,如果短時間有多筆大額交易、在異常的地點或時間進行交易,這樣的離群值正好是我們想要關注的,如果我們將它視為錯誤,那很可能反而會失去我們需要關注的重要資訊。
因為缺失的資料可能也是一種潛在的特徵,例如收入較高的人可能為避免風險而選擇不填任職的公司,罹患特殊疾病的人可能出自於隱私考量而選擇留空,因此在處理缺失值之前需要先檢視缺失值缺失的原因。主要的原因可以分成以下三種:
常見的處理方法可以分成兩種:
指的是訓練用的資料集是否包含所有將預測的資料類別。舉例來說,最早發現機器學習模型存在偏見時,這種偏見產生的原因之一就是訓練資料集中不同群體的代表性不足。例如,如果訓練資料集中主要包含白人男性的樣本,那麼模型在辨識女性與有色人種時的準確率就會較差,從而讓使用者對模型的結果感到失望。
常見的例子是在影像辨識上。舉例來說,在 MNIST 手寫數字資料集中包含 0 ~ 9 的手寫數字,但是這個資料集主要來自歐美,如果應用到其他文化背景中,手寫數字的呈現方式就可能會有所不同,尤其是數字 1 和 7 ,這些數字在不同文化中有不同的書寫習慣。
資料被蒐集的標準、使用的標籤、特徵值被蒐集時採用的單位等是否一致也是影響模型表現的重要因素。例如,每個人對於痛覺的閾值不同,因此在對自己的痛覺評分時,標準也會因人而異。另一個例子是如果溫度資料來自不同組織,有些可能單位採用華氏,有些則採用絕對溫度。這種不一致性如果沒有在預處理階段加以處理,會導致模型訓練出現問題,進而影響預測的準確性。
由於今天討論到偏見的問題,因此剩餘常見的問題會到大後天才接續討論,明天我們將先探討 Fairness Lens 的部分。
指的是從事件發生的瞬間到資料進入資料庫的時間差距,這在需要即時或近乎即時更新的機器學習系統中非常重要。舉例來說,對信用卡盜刷偵測來說,從信用卡刷出去的瞬間到進到模型準備預測的時間是多久?可容許的時間是多久?另一個例子是推薦系統,使用者的喜好多久更新一次?如果希望能捕捉到使用者剛好對馬桶感興趣的那瞬間,從使用者開始瀏覽相關內容到訓練模型的時間應該要有多快?
為了處理即時性的問題,一個可以參考的做法是追蹤事件發生的時間和資料被加入資料集的時間,其他方法還有:
即時處理和分析資料,而不是先等待資料進入資料庫,常用的框架有 Apache Kafka, Apache Flink, Apache Spark Streaming。
在產生資料的邊緣設備先進行初步的處理和分析,而不是等待資料傳輸到伺服器才進行處理。例如信用卡盜刷偵測,就可以先在刷卡的點先進行初步的風險評估,然後才將結果和相關資料送到伺服器進一步分析。
其他關鍵字:分散式系統 (Distributed Systems), 聯邦學習 (Federated Learning)
一種模型在新資料到達時逐步更新的方法,避免了重新訓練整個模型的過程,從而加速模型訓練和適應新資料的能力。
延伸關鍵字:機器學習遺忘 (Machine unlearning):一種從模型中快速移除特定資料點的技術,而無需重訓練整個模型。
預先計算然後暫存,而不是在每次要使用時重訓練或重預測。