處理資料缺失的結構化解決辦法

2022-09-12 07:15:12 字數 1728 閱讀 4297

資料缺失是資料科學家在處理資料時經常遇到的問題,本文作者基於不同的情境提供了相應的資料插補解決辦法。沒有完美的資料插補法,但總有一款更適合當下情況。

我在資料清理與探索性分析中遇到的最常見問題之一就是處理缺失資料。首先我們需要明白的是,沒有任何方法能夠完美解決這個問題。不同問題有不同的資料插補方法——時間序列分析,機器學習,回歸模型等等,很難提供通用解決方案。在這篇文章中,我將試著總結最常用的方法,並尋找乙個結構化的解決方法。

插補資料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%的觀測資料缺失,直接刪除該變數也可以,但前提是該變數無關緊要。話雖如此,插補資料總是比直接丟棄變數好一些。

資料求webAPP優化解決辦法

以框架庫為例,除了核心包以外,不需要的ui或者功能庫可以剔除,用到了再動態載入,減少首次載入量,這個一開始就得做好,做不好後期就不好改 另外,以下兩點尤其需要注意 若是你們是要的還是jquery庫的話,可以考慮換成zepto了 勿胡亂引用第三方庫,若是要引用一定是讀懂原始碼的情況下重寫使用之,這樣的...

關於C 實體中有list的例項化解決辦法(不唯一)

public class ordercarcleanvm public listservicecommentlist 假設這是我的乙個實體.現在要在方法中適用這個實體 那麼如下例項化更加方便 ordercarcleanvm ordercarcleanvm new ordercarcleanvm or...

面試 大量資料的解決辦法

此篇先介紹了幾個概念,後面的面試題為對大數量的各種處理及解決辦法 搜尋引擎會通過日誌檔案把使用者每次檢索使用的所有檢索串都記錄下來,每個查詢串的長度為1 255位元組?有乙個1g大小的乙個檔案,裡面每一行是乙個詞,詞的大小不超過16位元組,記憶體限制大小是1m。返回頻數最高的100個詞?給定a b兩...