如何更改 LibSVM 中的 SVM 内核?

Posted

技术标签:

【中文标题】如何更改 LibSVM 中的 SVM 内核?【英文标题】:How do I change the SVM kernel in LibSVM? 【发布时间】:2015-01-16 13:57:22 【问题描述】:

我有这个代码:

LibSVM classifier = new LibSVM();   
classifier.setKernelType(null);

我想将其设置为线性内核。但是,我似乎无法更改参数,因为它需要 SelectedTag 值。如何实例化此类?

我已阅读KERNELTYPE_LINEAR 上的文档。

【问题讨论】:

【参考方案1】:

我通过这样做解决了它:

LibSVM classifier = new LibSVM();  
classifier.setKernelType(new SelectedTag(LibSVM.KERNELTYPE_LINEAR, LibSVM.TAGS_KERNELTYPE));

【讨论】:

【参考方案2】:
import libsvm.svm_parameter; // import this header   
LibSVM svm = new LibSVM();
    svm_parameter pre= new svm_parameter();
    pre.kernel_type= svm_parameter.POLY;
    pre.gamma= 3;
    pre.degree=1;`
    svm.setParameters(pre);
    svm.buildClassifier(data);

【讨论】:

我不能评论这个答案的相对正确性,而不是更早、更简单、我已经完成的答案,但我不能让你的答案代码注释立场:'//导入此标头'。这不是 C,并且“import”语句不会“导入”任何“header”;它指示编译器在指定的命名空间中搜索所需的类。只是在说'。 ;-)

以上是关于如何更改 LibSVM 中的 SVM 内核?的主要内容,如果未能解决你的问题,请参考以下文章

使用 libsvm 调整 svm

libsvm liblinear 如何使用直方图交集/卡方内核

C 参数不影响准确性 [用于字符串数据的 LibSVM]

如何在 Matlab 中使用 libsvm?

如何在 R 中使用 libsvm 加载 SVM 模型拟合/集成

将置换后的数据放入 LibSVM 预计算内核