使用 embedd 在 tidymodels 框架中进行目标编码
我想对级别太多的分类变量进行目标编码。
我看过这个 vignette ,它提出了以下方法来对变量进行目标编码:
step_lencode_glm()
step_lencode_bayes()
step_lencode_mixed()
这三种方法使用所有记录来创建估计,其中往往会过度拟合该列。
使用 tidymodels,有没有一种简单的方法可以将我的训练集分割为 5 倍,并从其他 4 倍中获取目标编码?
谢谢
I would like to do target encoding for a categorical variable with too many levels.
I have seen this vignette , which proposes the following approach to target encode a variable:
step_lencode_glm()
step_lencode_bayes()
step_lencode_mixed()
The three approaches use all the records to create the estimates, which tends to overfit to that column.
Using tidymodels, is there an easy way to split my training set 5 folds and get the target encoding from the other 4 folds?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您使用像
fit_resamples()
这样的函数,这正是会发生的情况;您将获得拟合n - 1
折叠并评估最后折叠的性能估计值。如果您想更详细地探索这一点,您可以按照此小插图进行操作。
由 reprex 软件包 (v2.0.1) 于 2022 年 2 月 22 日创建
建议像这样重新采样来估计嵌入策略的性能,然后使用整个训练集来适应最终的嵌入。
That is exactly what will happen if you use a function like
fit_resamples()
; you will get an estimate for performance from fitting ton - 1
folds and evaluating on the last fold.If you want to explore this in more detail, you can follow along with this vignette.
Created on 2022-02-22 by the reprex package (v2.0.1)
We would recommend resampling like this to estimate the performance of an embedding strategy, and then the whole training set to fit the final embedding.