虚拟变量陷阱,我删除哪个虚拟列有关系吗?

时间:2020-03-18 15:51:08

标签: python pandas data-science dummy-variable

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

Dog
Cat
Bear

我将其分为3个单独的列,分别为IsDog,IsCat和IsBear,其中包含0/1,因此可以在模型中使用它。但他们说,虚拟列的数量应始终为(number_of_categories-1)。 那么我应该删除最后一个(在本例中为IsBear),还是实际上没关系,只需删除随机的一个?

1 个答案:

答案 0 :(得分:1)

对于每个类别列,您都可以让熊猫自动为您完成此操作,

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

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