插值法補齊缺失資料 關於資料清洗的常見方式

2021-10-14 15:54:31 字數 3588 閱讀 5922

1. 探索性分析

探索性分析部分,對於整個資料來講是獲得對資料乙個初步的認識以及對先驗知識的乙個探索分析過程,在我做相關資料探勘的過程中,主要是利用python相關的科學計算庫進行資料初步的探索,例如資料型別,缺失值,資料集規模,各特徵下的資料分布情況等,並利用第三方繪相簿進行直觀的觀察,以獲取資料的基本屬性與分布情況,另外,通過單變數分析與多變數分析,可以初步探索資料集中各特徵之間的關係,以驗證在業務分析階段所提出的假設。

2. 缺失值

資料集中缺失值的獲取方法可以直接通過pandas的自帶的多種方法獲取,在大多數資料集中缺失值都普遍會存在,因此,對於缺失值的處理好壞會直接影響到模型的最終結果。如何處理缺失值,主要依據在缺失值所在屬性的重要程度以及缺失值的分布情況。

①.在缺失率少且屬性重要程度低的情況下,若屬性為數值型資料則根據資料分布情況簡單的填充即可,例如:若資料分布均勻,則使用均值對資料進行填充即可;若資料分布傾斜,使用中位數填充即可。若屬性為類別屬性,則可以用乙個全域性常量『unknow』填充,但是,這樣做往往效果很差,因為演算法可能會將其識別為乙個全新的類別,因此很少使用。

②.當缺失率高(>95%)且屬性重要程度低時,直接刪除該屬性即可。然而在缺失值高且屬性程度較高時,直接刪除該屬性對於演算法的結果會造成很不好的影響。

③.缺失值高,屬性重要程度高:主要使用的方法有插補法與建模法

(1)插補法主要有隨機插補法,多重插補法,熱平台插補法,以及拉格朗日插值法與牛頓插值法

1>隨機插補法--從總體中隨機抽取某幾個樣本代替缺失樣本

2>多重插補法--通過變數之間的關係對缺失資料進行**,利用蒙特卡洛方法生成多個完整的資料集,在對這些資料集進行分析,最後對分析結果進行彙總處理

3>熱平台插補----指在非缺失資料集中找到乙個與缺失值所在樣本相似的樣本(匹配樣本),利用其中的觀測值對缺失值進行插補。

優點:簡單易行,準確率較高

缺點:變數數量較多時,通常很難找到與需要插補樣本完全相同的樣本。但我們可以按照某些變數將資料分層,在層中對缺失值實用均值插補

4>拉格朗日差值法和牛頓插值法

(2)建模法

可以用回歸、貝葉斯、隨機森林、決策樹等模型對缺失資料進行**。例如:利用資料集中其他資料的屬性,可以構造一棵判定樹,來**缺失值的值。

一般而言,資料缺失值的處理沒有統一的流程,必須根據實際資料的分布情況,傾斜程度,缺失值所佔比例等來選擇方法。在我做資料預處理過程中,除了使用簡單的填充法外與刪除外,更多情況下採用建模法進行填充,主要在於建模法根據已有的值去**未知值,準確率較高。但建模法也可能造成屬性之間的相關性變大,可能影響最終模型的訓練。

3. 異常值(離群點)

判斷離群點除了視覺化分析外(一般箱線圖),還有很多基於統計背景下的方法,且視覺化觀察不適合用資料量較多的情況。

3.1 簡單的統計分析

這一步在eda中完成,只需要利用pandas的describe方法就可以實現,通過資料集描述性統計,發現是否存在不合理的值,即異常值

3.2 3∂原則--基於正態分佈的離群點檢測

如果資料服從正態分佈,在3∂原則下,異常值為一組測定值中與平均值的偏差超過3倍標準差的值。如果資料服從正態分佈,距離平均值3∂之外的值出現的概率為p(|x-u| > 3∂) <= 0.003,屬於極個別的小概率事件。如果資料不服從正態分佈,也可以用遠離平均值的多少倍標準差來描述。

3.3 基於模型檢測

首先建立乙個資料模型,異常是那些同模型不能完美擬合的物件;如果模型是簇的集合,則異常是不顯著屬於任何簇的物件;在使用回歸模型時,異常是相對遠離**值的物件

3.4 基於距離

通過在物件之間定義臨近性度量,異常物件是那些遠離其它物件的物件

優點:簡單易操作

缺點:時間複雜度為o(m^2),不適用於大資料集情況,引數選擇較為敏感,不能處理具有不同密度區域的資料集,因為它使用全域性閾值,不能考慮這種密度的變化

3.5 基於密度

當乙個點的區域性密度顯著低於它的大部分近鄰時才將其分類為離群點。適合非均勻分布的資料。

優點:給出了物件是離群點的定量度量,並且即使資料具有不同的區域也能夠很好的處理

缺點:時間複雜度o(m^2);引數選擇困難,雖然演算法通過觀察不同的k值,取得最大離群點得分來處理該問題,但是,仍然需要選擇這些值的上下界。

3.6 基於聚類

基於聚類的離群點:乙個物件是基於聚類的離群點,如果該物件不強屬於任何簇。離群點對初始聚類的影響:如果通過聚類檢測離群點,則由於離群點影響聚類,存在乙個問題:結構是否有效。為了處理該問題,可以使用如下方法:物件聚類,刪除離群點,物件再次聚類。

優點:① 基於線性和接近線性複雜度(k均值)的聚類技術來發現離群點可能是高度有效的② 簇的定義通常是離群點的補,因此可能同時發現簇和離群點

缺點:③ 產生的離群點集和它們的得分可能非常依賴所用的簇的個數和資料中離群點的存在性

④ 聚類演算法產生的簇的質量對該演算法產生的離群點的質量影響非常大

處理異常點的方法:

1>刪除異常值----明顯看出是異常且數量較少可以直接刪除

2>不處理---如果演算法對異常值不敏感則可以不處理,但如果演算法對異常值敏感,則最好不要用這種方法,如基於距離計算的一些演算法,包括kmeans,knn之類的。

3>平均值替代----損失資訊小,簡單高效。

4>視為缺失值----可以按照處理缺失值的方法來處理

4. 去重處理

對於重複項的判斷,基本思想是「排序與合併」,先將資料集中的記錄按一定規則排序,然後通過比較鄰近記錄是否相似來檢測記錄是否重複。這裡面其實包含了兩個操作,一是排序,二是計算相似度。目前在做競賽過程中主要是用duplicated方法進行判斷,然後將重複的樣本進行簡單的刪除處理。

這塊目前看到的部落格與國外一些比賽的案例基本都採用直接刪除進行處理,沒有看到過比較有新意的方法。

5. 噪音處理

噪音是被測變數的隨機誤差或者方差,主要區別於離群點。由公式:觀測量(measurement) = 真實資料(true data) + 雜訊 (noise)。離群點屬於觀測量,既有可能是真實資料產生的,也有可能是雜訊帶來的,但是總的來說是和大部分觀測量之間有明顯不同的觀測值。噪音包括錯誤值或偏離期望的孤立點值,但也不能說雜訊點包含離群點,雖然大部分資料探勘方法都將離群點視為雜訊或異常而丟棄。然而,在一些應用(例如:欺詐檢測),會針對離群點做離群點分析或異常挖掘。而且有些點在區域性是屬於離群點,但從全域性看是正常的。

對於噪音的處理主要採用分箱法於回歸法進行處理:

(1) 分箱法:

分箱方法通過考察資料的「近鄰」來光滑有序資料值。這些有序的值被分布到一些「桶」或箱中。由於分箱方法考察近鄰的值,因此它進行區域性光滑。

l 用箱均值光滑:箱中每乙個值被箱中的平均值替換。

l 用箱中位數平滑:箱中的每乙個值被箱中的中位數替換。

l 用箱邊界平滑:箱中的最大和最小值同樣被視為邊界。箱中的每乙個值被最近的邊界值替換。

一般而言,寬度越大,光滑效果越明顯。箱也可以是等寬的,其中每個箱值的區間範圍是個常量。分箱也可以作為一種離散化技術使用.

(2) 回歸法

可以用乙個函式擬合資料來光滑資料。線性回歸涉及找出擬合兩個屬性(或變數)的「最佳」直線,使得乙個屬性能夠**另乙個。多線性回歸是線性回歸的擴充套件,它涉及多於兩個屬性,並且資料擬合到乙個多維面。使用回歸,找出適合資料的數學方程式,能夠幫助消除雜訊。

插值法補齊缺失資料 資料處理 缺失值處理

此文圖方便,就直接輸入資料了。importpandas as pd df pd.dataframe 1缺失值處理 如何判斷缺失值 df.isnull isna df.notnull notna 1.1刪除法 dataframe.dropna axis 0,how any thresh none,su...

拉格朗日插值法補齊資料python

書上的 然後具體原理公式先占個坑,以後再詳細寫 def ployinterp column s,n,k 8 取出要插值位置的前後k個資料 y s list range n k,n list range n 1,n 1 k 剔除空值 y y y.notnull return lagrange y.in...

資料預處理 資料清洗(1) 缺失值處理

缺失值,異常值和重複值的處理 3.1.1缺失值處理 缺失值處理方式 填充缺失值相對直接刪除而言,用適當方式填充缺失值,形成完整的資料記錄是更加常用的缺失值處理方式。常用的填充方法如下 不處理資料分析和建模應用中很多模型對於缺失值有容忍度或靈活的處理方法,因此在預處理階段可以不做處理。常見的能夠自動處...