我有点好奇 sklearn 如何处理由数字表示的分类变量,例如纽约 = 1 波士顿 = 2 芝加哥 = 3。python会知道这是分类的还是只是将其视为有序数字?我在这里看到一个帖子讨论这个问题。我不知道它是否正确。
另外我不知道是否应该将它们全部更改为稀疏矩阵格式,例如
[1,0,0]
[0,1,0]
[0,0,1]
当应用于 sklearn 库时,这两种格式有什么区别?
如果 sklearn 不能很好地处理分类变量,R 会为此击败它吗?
谢谢!
更新:
我看到了@larsmans 推荐的重复问题,但它实际上并没有就这篇文章中的答案回答我的问题,它说 sklearn 不能很好地处理分类变量以及它与 R 中的包相比如何。之前也看过一些帖子,大数据集没问题,但会影响小数据集。从@larsmans看来,除了树算法外,其他方法应该将数字分类变量转移到假人。实际上,每个变量都有 3000 多个类别。我不认为使用 DictVectorizer 或 oneHotEncoder 将它们全部更改为稀疏矩阵是一种有效的方法。