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
將轉換器擬合到X
和y
,並回傳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_features
為None
,則會使用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
設定
transform
和fit_transform
的輸出。"default"
:轉換器的預設輸出格式"pandas"
:DataFrame 輸出"polars"
:Polars 輸出None
:轉換組態未變更
在 1.4 版中新增:新增
"polars"
選項。
- 回傳值:
- self估算器實例
估算器實例。