如何处理线性回归的虚拟变量的共线性?

时间:2018-02-09 03:33:53

标签: python scikit-learn logistic-regression categorical-data

我在家庭特征数据集上使用scikit-learn LogisticRegression,并尝试了解如何准备自变量。

我已经创建了二进制虚拟变量来代替分类变量。 例如具有3个可能值DWELLING_TYPEDetachedHouseSemiDetached的变量Apartment已替换为3个二元变量DWELLING_TYPE_DetachedHouseDWELLING_TYPE_SemiDetached和DWELLING_TYPE_Apartment { {1}} 1 that each has the value 0`。

显然,这三个变量是共同依赖的(共线?)因为如果其中一个变量是or,则另外两个变量必须是1。我的理解是Logistic回归应该最小化共线性,所以我应该从输入矩阵中省略这些变量之一吗?

1 个答案:

答案 0 :(得分:2)

是。这是一个很好的做法。当您将分类变量转换为虚拟变量时,您可以删除其中一个虚拟变量。它将减少输入功能的冗余。

在python中,您可以使用pd.get_dummies

来完成
pd.get_dummies(df, columns=categorical_columns, drop_first=True)

drop_first 参数设置为 True 将适合您。