在《在eclipse下使用java调用weka》的基础上,使用《在eclipse下使用java调用weka》中介绍的方法添加libsvm的两个jar包(libsvm.jar和wlsvm.jar)及weka的jar包,这三个包可以从这里下载:http://download.csdn.net/source/1749854。
然后在import诸语句下添加:
import wlsvm.WLSVM;
然后把原代码中的
Classifier m_classifier = new J48();
改为:
Classifier m_classifier = new WLSVM();
然后运行就是使用SVM分类了,当然,最后把输出句的
System.out.println("J48 classification precision:"+(right/sum));
改为:
System.out.println("");
System.out.println("SVM classification precision:"+(right/sum));
Libsvm有一个问题就是内存占用比较大,经常会提示如下错误:
java.lang.OutOfMemoryError: Java heap space
在内存不足的情况下的确无法解决,但内存充足的话,可以配置一下程序所能占用的内存大小参数。设置方法:
1. 在Package Explorer中选中调用libsvm的类;
2. 在菜单中单击Run->run configuration…->右面的(x=)arguments页中的VM arguments文本框中输入-Xmx1024M。//表示最大可使用1024M内存,大家可以根据实际情况设置。