可以为 SVM(支持向量机)混合分类数据和连续数据吗?

机器算法验证 分类数据 支持向量机 混合类型数据
2022-02-27 22:52:53

我有一个像

+--------+------+-------------------+
| income | year |        use        |
+--------+------+-------------------+
|  46328 | 1989 | COMMERCIAL EXEMPT |
|  75469 | 1998 | CONDOMINIUM       |
|  49250 | 1950 | SINGLE FAMILY     |
|  82354 | 2001 | SINGLE FAMILY     |
|  88281 | 1985 | SHOP & HOUSE      |
+--------+------+-------------------+

我将它嵌入到一个 LIBSVM 格式的向量空间中

+1 1:46328 2:1989 3:1
-1 1:75469 2:1998 4:1
+1 1:49250 2:1950 5:1
-1 1:82354 2:2001 5:1
+1 1:88281 2:1985 6:1

特征指标:

  • 1是“收入”
  • 2 是“年”
  • 3 是“使用/商业豁免”
  • 4 是“使用/CONDOMINIUM”
  • 5是“使用/SINGLE FAMILY”
  • 6 是“使用/SHOP & HOUSE”

可以用这样的连续(年份、收入)和分类(使用)数据来训练支持向量机(SVM)吗?

1个回答

是的!但也许不是你说的那样。在我的研究中,我经常使用诸如递归分区之类的算法从连续值的特征中创建分类特征我通常将此方法与支持向量机的SVMLight实现一起使用,但我也将它与 LibSVM 一起使用。您需要确保在训练和分类期间将分区的分类特征分配到特征向量中的特定位置,否则您的模型最终会变得一团糟。

编辑:也就是说,当我这样做时,我将向量的前 n 个元素分配给与递归分区的输出相关的二进制值。在二元特征建模中,您只有一个由 0 和 1 组成的巨大向量,因此模型看起来一切都相同,除非您明确指出不同特征的位置。这可能过于具体,因为我想大多数 SVM 实现都会自行执行此操作,但是,如果您喜欢自己编程,可能需要考虑一下!