解釋如何使用 Python 的 scikit-learn 庫實現 L1 範數歸一化?


將一系列值轉換為標準化值範圍的過程稱為歸一化。這些值可能在 -1 到 +1 或 0 到 1 之間。資料也可以透過減法和除法進行歸一化。

作為輸入提供給學習演算法的資料應保持一致性和結構化。輸入資料的所有特徵都應處於單個尺度上,以便有效地預測值。但在現實世界中,資料是非結構化的,大多數情況下並不處於相同的尺度上。

這就是歸一化發揮作用的地方。它是最重要的資料準備過程之一。

它有助於更改輸入資料集列的值,以使其落入相同的尺度。

在歸一化過程中,確保值範圍不會失真。

注意 -並非所有提供給機器學習演算法的輸入資料集都需要歸一化。只有當資料集中特徵的值尺度完全不同時,才需要歸一化。

有不同型別的歸一化:

  • 最小-最大歸一化
  • Z-score 歸一化
  • 單位向量歸一化

讓我們瞭解 L1 歸一化是如何工作的。

也稱為最小絕對偏差,它會更改資料,以便每一行的絕對值之和保持為 1。

讓我們看看如何使用 scikit-learn 在 Python 中實現 L1 歸一化:

示例

import numpy as np
from sklearn import preprocessing
input_data = np.array(
   [[34.78, 31.9, -65.5],[-16.5, 2.45, -83.5],[0.5, -87.98, 45.62],[5.9, 2.38, -55.82]]
)
data_normalized_l1 = preprocessing.normalize(input_data, norm='l1')
print("\nL1 normalized data is \n", data_normalized_l1)

輸出

L1 normalized data is
[[ 0.26312604 0.24133757 -0.49553639]
[-0.16105417 0.0239141 -0.81503172]
[ 0.00372856 -0.65607755 0.34019389]
[ 0.09204368 0.03712949 -0.87082683]]

解釋

  • 匯入所需的包。

  • 使用 Numpy 庫生成輸入資料。

  • 使用 'preprocessing' 類中的 'normalize' 函式來歸一化資料。

  • 將歸一化型別指定為 'l1'。

  • 這樣,陣列中的任何資料都會被歸一化,並且每一行的總和都將僅為 1。

  • 歸一化後的資料將顯示在控制檯上。

更新於:2020-12-11

889 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.