为什么我们需要丢弃一个虚拟变量?

数据挖掘 机器学习 回归 分类数据
2021-09-21 23:13:40

我了解到,为了创建回归模型,我们必须通过将分类变量转换为虚拟变量来处理它们。例如,如果在我们的数据集中,有一个像 location 这样的变量:

Location 
----------
Californian
NY
Florida

我们必须将它们转换为:

1  0  0
0  1  0
0  0  1

然而,有人建议我们必须丢弃一个虚拟变量,无论有多少虚拟变量。

为什么我们需要丢弃一个虚拟变量?

2个回答

简单地说,因为您的分类特征的一个级别(此处的位置)在回归的虚拟编码期间成为参考组并且是多余的。我在这里引用表格“K 个类别或级别的分类变量通常作为 K-1 个虚拟变量的序列进入回归。这相当于水平均值的线性假设。”

这已经在这个非常好的stats.stackexchange 答案中讨论过了。

有人告诉我,如果您仍有疑问,Yandex 在 Coursera 中有一个高级课程更详细地介绍了该主题,请参阅此处请注意,您始终可以免费审核课程内容。;-)

另一个不错的帖子,如果您想通过大量具有统计角度的示例进行详尽的解释,而不仅限于虚拟编码,请参阅UCLA (in R)

请注意,如果您使用pandas.get_dummies,则有一个参数 iedrop_first以便通过删除第一级是否从 k 个分类级别中获取 k-1 个虚拟对象。请注意default = False,这意味着不会删除参考,并且会从 k 个分类级别创建 k 个虚拟对象!

不需要降低级别,具体取决于您的用例。

请参阅
在哪些情况下我们不应该删除第一级分类变量?
以及更普遍的问题
在监督学习中,为什么拥有相关特征是不好的?