scale#

sklearn.preprocessing.scale(X, *, axis=0, with_mean=True, with_std=True, copy=True)[原始碼]#

沿著任何軸標準化資料集。

將資料中心化至平均值,並按組件縮放到單位變異數。

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

參數:
X形狀為 (n_samples, n_features) 的 {類陣列, 稀疏矩陣}

要中心化和縮放的資料。

axis{0, 1}, default=0

用於計算均值和標準差的軸。如果為 0,則獨立標準化每個特徵,否則(如果為 1)標準化每個樣本。

with_meanbool, default=True

如果為 True,則在縮放之前將資料中心化。

with_stdbool, default=True

如果為 True,則將資料縮放到單位變異數(或等效地,單位標準差)。

copybool, default=True

如果為 False,則嘗試避免複製並就地縮放。這不能保證總是在原地運作;例如,如果資料是具有整數 dtype 的 numpy 陣列,即使使用 copy=False,也會傳回副本。

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

轉換後的資料。

另請參閱

StandardScaler

使用 Transformer API 執行縮放到單位變異數(例如,作為預處理 Pipeline 的一部分)。

注意事項

此實作會拒絕中心化 scipy.sparse 矩陣,因為這會使它們變成非稀疏矩陣,並可能因記憶體耗盡問題而導致程式崩潰。

相反地,預期呼叫者會明確設定 with_mean=False (在這種情況下,只會在 CSC 矩陣的特徵上執行變異數縮放),或者如果他/她預期實體化的密集陣列適合記憶體,則呼叫 X.toarray()

為了避免記憶體複製,呼叫者應該傳遞 CSC 矩陣。

NaN 被視為遺失值:在計算統計資料時忽略,並在資料轉換期間保留。

我們使用標準差的有偏估計量,相當於 numpy.std(x, ddof=0)。請注意,選擇 ddof 不太可能影響模型效能。

有關不同縮放器、轉換器和正規化器的比較,請參閱:比較不同的縮放器對具有離群值的資料的影響

警告

資料洩漏的風險

除非您知道自己在做什麼,否則不要使用 scale。一個常見的錯誤是在將資料分割為訓練集和測試集之前,將其應用於整個資料。這會使模型評估產生偏差,因為資訊會從測試集洩漏到訓練集。一般來說,我們建議在 Pipeline 中使用 StandardScaler,以防止大多數資料洩漏的風險:pipe = make_pipeline(StandardScaler(), LogisticRegression())

範例

>>> from sklearn.preprocessing import scale
>>> X = [[-2, 1, 2], [-1, 0, 1]]
>>> scale(X, axis=0)  # scaling each column independently
array([[-1.,  1.,  1.],
       [ 1., -1., -1.]])
>>> scale(X, axis=1)  # scaling each row independently
array([[-1.37...,  0.39...,  0.98...],
       [-1.22...,  0.     ,  1.22...]])