我在为机器学习模型制作特征时,对虚拟变量和独热编码感到困惑。例如,一个分类变量'week'
的范围是1到7。使用独热编码时,将week = 1
编码为1,000,000,week = 2
编码为0,100,000…。但我也可以创建一个虚拟变量'week_v'
,这样我必须设置一个hidden variable
作为基准变量,特征week_v = 1
是100,000,week_v = 2
是010,000…,并且不会出现week_v = 7
。那么它们之间有什么区别呢?我正在使用逻辑回归模型,然后我会尝试GBDT。
回答:
实际上,这两种方法(更确切地说是两种表述方式)对回归的影响没有区别。
在任何一种情况下,你都必须确保其中一个虚拟变量被排除在外(即作为基准假设),以避免集合中出现完全的多重共线性。
例如,如果你想考虑观察值的weekday
,你只使用6个(而不是7个)虚拟变量,假设被排除的那个是基准变量。使用独热编码时,你的weekday
变量作为一个分类值出现在单一列中,实际上让回归使用其第一个值作为基准。