1. 程式人生 > >資料預處理(1)資料清洗

資料預處理(1)資料清洗

資料預處理的內容主要包括資料清洗,資料整合,資料變換和資料規約。

資料清洗

資料清洗主要是刪除原始資料集中的無關資料、重複資料,平滑噪聲資料,帥選掉與挖掘主題無關的資料,處理缺失值、異常值等。

缺失值處理

缺失值處理的方法可分為三類:
刪除記錄、資料插補和不處理。
常用的資料 插補方法有:
均值中位數眾數插補
使用固定值插補
使用最近臨插補
迴歸方法 建立擬合模型預測缺失的屬性值
插值法 利用已知點建立插值函式
這裡重點介紹 拉格朗日插值法
拉格朗日插值法
數學基礎
數學上來說,拉格朗日插值法可以給出一個恰好穿過二維平面上若干個已知點的多項式函式。
即給出若干個已知點,可以找出一個多項式穿過這些點。
假設f(a1)=b1,f(a2)=b2,f(a3)=b3
第一項則為
f(x)1=b1 * (x-a2)(x-a3) /(a1-a2)(a1-a3)
將a1帶入 (a1-a2)

(a1-a3) /(a1-a2)(a1-a3)為1,因此在a1的值即為b1
將這些多項式加起來
對於經過的點,帶入x的值,其他多項式會由於包含該點的多項式而為0.
例如本例,最後多項式的結果應該是
f(x)1=b1 * (x-a2)(x-a3) /(a1-a2)(a1-a3)
f(x)2=b2 * (x-a1)
(x-a3) /(a2-a1)(a2-a3)
f(x)3=b3 * (x-a1)*(x-a2) /(a3-a2)(a3-a1)
這三項的和。
將點a3,b3帶入前兩個多項式,由於前兩個多項式都包含(x-a3)項,因此兩者的值均為0,所以帶入點後,整個拉格朗日多項式的值為b3。
由此畫出的曲線具有一定的數學基礎。

拉格朗日插值公式結構緊湊,在理論分析中很方便,但是當插值節點增加時,插值多項式也會隨之改變,這在實際計算中是很不方便的。為了克服這一缺點,提出了牛頓插值法。
牛頓插值法在拉格朗日插值法上做了一定的改進,具有承襲性和易於變動節點的特性,從本質上兩者給出結果是一致的,我們可以證明在固定階次下拉格朗日多項式的唯一性,兩者只是表示的形式不同。
在python的scipy中只實現了拉格朗日插值法,如果要使用牛頓插值法還需要自己去實現。
lagrange為拉格朗日插值函式
使用時
from scipy.interpolate import lagrange #匯入拉格朗日插值函式

異常值處理

異常值處理常用方法有如下幾種:

  • 刪除含有異常值的記錄
  • 視為缺失值
  • 平均值修正
  • 不處理