在libsvm中编码分类变量

时间:2016-07-27 11:25:26

标签: java encoding machine-learning svm libsvm

libsvm中是否有一个类可以自动编码字符串/分类功能。我找到了一个名为libsvmstringoutcomedatawriter的东西。上面使用哪种编码类型?一个热门编码?

1 个答案:

答案 0 :(得分:0)

如何为LibSVM编码功能取决于您使用SVM的内核。例如,存在字符串内核,允许您直接将字符串用作SVM的功能。 LibSVM FAQ讨论了可以与LibSVM一起使用的字符串内核的实现。我还找到了string kernel implementation in Python,虽然还没有测试过。

关于分类功能,它们可以与LibSVM中提供的标准内核一起使用。对分类要素进行编码的典型方法是将它们转换为二进制要素,其中每个分类值都表示为特定要素的值1。例如,对于要素color={red, green, blue},我们可以有3个要素red={0,1}green={0,1}blue={0,1}。然后,诸如Gaussian / RBF之类的内核应该能够毫无问题地处理数据。