minmax_scale#
- sklearn.preprocessing.minmax_scale(X, feature_range=(0, 1), *, axis=0, copy=True)[原始碼]#
通過將每個特徵縮放到給定範圍來轉換特徵。
此估計器會單獨縮放和平移每個特徵,使其在訓練集上處於給定範圍內,即介於零和一之間。
轉換公式為(當
axis=0
時)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。
轉換計算方式如下(當
axis=0
時)X_scaled = scale * X + min - X.min(axis=0) * scale where scale = (max - min) / (X.max(axis=0) - X.min(axis=0))
此轉換通常用作零均值、單位變異數縮放的替代方案。
請在使用者指南中閱讀更多資訊。
在 0.17 版本中新增: minmax_scale 函數介面至
MinMaxScaler
。- 參數:
- X形狀為 (n_samples, n_features) 的類陣列
資料。
- feature_range元組 (min, max),預設=(0, 1)
轉換後資料的期望範圍。
- axis{0, 1},預設值=0
縮放時使用的軸。若為 0,則獨立縮放每個特徵;若為 1,則縮放每個樣本。
- copybool,預設值=True
若為 False,則嘗試避免複製並就地縮放。這並非保證總是能就地進行;例如,若資料為 int dtype 的 numpy 陣列,即使 copy=False,仍會回傳一個副本。
- 回傳值:
- X_tr形狀為 (n_samples, n_features) 的 ndarray
轉換後的資料。
警告
資料洩漏風險:除非您清楚自己在做什麼,否則請勿使用
minmax_scale
。常見的錯誤是在將資料分成訓練集和測試集之前,將其應用於整個資料集。這會使模型評估產生偏差,因為資訊會從測試集洩漏到訓練集。一般而言,我們建議在 Pipeline 中使用MinMaxScaler
,以防止大多數的資料洩漏風險:pipe = make_pipeline(MinMaxScaler(), LogisticRegression())
。
另請參閱
MinMaxScaler (最小最大值縮放器)
使用 Transformer API 執行縮放到給定範圍的操作(例如,作為預處理
Pipeline
的一部分)。
註解
如需比較不同的縮放器、轉換器和正規化器,請參閱:比較不同縮放器對含有離群值的資料的影響。
範例
>>> from sklearn.preprocessing import minmax_scale >>> X = [[-2, 1, 2], [-1, 0, 1]] >>> minmax_scale(X, axis=0) # scale each column independently array([[0., 1., 1.], [1., 0., 0.]]) >>> minmax_scale(X, axis=1) # scale each row independently array([[0. , 0.75, 1. ], [0. , 0.5 , 1. ]])