特征定义

详细API文档: recis.features.feature.Feature

常见特征定义

输入原始String,直接Hash处理

原始输入的特征数据类型为String;且没有在dataset中做hash,并开启 trans_int8 = True.

# fea_in_name 特征输入名
# fea_out_name 特征输出名
# hash_type hash类型
# hash_bucket_size 特征hash桶大小

fea_conf = Feature(fea_out_name).add_op(
    SelectField(fea_in_name)
)
fea_conf = fea_conf.add_op(Hash(hash_type))
if hash_bucket_size > 0:
    fea_conf = fea_conf.add_op(Mod(hash_bucket_size))

ID特征取模

原始输入的特征数据类型为Int 或原始输入的特征数据类型为String,且已经在dataset中做hash。

# fea_in_name 特征输入名
# fea_out_name 特征输出名
# hash_bucket_size 特征hash桶大小

fea_conf = Feature(fea_out_name).add_op(
    SelectField(fea_in_name)
)
if hash_bucket_size > 0:
    fea_conf = fea_conf.add_op(Mod(hash_bucket_size))

数值特征分桶

原始输入的特征数据类型为Float

# fea_in_name 特征输入名
# fea_out_name 特征输出名
# dim 特征输入维度
# boundaries 特征桶边界值

fea_conf = Feature(fea_out_name).add_op(
    SelectField(fea_in_name, dim=dim)
)
fea_conf = fea_conf.add_op(Bucketize(boundaries))

MultiHash

String类型特征的Multihash

原始输入的特征数据类型为String;且没有在dataset中做hash,并开启 trans_int8 = True.

# fea_in_name 特征输入名
# fea_out_name 特征输出名
# hash_type hash类型
# hash_bucket_size 特征hash桶大小
# num_buckets multihash的4次hash分桶数
# prefix multihash的4次hash前缀

fea_conf = Feature(fea_out_name).add_op(
    SelectField(fea_in_name)
)
fea_conf = fea_conf.add_op(Hash(hash_type))
if hash_bucket_size > 0:
    fea_conf = fea_conf.add_op(Mod(hash_bucket_size))
fea_conf = fea_conf.add_op(IDMultiHash(num_buckets, prefix))

ID类型特征的Multihash

原始输入的特征数据类型为Int 或原始输入的特征数据类型为String,且已经在dataset中做hash。

# fea_in_name 特征输入名
# fea_out_name 特征输出名
# hash_bucket_size 特征hash桶大小
# num_buckets multihash的4次hash分桶数
# prefix multihash的4次hash前缀

fea_conf = Feature(fea_out_name).add_op(
    SelectField(fea_in_name)
)
if hash_bucket_size > 0:
    fea_conf = fea_conf.add_op(Mod(hash_bucket_size))
fea_conf = fea_conf.add_op(IDMultiHash(num_buckets, prefix))

序列截断

# seq_length 序列长度
# dtype 序列截断前数据类型

fea_conf = fea_conf.add_op(
    SequenceTruncate(
        seq_len=seq_length,
        truncate=True,
        truncate_side="right",
        check_length=False,
        n_dims=3,
        dtype=dtype,
    )
)