Normalizer#

class sklearn.preprocessing.Normalizer(norm='l2', *, copy=True)[原始碼]#

將樣本個別正規化為單位範數。

每個至少有一個非零分量的樣本(即資料矩陣的每一列)會獨立於其他樣本重新縮放,使其範數(l1、l2 或 inf)等於 1。

此轉換器能夠處理密集 NumPy 陣列和 SciPy 稀疏矩陣(如果您想避免複製/轉換的負擔,請使用 CSR 格式)。

將輸入縮放到單位範數是文本分類或聚類等常見操作。 例如,兩個 l2 正規化的 TF-IDF 向量的點積是向量的餘弦相似度,並且是資訊檢索社群常用的向量空間模型的基本相似度量度。

有關範例視覺化,請參閱 比較 Normalizer 與其他縮放器

使用者指南中閱讀更多資訊。

參數:
norm{‘l1’, ‘l2’, ‘max’}, default=’l2’

用於正規化每個非零樣本的範數。 如果使用 norm='max',則值將按絕對值的最大值重新縮放。

copybool, default=True

設定為 False 以執行原地列正規化並避免複製 (如果輸入已經是 NumPy 陣列或 SciPy 稀疏 CSR 矩陣)。

屬性:
n_features_in_int

fit 期間看到的特徵數量。

在版本 0.24 中新增。

feature_names_in_形狀為 (n_features_in_,) 的 ndarray

fit 期間看到的特徵名稱。 僅當 X 具有全為字串的特徵名稱時才定義。

在版本 1.0 中新增。

另請參閱

正規化

不含估算器 API 的等效函數。

註解

此估算器是無狀態的,不需要擬合。 但是,我們建議呼叫 fit_transform 而不是 transform,因為參數驗證僅在 fit 中執行。

範例

>>> from sklearn.preprocessing import Normalizer
>>> X = [[4, 1, 2, 2],
...      [1, 3, 9, 3],
...      [5, 7, 5, 1]]
>>> transformer = Normalizer().fit(X)  # fit does nothing.
>>> transformer
Normalizer()
>>> transformer.transform(X)
array([[0.8, 0.2, 0.4, 0.4],
       [0.1, 0.3, 0.9, 0.3],
       [0.5, 0.7, 0.5, 0.1]])
fit(X, y=None)[原始碼]#

僅驗證估算器的參數。

此方法允許:(i) 驗證估算器的參數,以及 (ii) 與 scikit-learn 轉換器 API 保持一致。

參數:
X形狀為 (n_samples, n_features) 的 {array-like, 稀疏矩陣}

用於估計正規化參數的資料。

y已忽略

不使用,在此處出現是為了符合 API 慣例。

返回:
self物件

已擬合的轉換器。

fit_transform(X, y=None, **fit_params)[原始碼]#

擬合資料,然後轉換它。

使用可選參數 fit_params 將轉換器擬合到 Xy,並返回 X 的轉換版本。

參數:
X形狀為 (n_samples, n_features) 的 array-like

輸入樣本。

y形狀為 (n_samples,) 或 (n_samples, n_outputs) 的 array-like,default=None

目標值(無監督轉換為 None)。

**fit_paramsdict

其他擬合參數。

返回:
X_new形狀為 (n_samples, n_features_new) 的 ndarray 陣列

轉換後的陣列。

get_feature_names_out(input_features=None)[原始碼]#

取得轉換的輸出特徵名稱。

參數:
input_features字串或 None 的 array-like,default=None

輸入特徵。

  • 如果 input_featuresNone,則 feature_names_in_ 會用作輸入特徵名稱。 如果未定義 feature_names_in_,則會產生下列輸入特徵名稱: ["x0", "x1", ..., "x(n_features_in_ - 1)"]

  • 如果 input_features 是 array-like,則如果定義了 feature_names_in_,則 input_features 必須與 feature_names_in_ 相符。

返回:
feature_names_outndarray of str 物件

與輸入特徵相同。

get_metadata_routing()[原始碼]#

取得此物件的中繼資料路由。

請查看使用者指南,以了解路由機制的運作方式。

返回:
routingMetadataRequest

一個封裝路由資訊的 MetadataRequest

get_params(deep=True)[原始碼]#

取得此估算器的參數。

參數:
deepbool,預設值=True

如果為 True,將返回此估算器以及所包含的子物件(為估算器)的參數。

返回:
paramsdict

參數名稱對應到其值的字典。

set_output(*, transform=None)[原始碼]#

設定輸出容器。

請參閱介紹 set_output API,以了解如何使用 API 的範例。

參數:
transform{“default”, “pandas”, “polars”},預設值=None

設定 transformfit_transform 的輸出。

  • "default":轉換器的預設輸出格式

  • "pandas":DataFrame 輸出

  • "polars":Polars 輸出

  • None:轉換設定保持不變

1.4 版新增:新增了 "polars" 選項。

返回:
self估算器實例

估算器實例。

set_params(**params)[原始碼]#

設定此估算器的參數。

此方法適用於簡單的估算器以及巢狀物件(例如Pipeline)。後者具有 <component>__<parameter> 形式的參數,因此可以更新巢狀物件的每個元件。

參數:
**paramsdict

估算器參數。

返回:
self估算器實例

估算器實例。

set_transform_request(*, copy: bool | None | str = '$UNCHANGED$') Normalizer[原始碼]#

請求傳遞給 transform 方法的中繼資料。

請注意,僅當 enable_metadata_routing=True 時,此方法才相關(請參閱sklearn.set_config)。請參閱使用者指南,以了解路由機制的運作方式。

每個參數的選項為

  • True:請求中繼資料,並在提供時傳遞給 transform。如果未提供中繼資料,則忽略請求。

  • False:不請求中繼資料,並且元估算器不會將其傳遞給 transform

  • None:不請求中繼資料,如果使用者提供中繼資料,則元估算器會引發錯誤。

  • str:中繼資料應使用此給定的別名(而不是原始名稱)傳遞給元估算器。

預設值 (sklearn.utils.metadata_routing.UNCHANGED) 會保留現有的請求。這讓您可以變更某些參數的請求,而其他參數則不變。

1.3 版新增。

注意

僅當此估算器用作元估算器的子估算器時(例如,在 Pipeline 內部使用),此方法才相關。否則,它沒有任何作用。

參數:
copystr、True、False 或 None,預設值=sklearn.utils.metadata_routing.UNCHANGED

transformcopy 參數的中繼資料路由。

返回:
self物件

更新後的物件。

transform(X, copy=None)[原始碼]#

將 X 的每個非零列縮放為單位範數。

參數:
X形狀為 (n_samples, n_features) 的 {array-like, 稀疏矩陣}

要標準化的資料,逐行處理。 scipy.sparse 矩陣應使用 CSR 格式,以避免不必要的複製。

copybool,預設為 None

是否複製輸入的 X。

返回:
X_tr形狀為 (n_samples, n_features) 的 {ndarray, 稀疏矩陣}

轉換後的陣列。