当您对分类变量进行单热编码时,通常会在建模之前删除其中一个变量。这样,您就没有与其他功能线性相关的冗余功能。
有没有办法指定不应该用于拟合的分类变量的级别?
来自the documentation: “我们强烈建议避免将任意级别的单一列分类列入许多二进制列,因为效率非常低。对于习惯于为其他框架手动扩展分类变量的Python用户来说尤其如此。
答案 0 :(得分:0)
简短的回答是“不”:你把这个决定留给了H2O,所以它可以有效地做到。 section just after the one you linked to解释了原因:
当GLM执行回归(使用因子列)时,可以省略一个类别以避免多重共线性。如果禁用正则化(lambda = 0),则省略一个类别。但是,使用默认的lambda参数时,会包含所有类别。
正则化的不同行为的原因是共线性不是正则化的问题。最好让正则化来找出忽略哪个级别(或如何在级别之间分配系数)。
另外,似乎所有其他算法都允许控制分类编码: http://docs.h2o.ai/h2o/latest-stable/h2o-docs/data-science/algo-params/categorical_encoding.html