2016-12-14 61 views
3

我正在制作机器学习模型的功能。例如,一个类别变量'week'范围1-7。当使用单热编码时,将week = 1编码为1,000,000,week = 2为0,100,000 ...。但是我也可以使用虚拟变量和单热编码。一个虚拟变量'week_v',并以这种方式,我必须设置 hidden variable这意味着基础变量,并设有week_v = 1 100000,week_v = 2是010000 ......和 不会出现week_v = 7。那么什么是它们之间的区别?我使用逻辑模型,然后我会尝试gbdt。虚拟变量和单热编码有什么区别?

+0

实际上没有什么区别。单热编码是您为创建虚拟变量所做的事情。选择其中之一作为基本变量对避免变量之间的完美多重共线性是必要的。 – ayhan

+0

您可能有兴趣检查[this](https://stats.stackexchange.com/q/224051/99338)了解自由度如何根据您选择的方法而改变。 –

回答

2

事实上,这两种方法的效果(相当于措辞)对回归没有影响。

在任何一种情况下,您都必须确保您的某个假人被遗漏(即作为基本假设)以避免集合之间的完美多重共线性。例如,如果您想将观察的weekday考虑在内,则只使用6个(不是7个)虚拟假设,假设其中一个虚拟为基本变量。使用单热编码时,weekday变量作为单个列中的分类值存在,从而有效地将回归的第一个值用作基数。

相关问题