具有太多值的列

Chemical_engChemical_eng 成员职位:16因素二世
你好。

我使用autommodel的回归问题(我的目标是连续的)。我有3个输入参数它们都有分类值。其中一个有27个值,另一个有16个值,另一个有107个值。我已经关闭了“删除有太多值的列”的选项。这是否确保对包含107个值的列正确执行单热编码?

在广义线性模型中,对于不同的类别我对很多类别都有系数0,这意味着什么,它没有影响吗?

谢谢
标记:

最佳答案

  • yyhuangyyhuang 管理员,员工,RapidMiner认证分析师,RapidMiner认证专家,成员职位:363RM数据科学家
    2022年6月编辑 解决方案接受
    @Chemical_eng

    感谢您分享您使用AutoML解决回归问题的经验。
    我已经关闭了“删除有太多值的列”的选项。这是否确保对包含107个值的列正确执行单热编码?
    是也不是。RapidMiner AutoML默认使用“目标编码”来删除值太多且不执行编码的属性。然而,GLM算法本身将通过单热编码(内部)直接处理分类列。对于GLM,您不必事先将标称转换为数值。我们强烈建议避免将任意级别的分类列编码为许多二进制列,因为这样效率非常低。这就是为什么我们在GLM内部单热编码之前执行目标编码。

    我在AutoML中测试了泰坦尼克号的数据来预测乘客票价。
    在这里打开流程

    在Design视图中,您可以找到处理名义属性的操作符(另一个提示,激活Tree视图)。在这里。

    在子过程“Basic Feature Engineering”中,您可以找到“Target Encoding”,而不是我的示例中所示的一个热编码。如果打开“Remove cloumns with too many values”并将最大值设置为10,则Target编码模型将删除属性“Life boat”,但默认情况下不会进行编码。在这里,您可以通过替换为one-hot编码操作符来定制它。


    在广义线性模型中,对于不同的类别我对很多类别都有系数0,这意味着什么,它没有影响吗?
    GLM中的“正则化”往往是导致零系数过多的原因。简单地说,就是利用正则化来减少模型中预测因子的数量,减少预测误差的方差,处理相关预测因子,避免过拟合。https://en.wikipedia.org/wiki/Regularization_(数学)

    同样,在流程视图中,您可以关闭正则化选项。

    希望能有所帮助。

    欢呼,
    YY

    lionelderkrikor

答案

  • Chemical_engChemical_eng 成员职位:16因素二世
    非常感谢你的回答


  • Chemical_engChemical_eng 成员职位:16因素二世
    我执行了这个过程,但是当我打开模型模拟器操作器结果时,它向我显示了每个类别的一个输入变量(就像它留下了编码)…这不是我想要的
  • yyhuangyyhuang 管理员,员工,RapidMiner认证分析师,RapidMiner认证专家,成员职位:363RM数据科学家
    谢谢你!@Chemical_eng!来自AutoML的模型模拟器将使用GLM处理的单热编码之前的数据。

    如屏幕截图所示,我们有一个分类变量中所有可能值的下拉列表。

    如果你有时间跟进,我可以快速打电话告诉你细节。

  • Chemical_engChemical_eng 成员职位:16因素二世
    是的,我想有一个呼叫,因为更新到一个热编码后,我的模拟器不显示它。我们该如何安排呢?谢谢
登录注册置评。