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


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


用法:

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

將連續數據分檔為區間。

參數

n_binsint 或array-like,形狀(n_features,)(默認值=5)

要生成的 bin 數量。如果 n_bins < 2 則引發 ValueError 。

encode{‘onehot’,'onehot-dense',‘ordinal’},(默認='onehot')

用於對轉換結果進行編碼的方法。

一熱

使用one-hot 編碼對轉換後的結果進行編碼,並返回一個稀疏矩陣。忽略的特征總是堆疊在右側。

onehot-dense

使用one-hot 編碼對轉換後的結果進行編碼,並返回一個密集數組。忽略的特征總是堆疊在右側。

序數

返回編碼為整數值的 bin 標識符。

strategy{‘uniform’, ‘quantile’, ‘kmeans’},(默認='分位數')

用於定義 bin 寬度的策略。

製服

每個要素中的所有 bin 具有相同的寬度。

分位數

每個要素中的所有 bin 具有相同數量的點。

平均數

每個 bin 中的值具有相同的最近的一維 k-means 簇中心。

注意

在特征 i 的 bin 邊中,第一個和最後一個值僅用於 inverse_transform 。在變換期間,bin 邊擴展到:

np.concatenate([-np.inf, bin_edges_[i][1:-1], np.inf])

如果您隻想預處理部分函數,可以將KBinsDiscretizersklearn.compose.ColumnTransformer 結合使用。

KBinsDiscretizer 可能會產生恒定特征(例如,當 encode = 'onehot' 和某些 bin 不包含任何數據時)。可以使用特征選擇算法(例如,sklearn.feature_selection.VarianceThreshold)刪除這些特征。

例子

>>> X = [[-2, 1, -4,   -1],
...      [-1, 2, -3, -0.5],
...      [ 0, 3, -2,  0.5],
...      [ 1, 4, -1,    2]]
>>> est = KBinsDiscretizer(n_bins=3, encode='ordinal', strategy='uniform')
>>> est.fit(X)
KBinsDiscretizer(...)
>>> Xt = est.transform(X)
>>> Xt  
array([[ 0., 0., 0., 0.],
       [ 1., 1., 1., 0.],
       [ 2., 2., 2., 1.],
       [ 2., 2., 2., 2.]])

有時將數據轉換回原始特征空間可能很有用。 inverse_transform 函數將分箱數據轉換為原始特征空間。每個值將等於兩個 bin 邊的平均值。

>>> est.bin_edges_[0]
array([-2., -1.,  0.,  1.])
>>> est.inverse_transform(Xt)
array([[-1.5,  1.5, -3.5, -0.5],
       [-0.5,  2.5, -2.5, -0.5],
       [ 0.5,  3.5, -1.5,  0.5],
       [ 0.5,  3.5, -1.5,  1.5]])

屬性

n_bins_int 數組,形狀(n_features,)

每個特征的 bin 數量。寬度太小(即 <= 1e-8)的 bin 將被刪除並發出警告。

bin_edges_數組數組,形狀 (n_features, )

每個 bin 的邊。包含不同形狀的數組(n_bins_, ) 忽略的特征將有空數組。

相關用法


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