Missing-Data
處理不完整/缺失數據的技術
我的問題是針對在分類器/模型訓練/擬合期間處理不完整數據的技術。
例如,在一個有幾百行的數據集中,每行有五個維度和一個類標籤作為最後一項,大多數數據點將如下所示:
[0.74, 0.39, 0.14, 0.33, 0.34, 0]
一些可能看起來像這樣:
[0.21, 0.68, ?, 0.82, 0.58, 1]
因此,這些類型的數據點是本問題的重點。
我問這個問題的最初原因是直接擺在我面前的問題;但是,在發布我的問題之前,我認為如果我重新措辭它可能會更有用,這樣答案將對社區的大部分人有用。
作為一個簡單的啟發式方法,讓我們根據在處理流程中使用它們的時間來劃分這些數據處理技術——在輸入到分類器之前或期間(即,該技術在分類器內部)。
對於後者,我能想到的最好的例子是決策樹中使用的巧妙的“三向分支”技術。
毫無疑問,前一類要大得多。我所知道的技術都屬於以下組之一。
在最近查看我關於“丟失數據處理”的個人筆記時,我注意到我有一個令人印象深刻的技術列表。我只是保留這些筆記以使您高枕無憂,以防初級同事問我如何處理丟失的數據。在實際實踐中,我實際上並沒有使用它們中的任何一個,除了最後一個。
- 插補:一組技術的廣泛標準,其共同點(我相信)是缺失的數據直接由相同的數據集提供——替代而不是估計/預測。
- 重構:使用自動關聯網絡(只是輸入和輸出層大小相等的神經網絡——換句話說,輸出與輸入具有相同的維度)估計丟失的數據點;這裡的想法是在完整數據上訓練這個網絡,然後輸入不完整的模式,並從輸出節點讀取缺失值。
- 自舉:(我不應該認為沒有必要總結,因為它在統計分析中的其他地方使用)。
- 拒絕:悄悄地從你的訓練集中刪除缺失/損壞元素的數據點,並假裝它們不存在。
我對另一個問題給出了這個答案,但它也可能適用於這裡。
“有一個相當新的研究領域叫做矩陣補全,它可能滿足你的需求。Emmanuel Candes在這次講座中給出了非常好的介紹”
本質上,如果您的數據集具有低秩(或近似低秩),即您有 100 行,但實際矩陣有一些小秩,例如 10(或只有 10 個大奇異值),那麼您可以使用 Matrix Completion 來填充缺失的數據。