ray.data.预处理器.自定义KBins离散器#

class ray.data.preprocessors.CustomKBinsDiscretizer(columns: List[str], bins: Iterable[float] | pandas.IntervalIndex | Dict[str, Iterable[float] | pandas.IntervalIndex], *, right: bool = True, include_lowest: bool = False, duplicates: str = 'raise', dtypes: Dict[str, pandas.CategoricalDtype | Type[numpy.integer]] | None = None)[源代码]#

基类:_AbstractKBinsDiscretizer

使用自定义的边界值将数据分箱到离散区间。

列必须包含数值。

示例

使用 CustomKBinsDiscretizer 来对连续特征进行分箱。

>>> import pandas as pd
>>> import ray
>>> from ray.data.preprocessors import CustomKBinsDiscretizer
>>> df = pd.DataFrame({
...     "value_1": [0.2, 1.4, 2.5, 6.2, 9.7, 2.1],
...     "value_2": [10, 15, 13, 12, 23, 25],
... })
>>> ds = ray.data.from_pandas(df)
>>> discretizer = CustomKBinsDiscretizer(
...     columns=["value_1", "value_2"],
...     bins=[0, 1, 4, 10, 25]
... )
>>> discretizer.transform(ds).to_pandas()
   value_1  value_2
0        0        2
1        1        3
2        1        3
3        2        3
4        2        3
5        1        3

您还可以为每一列指定不同的 bin 边缘。

>>> discretizer = CustomKBinsDiscretizer(
...     columns=["value_1", "value_2"],
...     bins={"value_1": [0, 1, 4], "value_2": [0, 18, 35, 70]},
... )
>>> discretizer.transform(ds).to_pandas()
   value_1  value_2
0      0.0        0
1      1.0        0
2      1.0        0
3      NaN        0
4      NaN        1
5      1.0        1
参数:
  • columns – 要离散化的列。

  • bins – 定义自定义的 bin 边缘。可以是数字的可迭代对象、pd.IntervalIndex 或一个将列映射到其中任意一个的字典。注意,用于 bin 的 pd.IntervalIndex 必须是互不重叠的。

  • right – 指示箱子是否包含最右边的边缘。

  • include_lowest – 指示第一个区间是否应为左闭区间。

  • duplicates – 可以是 ‘raise’ 或 ‘drop’。如果 bin 边缘不唯一,则引发 ValueError 或删除非唯一项。

  • dtypes – 一个可选的字典,将列映射到 pd.CategoricalDtype 对象或 np.integer 类型。如果你不在 dtypes 中包含某一列或将其指定为整数类型,输出的列将由对应于箱的顺序整数组成。如果你使用 pd.CategoricalDtype,输出的列将是一个 pd.CategoricalDtype,其类别被映射到箱。你可以使用 pd.CategoricalDtype(categories, ordered=True) 来保留关于箱顺序的信息。

参见

UniformKBinsDiscretizer

如果你想将数据分到等宽的箱子中。

PublicAPI (alpha): 此API处于alpha阶段,可能在稳定之前发生变化。

方法

deserialize

加载通过 self.serialize() 序列化的原始预处理器。

fit

将此预处理器适配到数据集。

fit_transform

将此预处理器适配到数据集,然后转换数据集。

preferred_batch_format

批处理格式提示上游生产者尝试生成最佳块格式。

serialize

返回此预处理器的字符串序列化表示。

transform

转换给定的数据集。

transform_batch

转换单个批次的数据。