样本转换

RecIS 支持在IO模块进行数据预处理。通常用来生成特征,或特征格式转换。

非结构化压缩特征处理

# 取出结果中,非结构化压缩的列(非结构化压缩必要行为)
transform_fn = lambda x: x[0]

dataset = OdpsDataset(
    # ..., 其他参数定义
    transform_fn=transform_fn, # 传入数据转换方法
)

嵌套转换与特征拷贝

def make_copy_features(copy_map):
    def copy_features(x):
        for src, dst in copy_map.items():
            if feat.get(src, None) is not None:
                x[feat[dst]] = x[feat[src]].clone()
        return x
    return copy_features

# copy_map 拷贝配置
# 嵌套的转换特征,先取出非结构化压缩特征,然后进行特征拷贝
transform_fn = [lambda x: x[0], make_copy_features(copy_map)]

dataset = OdpsDataset(
    # ..., 其他参数定义
    transform_fn=transform_fn, # 传入数据转换方法
)

注意:不要通过该方法做Hash Bucketize等操作,这些操作在Feature Engine中定义才会享受到优化加速。