0

对于一篇研究论文,我将使用 lasso 模型来执行分类和特征选择。我正准备使用 one-hot 编码来处理我的分类数据,并且需要找出哪些特征映射到原始分类值,以确定最终为最终模型选择了哪些特征。我已经在谷歌上搜索了一段时间,但没有找到答案。

scikit 的 one-hot encoding 是如何赋值的?例如,假设我对某个变量的分类值为 {1, 2, 3, 4}。one-hot encoding 是否按时间顺序将它们组织成虚拟对象(即丢弃 1,使值 2 的第一个虚拟对象,值 3 的第二个虚拟对象,值 4 的第三个虚拟对象?还是根据它找到的顺序分配向下扫描行时使用不同的分类值(例如,第一个观察值的值为 3,第二个观察值的值为 2,因此删除了 3,第一个虚拟变量变为值 2)?

谢谢!

4

1 回答 1

1

快速浏览一下源代码,在我看来,它们确实是按整数值排序的。但是,由于这没有记录在案,您不能指望这一点:它不是合同的一部分。如果您需要知道哪个值最终会出现在我建议您编写自己的OneHot实现的地方。不应该太难,然后你可以在升级到新版本等时指望它。

于 2016-12-27T00:36:22.763 回答