composeml.LabelTimes.bin

LabelTimes.bin(bins, quantiles=False, labels=None, right=True, precision=3)[source]

将标签分箱到离散区间。

参数
  • bins (intarray) – 分箱的标准。如果为整数,则该值可以是等宽分箱或基于分位点分箱的数量。如果 quantiles 为 False,该值被定义为等宽分箱的数量。范围在每侧扩展 .1% 以包含最小值和最大值。如果 quantiles 为 True,该值被定义为分位点的数量(例如,10 表示十分位数,4 表示四分位数等)。如果为数组,则该值可以是自定义或基于分位点的边界。如果 quantiles 为 False,该值被定义为允许非均匀宽度的分箱边界。不进行扩展。如果 quantiles 为 True,该值被定义为使用分位点数组的分箱边界(例如,[0, .25, .5, .75, 1.] 表示四分位数)。

  • quantiles (bool) – 确定是否使用基于分位点的离散化函数。

  • labels (array) – 指定返回的分箱的标签。必须与结果分箱的长度相同。

  • right (bool) – 指示分箱是否包含最右边的边界。不适用于基于分位点的分箱。

  • precision (int) – 存储和显示分箱标签的精度。默认值为 3。

返回值

标签实例。

返回类型

LabelTimes

示例

这些是示例的目标值。

>>> data = [226.93, 47.95, 283.46, 31.54]
>>> lt = LabelTimes({'target': data})
>>> lt
   target
0  226.93
1   47.95
2  283.46
3   31.54

使用等宽分箱。

>>> lt.bin(2)
            target
0  (157.5, 283.46]
1  (31.288, 157.5]
2  (157.5, 283.46]
3  (31.288, 157.5]

使用自定义宽度分箱。

>>> lt.bin([0, 200, 400])
       target
0  (200, 400]
1    (0, 200]
2  (200, 400]
3    (0, 200]

使用无限边界分箱。

>>> lt.bin(['-inf', 100, 'inf'])
          target
0   (100.0, inf]
1  (-inf, 100.0]
2   (100.0, inf]
3  (-inf, 100.0]

使用四分位数分箱。

>>> lt.bin(4, quantiles=True)
                         target
0             (137.44, 241.062]
1              (43.848, 137.44]
2             (241.062, 283.46]
3  (31.538999999999998, 43.848]

使用自定义分位点并指定精度分箱。

>>> lt.bin([0, .5, 1], quantiles=True, precision=1)
           target
0  (137.4, 283.5]
1   (31.4, 137.4]
2  (137.4, 283.5]
3   (31.4, 137.4]

为分箱分配标签。

>>> lt.bin(2, labels=['low', 'high'])
  target
0   high
1    low
2   high
3    low