将分类变量转换为数值

数据挖掘 机器学习 神经网络 深度学习 预测建模 分类数据
2022-02-18 06:51:36

我对机器学习方法很陌生。我正在阅读使用随机森林构建预测模型的教程。实现的转换之一是将分类变量转换为二进制。想象一下(短样本):

Field_Desc  Field_Value
A               32
A               100
B               1

然后开发人员将此数据集传递到:

Field_A1    Field_B1    Field_Value
1               0                32
1               0                100
0               1                 1

对随机森林预测进行这种转换有什么好处?而对于 K-Means 会有什么优势吗?

谢谢!

2个回答

假设你想有k-means算法,在平均的公式中,你必须取每个簇的平均值,然后重新分配中心。如果你有分类数据,你想怎么取平均值?将分类数据更改为数字数据是为了转换不具有适合用于此类算法的数字特征的情况。

我遇到的大多数随机森林算法都不需要像上面描述的那样转换分类变量,通常是因为树是如何分裂的:

  • 具有分割点 x 的分类变量:分割规则是数据点 = x / 数据点!= x。
  • 带分割点x的数值变量:分割规则为数据点<x/数据点>=x。

话虽如此,一些算法对分类变量的基数有限制——例如randomForest,在 R 中,只接受少于 53 个级别的分类变量。