MinMaxScaler#

class sklearn.preprocessing.MinMaxScaler(feature_range=(0, 1), *, copy=True, clip=False)[原始碼]#

透過將每個特徵縮放到給定範圍來轉換特徵。

此估算器會單獨縮放並轉換每個特徵,使其在訓練集上處於給定範圍內,例如介於零和一之間。

轉換公式為:

X_std = (X - X.min(axis=0)) / (X.max(axis=0) - X.min(axis=0))
X_scaled = X_std * (max - min) + min

其中 min, max = feature_range。

此轉換通常用作零均值、單位變異數縮放的替代方案。

MinMaxScaler 不會減少離群值的影響,而是將它們線性縮放到一個固定範圍,其中最大的數據點對應到最大值,最小的數據點對應到最小值。如需視覺化範例,請參考比較 MinMaxScaler 與其他縮放器

請在使用者指南中閱讀更多內容。

參數:
feature_rangetuple (min, max), default=(0, 1)

轉換後資料的目標範圍。

copybool, default=True

設定為 False 可執行原地列正規化並避免複製(如果輸入已經是 NumPy 陣列)。

clipbool, default=False

設定為 True 可將保留資料的轉換值剪輯到提供的 feature range

在版本 0.24 中新增。

屬性:
min_形狀為 (n_features,) 的 ndarray

每個特徵的最小值調整。相當於 min - X.min(axis=0) * self.scale_

scale_形狀為 (n_features,) 的 ndarray

每個特徵的資料相對縮放。相當於 (max - min) / (X.max(axis=0) - X.min(axis=0))

在版本 0.17 中新增: scale_ 屬性。

data_min_形狀為 (n_features,) 的 ndarray

資料中看到的每個特徵的最小值

在版本 0.17 中新增: data_min_

data_max_形狀為 (n_features,) 的 ndarray

資料中看到的每個特徵的最大值

在版本 0.17 中新增: data_max_

data_range_形狀為 (n_features,) 的 ndarray

資料中看到的每個特徵範圍 (data_max_ - data_min_)

在版本 0.17 中新增: data_range_

n_features_in_int

fit期間看到的特徵數量。

在版本 0.24 中新增。

n_samples_seen_int

估算器處理的樣本數量。它會在新的 fit 呼叫時重置,但會在 partial_fit 呼叫中遞增。

feature_names_in_形狀為 (n_features_in_,) 的 ndarray

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

在版本 1.0 中新增。

另請參閱

minmax_scale

沒有估算器 API 的等效函數。

註解

NaN 被視為缺失值:在 fit 中忽略,並在 transform 中保留。

範例

>>> from sklearn.preprocessing import MinMaxScaler
>>> data = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]]
>>> scaler = MinMaxScaler()
>>> print(scaler.fit(data))
MinMaxScaler()
>>> print(scaler.data_max_)
[ 1. 18.]
>>> print(scaler.transform(data))
[[0.   0.  ]
 [0.25 0.25]
 [0.5  0.5 ]
 [1.   1.  ]]
>>> print(scaler.transform([[2, 2]]))
[[1.5 0. ]]
fit(X, y=None)[原始碼]#

計算稍後縮放要使用的最小值和最大值。

參數:
X形狀為 (n_samples, n_features) 的類陣列

用於計算每個特徵最小值和最大值的資料,這些值將用於稍後沿著特徵軸進行縮放。

yNone

忽略。

回傳值:
selfobject

已擬合的縮放器。

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

擬合資料,然後轉換它。

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

參數:
X形狀為 (n_samples, n_features) 的類陣列

輸入樣本。

y形狀為 (n_samples,) 或 (n_samples, n_outputs) 的類陣列,default=None

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

**fit_paramsdict

額外的擬合參數。

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

轉換後的陣列。

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

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

參數:
input_featuresstr 或 None 的類陣列,default=None

輸入特徵。

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

  • 如果 input_features 是類陣列,則如果已定義 feature_names_in_input_features 必須與 feature_names_in_ 相符。

回傳值:
feature_names_outstr 物件的 ndarray

與輸入特徵相同。

get_metadata_routing()[原始碼]#

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

請查閱使用者指南,瞭解路由機制如何運作。

回傳值:
routingMetadataRequest

一個封裝路由資訊的 MetadataRequest

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

取得此估算器的參數。

參數:
deepbool,預設值=True

如果為 True,將會傳回此估算器及其包含的子物件(也是估算器)的參數。

回傳值:
paramsdict

參數名稱對應到它們的值。

inverse_transform(X)[原始碼]#

根據 feature_range 還原 X 的縮放。

參數:
X形狀為 (n_samples, n_features) 的類陣列

將被轉換的輸入資料。它不能是稀疏的。

回傳值:
Xt形狀為 (n_samples, n_features) 的 ndarray

轉換後的資料。

partial_fit(X, y=None)[原始碼]#

在 X 上線上計算最小值和最大值,以便後續縮放。

所有 X 都會以單一批次處理。這適用於以下情況:當因為 n_samples 數量非常龐大,或是 X 從連續串流讀取時,fit 不可行。

參數:
X形狀為 (n_samples, n_features) 的類陣列

用於計算後續沿著特徵軸進行縮放的平均值和標準差的資料。

yNone

忽略。

回傳值:
selfobject

已擬合的縮放器。

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估算器實例

估算器實例。

transform(X)[原始碼]#

根據 feature_range 縮放 X 的特徵。

參數:
X形狀為 (n_samples, n_features) 的類陣列

將被轉換的輸入資料。

回傳值:
Xt形狀為 (n_samples, n_features) 的 ndarray

轉換後的資料。