one-hot编码可能给数据带来大问题。
当使用one-hot编码类别数据时,不知不觉间,我们给数据引入一个问题:多重共线性。
当可以通过两个或更多特征预测另一个特征时,就会出现多重共线性。
在使用one-hot编码时,由于独热编码特征的总和总是为1,这导致了完全的多重共线性。
这通常被称为虚拟变量陷阱。这是有害的,因为模型存在冗余特征。此外,在存在多重共线性的情况下,回归系数的可靠性也会受到影响。
假设我们有以下数据:
房间数(Rooms) | 房龄(Age) | 房子总面积(Size) | 房价(Price) |
---|---|---|---|
3 | 10 | 120 | 300,000 |
4 | 15 | 160 | 400,000 |
5 | 8 | 200 | 500,000 |
6 | 20 | 240 | 600,000 |
假设我们想要通过线性回归来预测房价(Price),模型的形式为:
在这个例子中,房间数(Rooms) 和 房子总面积(Size) 之间的关系非常强。假设有这样的公式:
即房子的总面积几乎可以完全通过房间数来预测。
因此,房间数(Rooms)和房子总面积(Size)几乎是完全线性相关的。这种强相关性就导致了多重共线性问题。
导致回归模型面临以下问题:
1.不稳定的回归系数:房间数和总面积几乎提供了相同的信息。回归模型会难以决定是将权重分配给房间数(Rooms),还是将权重分配给房子总面积(Size)。
2.回归系数的标准误差增大:多重共线性导致回归系数的标准误差增大,这意味着我们无法精确地估计各个变量对房价的影响。
3.模型不稳定:如果我们稍微改变数据集,移除或加入某个样本,回归系数可能发生显著变化。
那如何解决呢?
解决方法很简单。可以从独热编码特征中删除任意一个特征。
这样可以立即缓解多重共线性,并打破之前存在的线性关系。