1
Scikit学习中的一键式与虚拟编码
编码分类变量有两种不同的方法。假设一个分类变量具有n个值。一键编码将其转换为n个变量,而伪编码将其转换为n-1个变量。如果我们有k个分类变量,每个分类变量都有n个值。一种热编码以kn个变量结束,而伪编码以kn-k个变量结束。 我听说对于一键编码,拦截会导致共线性问题,这会使模型不可靠。有人称其为“ 虚拟变量陷阱 ”。 我的问题: Scikit-learn的线性回归模型允许用户禁用拦截。因此,对于一键编码,我应该始终设置fit_intercept = False吗?对于虚拟编码,fit_intercept应该始终设置为True吗?我在网站上没有看到任何“警告”。 由于一键编码会生成更多变量,因此它是否比伪编码具有更大的自由度?