我正在为机器学习模型制作功能。我对虚拟变量和单热编码感到困惑。对于一个实例,类别变量'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。
答案 0 :(得分:6)
事实上,这两种方法(而不是措辞)对你的回归的影响没有区别。
在任何一种情况下,你必须确保你的一个假人被遗漏(即作为基本假设),以避免集合中的完美多重共线性。
例如,如果你想考虑一个观察的weekday
,你只能使用6个(而不是7个)假人,假设遗漏一个是基础变量。使用单热编码时,您的weekday
变量在一个列中作为分类值存在,实际上回归使用其第一个值作为基础。