我在家庭特征数据集上使用scikit-learn
LogisticRegression
,并尝试了解如何准备自变量。
我已经创建了二进制虚拟变量来代替分类变量。
例如具有3个可能值DWELLING_TYPE
,DetachedHouse
和SemiDetached
的变量Apartment
已替换为3个二元变量DWELLING_TYPE_DetachedHouse
,DWELLING_TYPE_SemiDetached
和DWELLING_TYPE_Apartment { {1}} 1 that each has the value
0`。
显然,这三个变量是共同依赖的(共线?)因为如果其中一个变量是or
,则另外两个变量必须是1
。我的理解是Logistic回归应该最小化共线性,所以我应该从输入矩阵中省略这些变量之一吗?
答案 0 :(得分:2)
是。这是一个很好的做法。当您将分类变量转换为虚拟变量时,您可以删除其中一个虚拟变量。它将减少输入功能的冗余。
在python中,您可以使用pd.get_dummies
pd.get_dummies(df, columns=categorical_columns, drop_first=True)
将 drop_first 参数设置为 True 将适合您。