分类特征总是需要编码吗?

数据挖掘 预测建模 阿帕奇火花 分类数据 编码
2022-02-09 07:04:42

我正在使用 Spark 的机器学习库,并且功能是分类的。特征是字符串,Spark 的 MLlib(与许多其他机器学习库一样)不接受字符串作为输入。

克服这个问题的正常过程是将字符串转换为整数,然后对这些整数进行编码(例如使用 onehotencoder),因为转换为整数意味着特征之间存在排序。

我的问题是——分类特征总是需要编码吗?在什么情况下可以使用整数而不是编码?

我正在使用逻辑回归和朴素贝叶斯。当使用整数作为特征时,我得到 84% 的准确率,当这些整数被编码时,我得到 82% 的准确率。

有必要编码吗?

1个回答

您自己已经部分回答了这个问题(“因为转换为整数意味着特征之间存在排序”)。

我将进一步澄清术语。

  1. 分类数据:信息有分类,但它们之间没有定义自然顺序(性别、用户猫的名称)
  2. 序数数据:信息具有在它们之间定义的自然排序的类别(按类别定义的年收入规模为$ 40000、 $ 40000 - $80000)。

如果变量是序数类型,您可以将其替换为整数并继续执行算法。如果它是分类的,则应该对其进行转换和编码。

希望这可以帮助。