當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python cuml.experimental.preprocessing.StandardScaler用法及代碼示例


用法:

class cuml.experimental.preprocessing.StandardScaler(*args, **kwargs)

通過去除均值和縮放到單位方差來標準化特征

樣本x 的標準分數計算如下:

z = (x - u) /s

其中 u 是訓練樣本的平均值,如果 with_mean=False 則為零,而 s 是訓練樣本的標準差,如果 with_std=False 則為 1。

通過計算訓練集中樣本的相關統計數據,居中和縮放在每個特征上獨立發生。然後使用 transform() 存儲平均值和標準偏差以用於以後的數據。

數據集的標準化是許多機器學習估計器的共同要求:如果單個特征或多或少看起來不像標準正態分布數據(例如,均值和單位方差為 0 的高斯),它們可能表現不佳。

例如,學習算法的目標函數中使用的許多元素(例如支持向量機的 RBF 核或線性模型的 L1 和 L2 正則化器)假設所有特征都以 0 為中心並且具有相同順序的方差。如果一個特征的方差比其他特征大幾個數量級,它可能會主導目標函數並使估計器無法按預期正確地從其他特征中學習。

這個縮放器也可以通過傳遞with_mean=False 應用於稀疏 CSR 或 CSC 矩陣,以避免破壞數據的稀疏結構。

參數

copy布爾值,可選,默認 True

是否會觸發強製複製。如果 copy=False,則可能會通過轉換觸發複製。

with_mean布爾值,默認為真

如果為 True,則在縮放之前將數據居中。當嘗試在稀疏矩陣上時,這不起作用(並且會引發異常),因為將它們居中需要構建一個密集矩陣,在常見的用例中,它可能太大而無法放入內存。

with_std布爾值,默認為真

如果為 True,則將數據縮放到單位方差(或等效地,單位標準差)。

注意

NaNs 被視為缺失值:在擬合中忽略,並在變換中保持。

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

例子

>>> from cuml.preprocessing import StandardScaler
>>> data = [[0, 0], [0, 0], [1, 1], [1, 1]]
>>> scaler = StandardScaler()
>>> print(scaler.fit(data))
StandardScaler()
>>> print(scaler.mean_)
[0.5 0.5]
>>> print(scaler.transform(data))
[[-1. -1.]
 [-1. -1.]
 [ 1.  1.]
 [ 1.  1.]]
>>> print(scaler.transform([[2, 2]]))
[[3. 3.]]

屬性

scale_ndarray 或無,形狀(n_features,)

數據的每個特征相對縮放。這是使用 sqrt(var_) 計算的。當 with_std=False 時等於 None

mean_ndarray 或無,形狀(n_features,)

訓練集中每個特征的平均值。當 with_mean=False 時等於 None

var_ndarray 或無,形狀(n_features,)

訓練集中每個特征的方差。用於計算 scale_ 。當 with_std=False 時等於 None

n_samples_seen_int 或數組,形狀(n_features,)

估計器為每個特征處理的樣本數。如果沒有缺失樣本,n_samples_seen 將是一個整數,否則它將是一個數組。將在新調用時重置以適應,但在 partial_fit 調用中遞增。

相關用法


注:本文由純淨天空篩選整理自rapids.ai大神的英文原創作品 cuml.experimental.preprocessing.StandardScaler。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。