處理資料缺失的結構化解決辦法
資料缺失是資料科學家在處理資料時經常遇到的問題,本文作者基於不同的情境提供了相應的資料插補解決辦法。沒有完美的資料插補法,但總有一款更適合當下情況。
我在資料清理與探索性分析中遇到的最常見問題之一就是處理缺失資料。首先我們需要明白的是,沒有任何方法能夠完美解決這個問題。不同問題有不同的資料插補方法
——時間序列分析,機器學習,迴歸模型等等,很難提供通用解決方案。在這篇文章中,我將試著總結最常用的方法,並尋找一個結構化的解決方法。
插補資料
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Golang結構體json的時間格式化解決辦法Golang結構體JSON
- Pandas 基礎 (5) - 處理缺失的資料
- 資料分析缺失值處理(Missing Values)——刪除法、填充法、插值法
- 機器學習 第3篇:資料預處理(使用插補法處理缺失值)機器學習
- 【Python資料分析基礎】: 資料缺失值處理Python
- Python資料分析基礎: 資料缺失值處理Python
- Pandas高階教程之:處理缺失資料
- mysql 4.1.7忘記資料庫密碼的處理辦法MySql資料庫密碼
- 機器學習中資料缺失的處理及建模方法機器學習
- 擅長處理臨時資料的結構——棧
- [翻譯]map和reduce,處理資料結構的利器資料結構
- PowerShell的異常處理辦法
- 機器學習 第2篇:資料預處理(缺失值)機器學習
- DBus資料庫表結構變更處理方案資料庫
- 使用Java處理JSON結構化資料 -Advanced Web MachineryJavaJSONWebMac
- 【問題處理】MySQL忘記root密碼的處理辦法MySql密碼
- 資料傾斜解決辦法
- SQLServer資料庫處於恢復掛起狀態的解決辦法SQLServer資料庫
- 磁碟IO過高時的處理辦法
- 【scikit-learn基礎】--『預處理』之 缺失值處理
- 樹形結構處理
- Jtti:SQLServer資料庫處於恢復掛起狀態的解決辦法JttiSQLServer資料庫
- 機器學習 第4篇:資料預處理(sklearn 插補缺失值)機器學習
- [AI開發]基於DeepStream的視訊結構化解決方案AI
- 安裝office後安裝visiso後提示缺失檔案的解決辦法
- 億萬級資料處理的高效解決方案
- 拿來即用:用C+JS結構來處理JSON資料JSON
- oracle密碼過期處理辦法Oracle密碼
- mListView.setOnItemClickListener的函式失效的處理辦法。View函式
- Python資料處理(二):處理 Excel 資料PythonExcel
- 大資料平臺之大資料處理系統的架構大資料架構
- 解決Mysql資料庫插入資料出現問號(?)的解決辦法MySql資料庫
- 資料治理--結構化資料處理 各種情況的資料重跑,流水錶用拉鍊表
- 伺服器被攻擊的基本處理辦法伺服器
- Jenkins臨時空間不足處理辦法Jenkins
- PHP 結合 MySQL 千萬級資料處理PHPMySql
- SQL歷理 neirongxitong資料庫結構SQL資料庫
- 資料處理