我看到很多功能的工程有get_dummies上的物体的特征步骤。例如,将包含“M”和“F”的性别列虚拟为两列,并将其标记为一次性表示。 为什么我们不直接在性别栏中将'M'和'F'设置为0和1? 虚拟方法是否对分类和回归模型中的机器学习模型都有积极影响? 如果是这样,为什么? 谢谢。使用虚拟值会使模型的性能更好吗?
0
A
回答
0
要独热编码与N
可能值的功能,你只需要N-1
列与0
/1
值。所以你是对的:二进制性可以用一个二进制特征编码。
使用虚拟编码与N
功能而不是N-1
应该不会真正增加任何机器学习模型的性能,并且会使一些统计分析(如ANOVA)变得复杂。
1
一般情况下,直接编码具有N个不同值的分类变量直接与(0,1,...,N-1),并变成数值变量不会与很多算法工作,因为你给广告对不同类别变量的特殊含义。性别示例的工作原理是二元的,但考虑汽车模型的价格估算示例。如果有N个不同的型号,如果你编码模型中的3个和6个B型,这将意味着,例如,对于OLS线性回归的B型影响响应变量的2倍以上相比,模型A.你不能简单地将这种随机意义赋予不同的分类值,所生成的模型就没有意义。为了防止这种数字歧义,最常见的方法是用N-1二进制单热变量对具有N个不同值的分类变量进行编码。
+0
谢谢。在N-1二进制值的每一列中,0和1是编码的最佳方式? – yanachen
相关问题
- 1. 偏好值 - 使用具有虚拟属性的模型静态无表
- 2. 使用previous_changes跟踪虚拟属性的模型更改
- 3. 使用Fragments会更好吗?
- 4. 在模型的属性上使用虚拟
- 5. 更好性能的模型设计
- 6. 如何使用Rails在模型中设置虚拟属性?
- 7. 对1个模型字段使用2个虚拟属性
- 8. 使用meta_search遍历模型并参考虚拟属性
- 9. 使用虚拟属性干起这个模型
- 10. 轨道模型中的虚拟属性
- 11. Rails中新模型的虚拟属性?
- 12. 如果在虚拟模式下使用DataGridView,可提高性能
- 13. Rails 4虚拟记录(不是虚拟属性) - 可能吗?
- 14. 使用其他模型创建虚拟模型
- 15. 虚拟ActiveRecord模型
- 16. 虚拟属性轨道模型
- 17. CDbCriteria与虚拟模型属性
- 18. 使用多个输出值还是返回组合值类型会更好吗?
- 19. Python Scrapy:使用Selenium还是模拟XHR请求会更好?
- 20. 使用mod_rewrite模拟SSL虚拟主机?
- 21. 在使用Node.js的Mongoose中使用虚拟获取器会对性能产生影响吗?
- 22. 使用具有虚拟值的字典是不好的做法
- 23. 使用fwrite()或move_uploaded_file()会更好吗?
- 24. 在chmod上使用fchmod会更好吗?
- 25. 使用eventListener或readyStateChange会更好吗?
- 26. Ruby on Rails - Activeadmin - 具有虚拟属性的更新模型
- 27. 使用虚拟类型(抽象类型)
- 28. 您可以使用虚拟机来测试应用程序的性能吗?
- 29. Rails的虚拟模型
- 30. 模型中的虚拟列
虚值被称为嘈杂的标签。是的,他们在一定程度上是有益的。 – user1211
直说,我想单独一列一分为二,意味着模型尺寸增加1,它不是100%的保证的益处必须存在(至少在M/F列)。但是为特征集增加1个维度意味着您的程序可以接受更多的维度复杂度,因此在某些情况下,它可以有利于输出的准确性,但缺点可能是系统需要维护更大的维度集。你也相对需要更大的训练集来防止过度训练 – SKLTFZ
简短的回答:当然是。许多分类器/回归器仅对数值数据有效(其中特征3是具有值1的特征的3倍差/好; SVM,最近邻居)。其他人并不在乎(随机树)。其他人至少可以从虚拟变量(NN)中受益。对于分类功能来说,这当然是一件坏事。因此创建了假人。这是非常基本的东西。每个ML教程都可以帮助你。构建一个简单的线性回归器示例。在这种情况下很容易看到。 – sascha