數據預處理的基本步驟
我們拿到的數據,通常是不“完美”的,并不能夠直接用來分析和建模。所以通常我們需要先進行數據預處理。預處理 一般包括如下幾個步驟
第一步:數據集成
數據集成,也就是對不同數據源的數據進行整合。數據收集的過程,往往不是單一來源單一階段的。因此需要把不同來 源的數據進行整合,形成一個綜合的數據集。在這個過程中,需要注意不同來源的數據名稱、長度、格式、編碼規則以 及含義都可能存在差異,也可能會存在重複或者矛盾的數據。 因此在集成過程中需要對合并後的數據,進行驗證,避免出現同名異義,或者異名同義,以及單位不統一等情況。對于 重複數據,也要進行删除和合并,避免冗餘。
第二步:數據探索
拿到一個數據集,我們首先要進行數據探索。這是為了更好地理解數據集,掌握它的基本特征,為後面的操作打下基礎。 一般我們會通過集中趨勢和離散程度兩類指标來探索一個數據集中的單一變量。 集中趨勢,我們一般可以通過平均值、中位數、衆數來衡量。 離散程度,我們一般則可以用極差、方差、标準差、分位數來評估。 另外,除了用數據指标,我們也可以通過圖表的形式來了解一個數據集。比如箱形圖(Box-plot),又稱為盒須圖,就是 一種經常用來表示數據集分布情況的圖表。
另外,我們也可以通過圖表的形式來對數據集合中兩個字段的關系有一個初步的概念。比如Q-Q圖和散點圖。 Q-Q圖(Q-Q Plot)是用X-Y坐标軸的形式把兩個變量分位數放在一起進行比較。如果兩個變量分布相似,那麼圖形落在對角線。如 果兩個維度分布相關,那麼圖形會近似呈直線形狀。Q-Q圖也可以用來判斷樣本分布是否為正态分布。
散點圖(Scatter Plot),也是用X-Y坐标軸的形式來表示兩個變量數據的關系。把(X,Y)的取值一一對應表示在坐标軸中,會形成一些 散落的點。根據點的形狀,我們就可以對兩個變量間的關系,有一個基本的了解。
第三步:數據交換
在進行了基本的了解後,我們還需要把集合中的數據通過一定形式的變換,轉換成适合分析和建模的形式。主要的數 據變換就是數據标準化。 數據标準化,指的是把數據按照一定的規則,進行縮放,使其落在一定的區間範圍内。不同變量由于性質不同,通常 具有不同的量綱和數量級。标準化,可以有效地解決變量間取值範圍差異過大的情況。避免後期建模中,由于量綱差 異,帶來信息遺失。同時由于去除了數據的單位限制,将其轉化為無量綱的純數值,也方便了不同變量間的比較和計 算。 -2,32,100,59,48→0.02,0.32,1,0.59,0.48
第四步:數據歸約
在實際項目中,我們遇到的數據集可能比較大,這個時候除非應用大數據挖掘技術,在做一般的分析和建模時,我們都需要對數據進 行歸約,也就是簡化。當然,簡化的前提是盡可能少地減少信息損失和保證最終效果。 另一種需要用到數據歸約的情況是,數據集的變量數較多,而對應的樣本數相對比較少。這個時候,樣本的數量不足以支持這麼多變 量的研究,過多的變量數也會使得一些模型不再适用。那麼這個時候,我們也需要對變量進行歸約。 通常,我們可以采用維度歸約和數值歸約兩種方法。
第四步:數據歸約 —— 兩種方法
維度歸約
主要是減少變量,或者說維度屬性的個數。常用的方法有主成分分析、變量聚類等。
數值歸約
是通過選擇可以替代的、較小的數據的形式,來達到減少數據量的目的。一般可以分為有參數法和無參數法。有參數法的數值歸約, 最後隻要存儲參數即可,不需要額外存儲數據。常用的有參數法是線性回歸和多元回歸。而無參數法一般不使用參數,或者模型的方 式來存儲數據,常用的方法有直方圖、抽樣和聚類。數據分箱也可以有效減少數據的數量。
二、數據清洗
1.填補遺漏的數據值
在數據收集的過程中,我們難免會遇到數據缺失的情況。對于缺失的數據,一般不建議直接删除,通常會采用常數、中位數/衆數、随機 數或者模型的方法進行填補。
常數法
最簡單,但是相對來說也比較主觀,可能帶來無效信息。因此使用較少,通常用于标記缺失值。
中位數或者衆數 都是描述數據集的集中趨勢的指标。因此填補的數值也比較接近數據集的共性特征,因此填補後的數據集集中趨勢會更加明顯,結果也 會偏向樂觀。因此通常應用于有少量缺失值的情況。
随機數方法
避免了主觀判斷,分布也更加自然。适用于有大量缺失值的情況。但是對生成随機值的方法依賴性比較強,如果選擇不恰當,可能生成 大量的無意義數據。
模型法
相對來說,取值最合理的一種方法。但是由于計算複雜,因此除非對數據的質量特别敏感,一般很少采用。
2.平滑有噪聲數據
在一些變量中可能存在随機的錯誤或者誤差,這個時候我們需要平滑這些有噪聲的數據,避免給最後結果造成影響。一般平滑有噪聲數 據的方法有分箱法、聚類法,也可以通過移動平均的方法來進行過濾平滑。
3.識别或去除異常值 變量中也可能存在異常值。我們可以通過數值或者畫圖的方法來進行判斷。對于單一變量,我們可以通過均值、分位數、對稱分布的經 驗法則或者切比雪夫不等式來進行判斷。 如果需要識别兩個或者以上變量組合是否存在異常值,我們則可以采用聚類或者散點圖的方式來進行。 但是需要注意的是,異常值并不總是需要去除的。因為有時候異常值也代表了數據集的特征。具體是否需要去除或者調整,要根據項目 的實際情況和使用的模型要求來進行判斷。
4.解決不一緻問題
在數據集成部分,我們也提到過,來源不同的數據,名稱、定義、長度、單位等都有可能存在不同,在使用前,我們需要對這些數據進 行檢查和統一。避免由于不一緻帶來結果的誤差。
5.查重
有些時候,數據集合中可能會存在重複的數據。因此在使用數據集前,我們也要進行查重,避免造成信息的幹擾。
三、例題精講1.關于Z-score标準化說法正确的是( )。
A.變換後變量的取值範圍為[-1,1]
B.變換後變量的取值範圍為(-1,1)
C.消除了量綱的影響
D.改變了數據的偏度
答案:C 解析:變換後,變量的取值範圍仍然是(-∞, ∞)。新生成的變量均值為0,方差為1。
2.下面那些方法可以用于異常值的識别( )。 A.分位數判斷
B.轉化為Z-score判斷
C.聚類
D.計算峰度
答案:ABC 分析:異常值的判斷可以使用均值、分位數來判斷,可以使用對稱分布的經驗法 則或切比雪夫不等式,還可以使用聚類。
,