爲什麼需要對數值類型的特徵做歸一化?

01 特徵歸一化

爲了消除數據特徵之間的量綱影響,我們需要對特徵進行歸一化處理,使得不同指標之間具有可比性。例如,分析一個人的身高和體重對健康的影響,如果使用米(m)和千克(kg)作爲單位,那麼身高特徵會在1.6~1.8m的數值範圍內,體重特徵會在50~100kg的範圍內,分析出來的結果顯然會傾向於數值差別比較大的體重特徵。想要得到更爲準確的結果,就需要進行特徵歸一化(Normalization)處理,使各指標處於同一數值量級,以便進行分析。

知識點
特徵歸一化

問題 爲什麼需要對數值類型的特徵做歸一化?

分析與解答

對數值類型的特徵做歸一化可以將所有的特徵都統一到一個大致相同的數值區間內。最常用的方法主要有以下兩種。

(1)線性函數歸一化(Min-Max Scaling)。它對原始數據進行線性變換,使結果映射到[0, 1]的範圍,實現對原始數據的等比縮放。歸一化公式如下:
在這裏插入圖片描述
其中X爲原始數據,Xmax、Xmin分別爲數據最大值和最小值。

(2)零均值歸一化(Z-Score Normalization)。它會將原始數據映射到均值爲0、標準差爲1的分佈上。具體來說,假設原始特徵的均值爲μ、標準差爲σ,那麼歸一化公式定義爲
在這裏插入圖片描述
爲什麼需要對數值型特徵做歸一化呢?我們不妨藉助隨機梯度下降的實例來說明歸一化的重要性。假設有兩種數值型特徵,x1的取值範圍爲 [0, 10],x2的取值範圍爲[0, 3],於是可以構造一個目標函數符合圖1.1(a)中的等值圖。在學習速率相同的情況下,x1的更新速度會大於x2,需要較多的迭代才能找到最優解。如果將x1和x2歸一化到相同的數值區間後,優化目標的等值圖會變成圖1.1(b)中的圓形,x1和x2的更新速度變得更爲一致,容易更快地通過梯度下降找到最優解。
在這裏插入圖片描述

當然,數據歸一化並不是萬能的。在實際應用中,通過梯度下降法求解的模型通常是需要歸一化的,包括線性迴歸、邏輯迴歸、支持向量機、神經網絡等模型。但對於決策樹模型則並不適用,以C4.5爲例,決策樹在進行節點分裂時主要依據數據集D關於特徵x的信息增益比(詳見第3章第3節),而信息增益比跟特徵是否經過歸一化是無關的,因爲歸一化並不會改變樣本在特徵x上的信息增益。

另外博主收藏這些年來看過或者聽過的一些不錯的常用的上千本書籍,沒準你想找的書就在這裏呢,包含了互聯網行業大多數書籍和麪試經驗題目等等。有人工智能系列(常用深度學習框架TensorFlow、pytorch、keras。NLP、機器學習,深度學習等等),大數據系列(Spark,Hadoop,Scala,kafka等),程序員必修系列(C、C++、java、數據結構、linux,設計模式、數據庫等等)以下是部分截圖

更多文章見本原創微信公衆號「五角錢的程序員」,我們一起成長,一起學習。一直純真着,善良着,溫情地熱愛生活。關注回覆【電子書】即可領取哦

在這裏插入圖片描述

在這裏插入圖片描述
給大家推薦一個Github,上面非常非常多的乾貨:https://github.com/XiangLinPro/IT_book

Make up your mind to act decidedly and take the consequences. No good is ever done in this world by hesitation.

下定決心,果斷行動,並承擔後果。在這世界上猶豫不決成就不了任何事。

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