机器学习和生物信息学实验室联盟

标题: weka中libSVM的概率输出! [打印本页]

作者: RockRabbit    时间: 2011-10-13 09:54
标题: weka中libSVM的概率输出!
同学们,注意了。
在用weka进行编程实现分类器调用进行投票的时候。
如果你选择的是三个分类器进行概率投票的时候,由于一些分类器,例如libSVM,默认的输出结果都是0或1,没法得到概率,所以如果你使用默认的设置的话,就相当于采用的是majority vote的方法。 不信大家可以试试。
现在我来讲解一下怎么设置libSVM的参数,使得输出的是概率模型。
首先,在libSVM中默认的输出是用SVC(0/1模型)替代SVR(概率模型)。因此你在使用weka编程的时候,要修改一下默认的参数,例如:你使用默认的话,代码是下面一段:
c[0]=new LibSVM();
String[] optSVM = weka.core.Utils.splitOptions("-S 0 -K 2 -D 3 -G 0.0078125 -R 0.0 -N 0.5 -M 40.0 -C 8192.0 -E 0.0010 -P  0.1");
c[0].setOptions(optSVM);

输出的就是0/1模型。

修改一下在参数项中添加“-B”,就可以了,代码修改后如下:
c[0]=new LibSVM();
String[] optSVM = weka.core.Utils.splitOptions("-S 0 -K 2 -D 3 -G 0.0078125 -R 0.0 -N 0.5 -M 40.0 -C 8192.0 -E 0.0010 -P  0.1 -B");
c[0].setOptions(optSVM);

所以在用weka编程的你,注意到这个问题没?
如果之前你有用libSVM并且希望得到概率模型的同学,是否要改一下,再看看你的实验结果的好坏~

ps:
在邹老师的帮助下,终于学会了使用查看文档。
给像我一样的菜鸟提个建议,不懂分类器参数的意思的话,可以查看weka的文档,一般默认的安装路径在:“C:\Program Files\Weka-3-6\doc”下面的index.html文档里~
作者: zouquan    时间: 2011-10-13 11:22
哈哈,老师最开心的事情就是看到学生进步~~

另外,用weka图形界面时用libSVM默认也是不支持概率预测,需要修改一下参数才可以。
作者: cwc    时间: 2011-10-20 20:30
哈哈! 帮助文档果然很有用哦。各种参数、函数一目了然,老师再也不用担心我的weka了!




欢迎光临 机器学习和生物信息学实验室联盟 (http://123.57.240.48/) Powered by Discuz! X3.2