当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python cuml.preprocessing.TargetEncoder.TargetEncoder用法及代码示例


用法:

class cuml.preprocessing.TargetEncoder.TargetEncoder(n_folds=4, smooth=0, seed=42, split_method='interleaved', output_type='auto')

基于 cudf 的目标编码实现 [1] ,它将一个或多个分类变量“Xs”与目标变量“Y”的对应值的平均值进行转换。输入数据按列 Xs 分组,并计算每个组的 Y 的聚合平均值以替换 Xs 的每个值。应用了一些优化来防止标签泄漏和并行执行。

参数

n_foldsint(默认=4)

拟合训练数据的默认折叠数。为了防止 fit 中的标签泄漏,我们将数据拆分为 n_folds 并使用剩余折叠的目标变量对一个折叠进行编码。

smoothint 或浮点数(默认值=0)

用于平滑编码的样本计数。 0 表示没有平滑。

seedint(默认=42)

随机种子

split_method{‘random’, ‘continuous’, ‘interleaved’},

default='interleaved' 将训练数据拆分为 n_folds 的方法。 ‘random’:随机拆分。 ‘continuous’:连续的样本被分成一个折叠。 ‘interleaved’:样本以循环方式分配给每个折叠。 ‘customize’:通过提供 fold_ids 数组来自定义拆分

fit()fit_transform() 函数中。

output_type: {‘cupy’, ‘numpy’, ‘auto’}, default = ‘auto’

输出的数据类型。如果‘auto’,它匹配输入数据。

参考

1

https://maxhalford.github.io/blog/target-encoding/

例子

将分类实现转换为数字实现

from cudf import DataFrame, Series

train = DataFrame({'category': ['a', 'b', 'b', 'a'],
                   'label': [1, 0, 1, 1]})
test = DataFrame({'category': ['a', 'c', 'b', 'a']})

encoder = TargetEncoder()
train_encoded = encoder.fit_transform(train.category, train.label)
test_encoded = encoder.transform(test.category)
print(train_encoded)
print(test_encoded)

输出:

[1. 1. 0. 1.]
[1.   0.75 0.5  1.  ]

相关用法


注:本文由纯净天空筛选整理自rapids.ai大神的英文原创作品 cuml.preprocessing.TargetEncoder.TargetEncoder。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。