Sklearn之資料預處理——StandardScaler歸一化
文章目錄
為什麼要進行歸一化?
機器學習模型被網際網路行業廣泛應用,一般做機器學習應用的時候大部分時間是花費在特徵處理上,其中很關鍵的一步就是對特徵資料進行歸一化,為什麼要歸一化呢?
維基百科給出的解釋:
- 歸一化後加快了梯度下降求最優解的速度;
如果機器學習模型使用梯度下降法求最優解時,歸一化往往非常有必要,否則很難收斂甚至不能收斂。
- 歸一化有可能提高精度;
一些分類器需要計算樣本之間的距離(如歐氏距離),例如KNN。如果一個特徵值域範圍非常大,那麼距離計算就主要取決於這個特徵,從而與實際情況相悖(比如這時實際情況是值域範圍小的特徵更重要)。
我的理解:
- 去掉量綱,使得各指標之間具有可比性
- 將資料先知道一定區間內,使得運算便捷
下面再以房價預測的例子來說明一下歸一化的作用。以預測房價為例,自變數為房間數(x1)、面積大小(x2),因變數為房價。那麼可以得到的公式為:
y=θ1x1+θ2x2
y=θ1x1+θ2x2
其中,x1代表房間數,θ1代表x1變數前面的係數;x2代表面積,θ2代表x2變數前面的係數。
下面兩張圖(損失函式的等高線)代表資料是否歸一化的最優解尋解過程:
未歸一化:
歸一化之後:
在尋找最優解的過程,當資料沒有歸一化的時候,面積數的範圍可以從01000,房間數的範圍一般為010,可以看出面積數的取值範圍遠大於房間數。也就導致了等高面為長橢圓形,非常尖,因為變數前的係數大小相差很大,當使用梯度下降法尋求最優解時,很有可能走“之字型”路線(垂直等高線走)。
而資料歸一化後,損失函式變數前面的係數差距已不大,影像的等高面近似圓形,在梯度下降進行求解時能較快的收斂。因此如果機器學習模型使用梯度下降法求最優解時,歸一化往往非常有必要,否則很難收斂甚至不能收斂。
哪些機器學習演算法不需要(需要)做歸一化?
概率模型(樹形模型)不需要歸一化,因為它們不關心變數的值,而是關心變數的分佈和變數之間的條件概率,如決策樹、RF。而像Adaboost、SVM、LR、Knn、KMeans之類的最優化問題就需要歸一化。
下面列舉一下常用的歸一化方法以及各種方法的使用場景。
1.線性函式歸一化
線性函式將原始資料線性化的方法轉換到[0, 1]的範圍。計算公式如下:
在不涉及距離度量、協方差計算、資料不符合正太分佈的時候,使用該方法比較好
2.零均值標準化
零均值歸一化方法將原始資料集歸一化為均值為0、方差1的資料集([0, 1]範圍)。計算公式如下:
在分類、聚類演算法中,需要使用距離來度量相似性的時候、或者使用PCA技術進行降維、涉及到正態分佈的時候使用該方法較好。
3.非線性歸一化
(1)對數變換
在實際工程中,經常會有類似點選次數/瀏覽次數的特徵,這類特徵是長尾分佈的,可以將其用對數函式進行壓縮。特別的,在特徵相除時,可以用對數壓縮之後的特徵相減得到。對數規範化的常見形式是:
(2)三角函式
三角函式的值在[0, 1]之間,如果有需要,可以用三角函式進行變換。
(3)sigmoid函式
sigmoid函式,也稱S型函式,可以對資料進行有效的壓縮。特別的,S型函式在邏輯迴歸中起著決定性作用。
相關文章
- 關於使用sklearn進行資料預處理 —— 歸一化/標準化/正則化
- 【原】關於使用sklearn進行資料預處理 —— 歸一化/標準化/正則化
- 特徵預處理之歸一化&標準化特徵
- sklearn中常用資料預處理方法
- sklearn 第二篇:資料預處理
- 資料預處理-資料歸約
- Python資料預處理:徹底理解標準化和歸一化Python
- sklearn基礎及資料處理
- 機器學習 第4篇:資料預處理(sklearn 插補缺失值)機器學習
- 十分鐘上手sklearn 安裝,獲取資料,資料預處理
- 文字資料預處理:sklearn 中 CountVectorizer、TfidfTransformer 和 TfidfVectorizerORM
- 機器學習一:資料預處理機器學習
- CANN訓練:模型推理時資料預處理方法及歸一化引數計算模型
- 資料預處理之 pandas 讀表
- Alink漫談(十) :線性迴歸實現 之 資料預處理
- 資料預處理
- R語言歸一化處理R語言
- 資料預處理-資料清理
- 資料分析--資料預處理
- 第四篇:資料預處理(一) - 缺失值處理
- 資料預處理 demo
- Pandas多維特徵資料預處理及sklearn資料不均衡處理相關技術實踐-大資料ML樣本集案例實戰特徵大資料
- 資料歸一化
- 資料預處理–資料降維
- 資料庫優化之表碎片處理資料庫優化
- nlp 中文資料預處理
- 資料預處理規則
- 資料預處理的形式
- 第六篇:資料預處理(三) - 資料標準化
- 第七篇:資料預處理(四) - 資料歸約(PCA/EFA為例)PCA
- 【DL-CV】資料預處理&權重初始化
- 機器學習演算法筆記之6:資料預處理機器學習演算法筆記
- 【scikit-learn基礎】--『預處理』之 資料縮放
- 資料預處理之獨熱編碼(One-Hot)
- sklearn: CountVectorize處理及一些使用引數
- 資料預處理方法彙總
- 資料預處理和特徵工程特徵工程
- 機器學習筆記---資料預處理機器學習筆記