數值資料:正規化

透過統計和視覺化技術檢查資料後,您應以更有效的方式轉換資料,以利模型訓練。正規化的目標是將特徵轉換為相似的尺寸。舉例來說,請考量以下兩項功能:

  • 功能 X 的範圍為 154 到 24,917,482。
  • 地圖項目 Y 的範圍介於 5 到 22 之間。

這兩項功能的範圍差異極大。正規化作業可能會 XY 來取得類似的範圍 (可能為 0 到 1)。

正規化具有以下優點:

  • 在訓練期間,有助於模型更快收斂。當不同特徵具有不同的範圍時,梯度下降法 「bounce」以及慢慢收斂不過,更進階的最佳化器 (例如 AdagradAdam) 會隨著時間改變有效學習率,以防範這類問題。
  • 協助模型推測出更準確的預測結果。 如果不同特徵的範圍不同,產生的模型可能會做出較不實用的預測。
  • 有助於在特徵值非常高時避免「NaN 陷阱」NaN 是「不是數字」的縮寫,如果模型中的值超過 浮點精確度限制,系統會將值改為 NaN 數字。當模型中的一個數字變成 NaN 時,模型中的其他數字最終也會變成 NaN。
  • 協助模型瞭解每個特徵的適當權重。 如果沒有特徵縮放功能,模型會專心注意 但資訊廣泛但缺乏足夠關注 或縮小範圍

建議你將數值特徵正規化 範圍 (例如年齡和收入) 我們也建議您正規化涵蓋多個範圍的單一數值特徵 例如 city population.

請考慮下列兩項功能:

  • A」地圖項目的最低值為 -0.5,最高為 +0.5。
  • 地圖項目 B 的最低值為 -5.0,最高值為 +5.0。

特徵 AB 的跨距相對較窄。但功能 B 的 時距的寬度比特徵 A 的跨範圍大 10 倍。因此:

  • 在開始訓練時,模型會假設特徵 A 為十次 較「重要」比功能 B
  • 訓練時間會比預期的長。
  • 最終產生的模型可能不夠理想。

由於未歸一化,整體損害相對較小;不過,我們仍建議將特徵 A 和特徵 B 歸一化至相同的刻度,例如 -1.0 到 +1.0。

接著,請考慮兩個範圍差異較大的地圖項目:

  • 地圖項目「C」的最低值為 -1,最高為 +1。
  • 功能 D 的最低值為 +5000,最高值為 +1,000,000,000。

如果您沒有將特徵 C 和特徵 D 正規化,模型很可能會 可能不夠理想而且必須花費更多時間 甚至沒辦法完全收合!

本節說明三種常用的正規化方法:

  • 線性縮放
  • 標準分數縮放
  • 對數縮放

本節還會介紹裁剪。雖然這並非真正的規格化技術,但裁剪確實可將不規則的數值特徵納入範圍,產生更優質的模型。

線性調整

線性縮放 (通常簡稱為「縮放」) 是指將浮點值從其自然範圍轉換為標準範圍,通常是 0 到 1 或 -1 到 +1。

符合下列所有條件時,建議您使用線性資源調度:

  • 資料的上下限不會隨時間改變。
  • 地圖項目幾乎不含或完全不含異常值,且這些異常值並非極端值。
  • 特徵會平均地分佈在其範圍內。 也就是說,直方圖會針對大多數值顯示大致均勻的長條。

假設 human age 是功能。線性縮放是 age 的良好正規化技巧,因為:

  • 大約的下限和上限值為 0 到 100。
  • age 中異常值的比例相對較低。大約只有 0.3% 人口超過 100 人
  • 雖然特定年齡層比其他年齡略高 資料集應包含所有年齡的足夠範例。

練習:檢查您的理解程度

假設模型有一個名為 net_worth 的特徵,其中包含網路 適合每個人線性縮放是否會成為良好的正規化 「net_worth」的技巧?原因為何?

標準分數縮放

Z 分數是指特定值與平均值之間的標準差數。 舉例來說,如果某個值比平均值「高出」 2 個標準差,則 Z 分數為 +2.0。如果某個值比平均值「低」 1.5 個標準差,則 Z 分數為 -1.5。

使用Z 分數縮放表示特徵,代表在特徵向量中儲存該特徵的 Z 分數。例如,下圖顯示兩個直方圖:

  • 左側是經典的常態分佈。
  • 右側是同樣分佈,經由 Z 分數縮放規範化。
圖 4. 兩個直方圖:兩者都顯示常態分佈,且分佈方式相同。第一個包含原始的直方圖
           平均值為 200,標準差為 30第二個
           內含第一個 Z 分數版本的直方圖
           分佈為 0,且標準差為 1。
圖 4. 一般資料 (左側) 與 Z 分數 (右側) 的正常資料 發行。

Z 分數縮放功能也適合用於 一個看起來很明顯的常態分佈。

圖 5. 兩個形狀相同的直方圖,每個圖表都顯示陡峭上升至平坦區域,然後快速下降,接著逐漸衰減。一張直方圖顯示原始資料的分布情形,另一張直方圖則顯示經 Z 分數縮放處理後的原始資料分布情形。兩個直方圖的 X 軸值差異很大。
            原始資料直方圖的範圍為 0 到 29,000,而 Z 分數比例直方圖的範圍為 -1 到約 +4.8
圖 5. 原始資料 (左側) 與 Z 分數縮放 (右側) 非傳統常態分佈

當資料與常態分佈或 有點像常態分佈

請注意,部分發布作業在 但其中仍包含極端離群值舉例來說,幾乎所有 net_worth 特徵中的資料點可整併成 3 個標準差 但這項功能有幾百個標準差 你太過分心在這些情況下,您可以結合 另一種正規化 (通常為剪輯) 來處理這種情況。

練習:檢查您的理解程度

假設您的模型會針對名為 height 的特徵進行訓練,該特徵會儲存 1,000 萬名女性的成人身高。對於 height,Z 分數縮放是否是適當的正規化技巧?原因為何?

對數刻度

對數縮放功能會計算原始值的對數。理論上 對數可以是任何底數;在實際執行時 自然對數 (ln)。

如果資料符合冪律分布,則可使用對數縮放功能。隨興的權法分配如下:

  • X 的低值會產生 Y 的極高值。
  • 隨著 X 的值增加,Y 的值會快速減少。 因此,X 的值越高,Y 的值就會越低。

電影分級就是權力法散佈的良好範例。請注意下圖中的以下事項:

  • 有些電影的使用者評分非常高,(低 X 的值為高) Y 的值)。
  • 大多數電影的使用者評分很少。(X 的值越高,Y 的值就越低)。

記錄縮放會變更分布情形,有助於訓練模型,進而做出更準確的預測。

圖 6. 兩張圖表比較原始資料與原始資料記錄。原始資料圖表顯示大量使用者評分,並以長尾資料為後續。記錄圖表的資料分布更均勻。
圖 6. 比較原始發布與其記錄。

第二個例子是書籍銷售量符合冪律分布,原因如下:

  • 大多數出版書籍的銷量都很少,可能只有一、兩百本。
  • 有些書籍內含數千本書籍,數量適中。
  • 只有少數暢銷書的銷量會超過一百萬本。

假設您要訓練線性模型,找出書籍封面與書籍銷售量的關係。以原始值訓練的線性模型,必須找出書籍銷量達百萬本的書籍封面,比銷量只有 100 本的書籍封面,有 10,000 倍的影響力。然而,對所有銷售數據增加記錄,讓工作更可行。 例如,100 的記錄為:

  ~4.6 = ln(100)

而 1,000,000 的記錄為:

  ~13.8 = ln(1,000,000)

因此,1,000,000 的對數大約是 100 的對數的三倍。你或許「能」想像一下暢銷書封面大約 3 次 功能反而比只銷售小小的書籍封面更好 (有些許好處)。

裁剪

裁剪是一種技巧 盡可能降低極端離群值的影響簡單來說,剪裁通常大寫 (減少) 離群值與特定最大值。剪輯是一種 這個想法可能很有效

舉例來說,假設資料集包含名為 roomsPerPerson 的特徵, 當中包含房間數量 (會議室總數除以 來篩選各個房子的乘客人數。下圖顯示,超過 99% 的特徵值符合常態分佈 (大致上,平均值為 1.8,標準差為 0.7)。不過,這項功能 有幾個離群值,有些是極端的:

圖 7. 顯示 roomsPerPerson 的圖表,其中幾乎所有值都聚集在 0 到 4 之間,但有一個非常長的尾端,一直延伸到每人 17 間房
圖 7. 主要正常,但不完全正常。

如何盡量減少這些極端離群值的影響? 直方圖並非均勻分佈、常態分配或權力法 發行。如果您只使用 capclip 這個最大值 「roomsPerPerson」做為任意值,例如 4.0?

顯示 roomsPerPerson 的圖表,其中所有值介於 0 和 4.0 之間。圖表呈現鐘形,但 4.0 處有異常的山丘
圖 8. 將特徵值截斷為 4.0。

將特徵值裁剪為 4.0,並不代表模型會忽略所有 大於 4.0 的值而是表示所有大於 4.0 的值現在都會變成 4.0。這就是 4.0 分數的特殊曲線。儘管如此,經過縮放的功能集現在比原始資料更實用。

等等!您真的可以將每個異常值都降到某個任意上限嗎?在訓練模型時,是的。

您也可以在套用其他正規化後裁剪值。 舉例來說,假設您使用 Z 分數調整,但部分異常值的絕對值遠大於 3。在這種情況下,您可以:

  • 將大於 3 的 Z 分數裁剪為 3。
  • 將 Z 分數小於 -3 的剪輯片段,使其完全符合 -3。

截斷可避免模型對不重要的資料進行過度索引。不過 事實上,一些離群值很重要 因此,剪輯片段值務必要謹慎

歸一化技術摘要

正規化技巧公式使用時機
線性調整 $$ x' = \frac{x - x_{min}}{x_{max} - x_{min}} $$ 特徵統一分佈於 固定範圍
Z 分數縮放 $$ x' = \frac{x - μ}{σ}$$ 特徵分佈不含極端離群值時。
對數刻度 $$ x' = log(x)$$ 當特徵值符合冪律時。
剪輯 如果 $x >max$,設為「$x」= 最高$
如果 $x <min$,設為「$x」= 分鐘$
當特徵包含極端離群值時。

練習:考考你的知識

請問哪種技巧最適合將具有下列分布的特徵進行規格化?

直方圖顯示資料叢集,值範圍是 0 到
          20 萬人。資料點數量會從 0 到 100,000 逐漸增加,然後從 100,000 到 200,000 逐漸減少。

Z 分數縮放
資料點通常符合正態分佈,因此 Z 分數縮放會將資料點強制設為 –3 到 +3 的範圍。
線性縮放
請詳閱本頁面中關於規格化技術的討論內容,然後再試一次。
記錄檔資源調度
請詳閱本頁面中關於規格化技術的討論內容,然後再試一次。
裁剪
查看本頁正規化技術討論。 然後再試一次。

假設您想開發一個可預測資料中心的 衡量的工作效率。 資料集中的所有 temperature 值幾乎都會下滑 介於 15 到 30 (攝氏) 之間,但有以下例外:

  • 每年一到兩次,在極熱的日子裡 31 和 45 會記錄在 temperature 中。
  • temperature 中,每 1,000 個點會設為 1,000 而不是實際溫度

以下何者是合理的正規化技術 是temperature嗎?

剪除 31 到 45 之間的離群值,但刪除具有 的值是 1,000

值為 1,000 是錯誤,應予以刪除,而非裁剪。

31 到 45 之間的值是有效資料點。 假設資料集未包含足夠的溫度範圍範例,無法訓練模型做出良好預測,那麼對這些值進行裁剪可能會是個不錯的做法。不過,請注意,在推論期間,經過裁剪的模型會對 45 和 35 的溫度做出相同的預測。

截斷所有異常值
請詳閱本頁面中關於規格化技術的討論內容,然後再試一次。
刪除所有異常值
請詳閱本頁面中關於規格化技術的討論內容,然後再試一次。
刪除 31 到 45 之間的離群值,但裁剪 值為 1,000 的離群值
請詳閱本頁面中關於規格化技術的討論內容,然後再試一次。