ray.data.预处理器.分类器#

class ray.data.preprocessors.Categorizer(columns: List[str], dtypes: Dict[str, pandas.CategoricalDtype] | None = None)[源代码]#

基类:Preprocessor

将列转换为 pd.CategoricalDtype

将此预处理器与具有内置 pd.CategoricalDtype 支持的框架(如 LightGBM)一起使用。

警告

如果你没有指定 dtypes,请在将数据集分割为训练集和测试集之前使用此预处理器。这确保了类别在分割之间保持一致。

示例

>>> import pandas as pd
>>> import ray
>>> from ray.data.preprocessors import Categorizer
>>>
>>> df = pd.DataFrame(
... {
...     "sex": ["male", "female", "male", "female"],
...     "level": ["L4", "L5", "L3", "L4"],
... })
>>> ds = ray.data.from_pandas(df)  
>>> categorizer = Categorizer(columns=["sex", "level"])
>>> categorizer.fit_transform(ds).schema().types  
[CategoricalDtype(categories=['female', 'male'], ordered=False), CategoricalDtype(categories=['L3', 'L4', 'L5'], ordered=False)]

如果你事先知道分类,你可以使用 dtypes 参数来指定分类。

>>> categorizer = Categorizer(
...     columns=["sex", "level"],
...     dtypes={"level": pd.CategoricalDtype(["L3", "L4", "L5", "L6"], ordered=True)},
... )
>>> categorizer.fit_transform(ds).schema().types  
[CategoricalDtype(categories=['female', 'male'], ordered=False), CategoricalDtype(categories=['L3', 'L4', 'L5', 'L6'], ordered=True)]
参数:
  • columns – 要转换为 pd.CategoricalDtype 的列。

  • dtypes – 一个可选的字典,将列映射到 pd.CategoricalDtype 对象。如果你不在 dtypes 中包含某一列,类别将被推断。

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

方法

deserialize

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

fit

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

fit_transform

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

preferred_batch_format

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

serialize

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

transform

转换给定的数据集。

transform_batch

转换单个批次的数据。