虚拟变量和单热编码有什么区别?

时间:2016-12-14 07:15:39

标签: python machine-learning

我正在为机器学习模型制作功能。我对虚拟变量和单热编码感到困惑。对于一个实例,类别变量'week'的范围是1-7。当使用单热编码时,将week = 1编码为1,000,000,{{1} }是0,100,000 ......但我也可以制作一个虚拟变量week = 2,这样我就必须设置一个 'week_v'表示基本变量,功能hidden variable为100,000,week_v = 1为010,000 ...... 没有出现week_v = 2。那么它们之间的区别是什么?我正在使用逻辑模型然后我会尝试gbdt。

1 个答案:

答案 0 :(得分:6)

事实上,这两种方法(而不是措辞)对你的回归的影响没有区别。

在任何一种情况下,你必须确保你的一个假人被遗漏(即作为基本假设),以避免集合中的完美多重共线性。

例如,如果你想考虑一个观察的weekday,你只能使用6个(而不是7个)假人,假设遗漏一个是基础变量。使用单热编码时,您的weekday变量在一个列中作为分类值存在,实际上回归使用其第一个值作为基础。