ray.data.预处理器.OneHotEncoder#
- class ray.data.preprocessors.OneHotEncoder(columns: List[str], *, max_categories: Dict[str, int] | None = None)[源代码]#
基类:
Preprocessor独热编码 分类数据。
此预处理器为
{column}中的每个唯一{category}创建一个名为{column}_{category}的列。如果类别匹配,则列的值为 1,否则为 0。如果你编码一个不常见的类别(见
max_categories)或一个不在拟合数据集中的类别,那么该类别将被编码为全0。列必须包含可哈希对象或可哈希对象的列表。
备注
列表被视为类别。如果你想编码单个列表元素,请使用
MultiHotEncoder。示例
>>> import pandas as pd >>> import ray >>> from ray.data.preprocessors import OneHotEncoder >>> >>> df = pd.DataFrame({"color": ["red", "green", "red", "red", "blue", "green"]}) >>> ds = ray.data.from_pandas(df) >>> encoder = OneHotEncoder(columns=["color"]) >>> encoder.fit_transform(ds).to_pandas() color_blue color_green color_red 0 0 0 1 1 0 1 0 2 0 0 1 3 0 0 1 4 1 0 0 5 0 1 0
如果你对一个不在拟合数据集中的值进行独热编码,那么该值将被编码为零。
>>> df = pd.DataFrame({"color": ["yellow"]}) >>> batch = ray.data.from_pandas(df) >>> encoder.transform(batch).to_pandas() color_blue color_green color_red 0 0 0 0
同样地,如果你对一个不常见的值进行独热编码,那么该值将被编码为零。
>>> encoder = OneHotEncoder(columns=["color"], max_categories={"color": 2}) >>> encoder.fit_transform(ds).to_pandas() color_red color_green 0 1 0 1 0 1 2 1 0 3 1 0 4 0 0 5 0 1
- 参数:
columns – 要单独编码的列。
max_categories – 每个列创建特征的最大数量。如果未为某一列指定值,则将为该列中的每个类别创建一个特征。
参见
MultiHotEncoder如果你想编码单个列表元素,请使用
MultiHotEncoder。OrdinalEncoder如果你的类别是有序的,你可能想使用
OrdinalEncoder。
PublicAPI (alpha): 此API处于alpha阶段,可能在稳定之前发生变化。
方法
加载通过
self.serialize()序列化的原始预处理器。将此预处理器适配到数据集。
将此预处理器适配到数据集,然后转换数据集。
批处理格式提示上游生产者尝试生成最佳块格式。
返回此预处理器的字符串序列化表示。
转换给定的数据集。
转换单个批次的数据。