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.  ]])