回爐整理《數據分析實戰45講》之基礎篇 -- 13.數據變換(一)

(PS: 先跳過十二章,因爲那章講數據集成,這個後面再一起講,因爲要講的比較多。此外,下文若有錯誤,請指正,謝謝!😃)

這次是第十三章:

13 | 數據變換:考試成績要求正態分佈合理麼?

該章主要講數據變換的幾種方法中的數據規範化是什麼,以及如何用sklearn裏面的processing包來處理數據。還有其他變換的方法比如數據平滑、數據聚集、數據概化和屬性構造等方式,它們都可以將(特徵)數據轉換成適用於數據挖掘的形式。
所以數據變換也可以理解爲對要挖掘的特徵進行變換(用英文更專業點,叫Feature Scaling,也叫特徵縮放,詳細解釋參見維基百科)。

掌櫃這裏就簡單再補充幾點。
小小提一下:爲什麼要進行數據變換? 通俗來講就是數據集裏面的不同字段不存在可比性,只有轉換到同一範圍纔可比。比如人的身高和體重,代表不同含義,也有不同取值範圍。如果我們不做數據變換處理,後面模型就會受影響。)

PPS,第一個補充點就是 數據規範化需要注意的地方

  • 1. 什麼時候用Min-Max規範化處理數據?
    (也叫歸一化,這裏主要指基於最大、最小值的變換,因爲在不同領域,歸一化有不同含義。)

    • 如果要把原始數據線性變換到[0,1]區間,那就使用Min-Max規範化處理;
    • 如果要對稀疏數據進行處理,也可以用Min-Max規範化;
    • 在機器學習算法中,像KNN、SVM、人工神經網絡都可以先用Min-Max規範化處理數據;
    • 不過,Min-Max規範化易受噪音數據的影響,這個需要注意!
  • 2. 什麼時候用Z-Score標準化處理數據?

    • 當要做中心化處理,並對數據分佈有正太分佈需求的時候用Z-Score標準化處理;
    • 當特徵中含有異常值的時候,用Z-Score標準化更好處理;
    • 在機器學習算法中,像線性迴歸、梯度下降算法也適合先用Z-Score標準化處理特徵數據。
  • 3. 補充一個RobustScaler(縮放到中位數和分位數的)方法,什麼時候用RobustScaler方法?

    • 當要最大限度地保留數據集中的異常值時,使用RobustScaler方法更好。

PPPS : 不是所有的數據都需要先進行特徵變換,像機器學習算法中的 樸素貝葉斯、基於樹模型的隨機森林,梯度提升算法(GBDT、XGBoost等)就不需要
😂怪不得前幾天掌櫃在練習的時候發現,用XGBoost模型進行訓練的時候,不進行特徵變換反而均方誤差更小了。。。

(下篇加入代碼加深理解!
參考資料:
歸一化和標準化:各種特徵如何綜合纔是最合理的?
帶你讀《Python數據分析與數據化運營(第2版)》之三:10條數據化運營不得不知道的數據預處理經驗
數據變換之標準化VS歸一化

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章