我是否需要在回归中手动处理虚拟变量陷阱,否则sklearn会这样做?

时间:2018-06-05 11:37:28

标签: machine-learning dummy-variable one-hot-encoding

我知道在训练机器学习算法之前我们必须对分类数据进行单热编码。但我的问题是我们需要手动删除一列还是sklearn会这样做?

3 个答案:

答案 0 :(得分:1)

我假设您还要为非二进制分类功能删除一列,以避免多重共线性,这可能会导致线性模型出现问题。它就像向drop_first=True提供pd.get_dummies()参数一样简单。似乎sklearn.preprocessing.OneHotEncoder没有简单的界面来执行此操作,无论如何它的用法很复杂,因为必须事先将分类要素编码到int中。

答案 1 :(得分:0)

您需要在回归中手动处理虚拟变量陷阱。 我们需要手动删除一列。

答案 2 :(得分:-2)

删除nunique计数大于2的列是没有意义的。因为每列都代表一个虚拟变量的实例。我假设你是一个热门编码二进制特色列。相反,请使用sklearn的标签编码器。