處理資料缺失的結構化解決辦法
資料缺失是資料科學家在處理資料時經常遇到的問題,本文作者基於不同的情境提供了相應的資料插補解決辦法。沒有完美的資料插補法,但總有一款更適合當下情況。
我在資料清理與探索性分析中遇到的最常見問題之一就是處理缺失資料。首先我們需要明白的是,沒有任何方法能夠完美解決這個問題。不同問題有不同的資料插補方法
——時間序列分析,機器學習,迴歸模型等等,很難提供通用解決方案。在這篇文章中,我將試著總結最常用的方法,並尋找一個結構化的解決方法。
插補資料
vs
刪除資料
在討論資料插補方法之前,我們必須瞭解資料丟失的原因。
1
、
隨機丟失(
MAR
,
Missing at Random
):隨機丟失意味著資料丟失的機率與丟失的資料本身無關,而僅與部分已觀測到的資料有關。
2
、
完全隨機丟失(
MCAR
,
Missing Completely at Random
):資料丟失的機率與其假設值以及其他變數值都完全無關。
3
、
非隨機丟失(
MNAR
,
Missing not at Random
):有兩種可能的情況。缺失值取決於其假設值(例如,高收入人群通常不希望在調查中透露他們的收入);或者,缺失值取決於其他變數值(假設女性通常不想透露她們的年齡,則這裡年齡變數缺失值受性別變數的影響)。
在前兩種情況下可以根據其出現情況刪除缺失值的資料,而在第三種情況下,刪除包含缺失值的資料可能會導致模型出現偏差。因此我們需要對刪除資料非常謹慎。請注意,插補資料並不一定能提供更好的結果。
刪除
列表刪除
按列表刪除(完整案例分析)會刪除一行觀測值,只要其包含至少一個缺失資料。你可能只需要直接刪除這些觀測值,分析就會很好做,尤其是當缺失資料只佔總資料很小一部分的時候。然而在大多數情況下,這種刪除方法並不好用。因為完全隨機缺失( MCAR )的假設通常很難被滿足。因此本刪除方法會造成有偏差的引數與估計。
成對刪除
在重要變數存在的情況下,成對刪除只會刪除相對不重要的變數行。這樣可以儘可能保證充足的資料。該方法的優勢在於它能夠幫助增強分析效果,但是它也有許多不足。它假設缺失資料服從完全隨機丟失( MCAR )。如果你使用此方法,最終模型的不同部分就會得到不同數量的觀測值,從而使得模型解釋非常困難。
觀測行 3 與 4 將被用於計算 ageNa 與 DV1 的協方差;觀測行 2 、 3 與 4 將被用於計算 DV1 與 DV2 的協方差。
刪除變數
在我看來,保留資料總是比拋棄資料更好。有時,如果超過 60 %的觀測資料缺失,直接刪除該變數也可以,但前提是該變數無關緊要。話雖如此,插補資料總是比直接丟棄變數好一些。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31555587/viewspace-2217659/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- R缺失資料處理
- Golang結構體json的時間格式化解決辦法Golang結構體JSON
- 機器學習 第3篇:資料預處理(使用插補法處理缺失值)機器學習
- Pandas 基礎 (5) - 處理缺失的資料
- 資料分析缺失值處理(Missing Values)——刪除法、填充法、插值法
- 第四篇:資料預處理(一) - 缺失值處理
- Pandas高階教程之:處理缺失資料
- 應用:資料預處理-缺失值填充
- 【Python資料分析基礎】: 資料缺失值處理Python
- Python資料分析基礎: 資料缺失值處理Python
- asm管理的dg資料檔案缺失的處理方法ASM
- 機器學習 第2篇:資料預處理(缺失值)機器學習
- 機器學習中資料缺失的處理及建模方法機器學習
- mysql 4.1.7忘記資料庫密碼的處理辦法MySql資料庫密碼
- 海量資料處理_表結構變更
- [翻譯]map和reduce,處理資料結構的利器資料結構
- mysql線上修改表結構大資料表的風險與解決辦法歸納MySql大資料
- PowerShell的異常處理辦法
- 機器學習 第4篇:資料預處理(sklearn 插補缺失值)機器學習
- 縮小資料檔案尺寸報ORA-03297的處理辦法
- DBus資料庫表結構變更處理方案資料庫
- 如何用深度學習處理結構化資料?深度學習
- access資料庫80040e09錯誤處理辦法資料庫
- oracle rac修改ip的處理辦法Oracle
- oracle 表碎片太多的處理辦法Oracle
- QQ病毒的系列處理辦法(轉)
- php的oci_connect偶爾出現OCIEnvNlsCreate fail和缺失LD_LIBRARY_PATH的處理辦法PHPAI
- 資料傾斜解決辦法
- 資料庫漏洞解決辦法資料庫
- iOS小記--使用結構體處理資料表的問題iOS結構體
- SD圖片處理 記憶體瘋長的解決辦法記憶體
- 【問題處理】MySQL忘記root密碼的處理辦法MySql密碼
- SQLServer資料庫處於恢復掛起狀態的解決辦法SQLServer資料庫
- 磁碟IO過高時的處理辦法
- SQLServer 2000日誌檔案缺失只有MDF恢復資料庫的辦法SQLServer資料庫
- 【譯文】R語言中的缺失值處理R語言
- 【scikit-learn基礎】--『預處理』之 缺失值處理
- 揭祕 IFTTT 每天處理幾十億事件資料的基礎結構事件