伪变量陷阱,我删除哪个伪列有关系吗



我刚刚了解了伪变量及其陷阱。因此,让我们假设我有一个包含3个类别的分类列,例如:

Dog
Cat
Bear

我把它分成3个独立的列,IsDog、IsCat、IsBear,其中有0/1,所以我可以在我的模型中使用它。但他们说,伪列的数量应该总是(number_of_categories-1(。那么,我应该删除最后一个(在本例中是IsBear(吗?或者这其实没关系,只是随机删除一个?

您可以让Pandas为每个分类列自动执行此操作,如下所示。

请注意,它将自动为新列名加前缀(例如,具有3个类别的分类变量"Dog"将给出两个新列:Dog_1、Dog_2(,并将删除原始列("Dog'"(。使用drop first选项,它将为具有k个类别的列提供k-1个伪列(即,如上所述,根据您的问题,具有3个类别的Dog列将变为2个而不是3个伪列(。

df = pd.get_dummies(df, columns=['cat_var_1', 'cat_var_2'], drop_first=True)

最新更新