当前位置: 代码迷 >> 综合 >> 连续属性离散化与sklearn.preprocessing.KBinsDiscretizer
  详细解决方案

连续属性离散化与sklearn.preprocessing.KBinsDiscretizer

热度:83   发布时间:2023-12-17 12:07:52.0

1、连续属性离散化

? ?离散化 (Discretization) (有些时候叫 量化(quantization) 或 分箱(binning)) ,是将连续特征划分为离散特征值的方法。 离散化可以把具有连续属性的数据集变换成只有名义属性(nominal attributes)的数据集。

2、K-bins 离散化(分箱)

? ?KBinsDiscretizer 类使用k个等宽的bins把特征离散化:默认情况下,输出是被 one-hot 编码到一个稀疏矩阵。(请看类别特征编码)。 而且可以使用参数encode进行配置。对每一个特征, bin的边界以及总数目在 fit过程中被计算出来,它们将用来定义区间。
在这里插入图片描述

>>> X = np.array([[ -3., 5., 15 ],
...              			 [  0., 6., 14 ],
...          			     [  6., 3., 11 ]])
>>> est = preprocessing.KBinsDiscretizer(n_bins=[3, 2, 2], encode='ordinal').fit(X)
>>> est.transform(X)                      
array([[ 0., 1., 1.],[ 1., 1., 1.],[ 2., 0., 0.]])

? ?指定不同的分箱策略:KBinsDiscretizer类实现了不同的 binning策略,可以通过参数strategy进行选择。 ‘uniform’ 策略使用固定宽度的bins。 ‘quantile’ 策略在每个特征上使用分位数(quantiles)值以便具有相同填充的bins。 ‘kmeans’ 策略基于在每个特征上独立执行的k-means聚类过程定义bins。

  相关解决方案