当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。