SKLearn中的虚拟变量

时间:2017-09-19 11:48:30

标签: python-3.x pandas scikit-learn

一般问题。在创建数据集时,我总是将自己的分类特征改为数字。

例如:单个特征的5个类别导致1个特征,数字为1,2,3,4,5。

在Pandas中创建虚拟变量会导致具有0或1值的多个要素。后者是最佳实践,还是仅仅是品味问题?在我的模型中,这不会影响准确性,因此在这种情况下,反复试验并不能提供答案。

1 个答案:

答案 0 :(得分:0)

这取决于您尝试转换的数据。如果它是像slowmediumfast那样的经典数据,那么将它们转换为1,2 and 3之类的数字是有意义的。这是因为它们似乎有某种顺序和顺序。但是,如果您有城市名称等数据,则无法使用此方法,因为它会不必要地创建城市之间的序列关系,而这可能并非如此。

例如,如果您执行以下映射:

"New York" - 1
"London"   - 2
"Moscow"   - 3
"Beijing"  - 4

然后你介绍了不同城市之间的新关系,比如假设New York的价值低于London等等。这是因为ML算法会将Numbers视为序列,它们的排序很重要(这对于城市名称来说并不正确)。因此,它取决于您的数据以及您如何对其进行编码。

您也可以在this blog post中检查更多编码技巧。