如何处理具有分类属性的 SVM

机器算法验证 分类数据 支持向量机
2022-01-20 14:43:05

我有 35 个维度(属性)的空间。我的分析问题是一个简单的分类问题。

在 35 个维度中,超过 25 个是分类的,每个属性都有 50 多种类型的值。

在那种情况下,引入一个虚拟变量也不适合我。

如何在具有很多分类属性的空间上运行 SVM?

1个回答
  1. 如果您确定分类属性实际上是序数,那么只需将其视为数字属性。
  2. 如果没有,请使用一些编码技巧将其转换为数字属性。根据 libsvm 作者的建议,可以简单地使用 1-of-K 编码。例如,假设一个一维类别属性从{A,B,C}. 只需将其转换为 3 维数,这样A=(1,0,0),B=(0,1,0),C=(0,0,1). 当然,这会在您的问题中产生显着的额外维度,但我认为这对于现代 SVM 求解器来说并不是一个严重的问题(无论您采用线性类型还是内核类型)。