首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Weka J48更改选项-无差异

Weka J48更改选项-无差异
EN

Stack Overflow用户
提问于 2013-02-06 03:47:24
回答 3查看 1.9K关注 0票数 4

我正在尝试更改J48分类器的选项,但这在结果树中没有什么不同。

我的代码:

代码语言:javascript
复制
J48 cls = new J48();
Instances data = new Instances(new BufferedReader(new FileReader("someArffFile")));
data.setClassIndex(data.numAttributes() - 1);

//was trying to use -M 1 and -M 5, but no difference    
String[] options = new String[1];
options[0] = "-C 1.0 –M 1";     
cls.setOptions(options);

cls.buildClassifier(data);

//displaying J48 tree
TreeVisualizer tv = new TreeVisualizer(null,cls.graph(),new PlaceNode2());

在我用这个方法设置值之后,一切都很正常。

代码语言:javascript
复制
cls.setMinNumObj(5);

你知道如何用setOptions方法代替setMinNumObj吗?

EN

回答 3

Stack Overflow用户

发布于 2013-03-11 03:00:10

问题在于您如何尝试设置选项。options数组应该类似于main方法中的args数组,每个元素一个字符串:

代码语言:javascript
复制
String[] options = {"-C", "1.0", "–M", "1"};
cls.setOptions(options);

否则它就不会起作用。

票数 0
EN

Stack Overflow用户

发布于 2013-07-01 19:50:41

首先,选项应该是数组而不是字符串。因此,您可以尝试如下所示。

代码语言:javascript
复制
String[] options = {"-C", "1.0", "-M", "1"};
cls.setOptions(options);

更重要的是,应该仔细注意一个小bug。在你的问题和@Sentry之前的回答中,C之前有一行较短的行,如"-C";但M之前有一行较长的行,如“-M”。

如果你仔细观察,你会发现M前面的符号实际上不是负号,因为它比负号长。当您将较长的行更改为真正的减号时,您可以通过上面的代码获得正确的结果。

祝好运。

票数 0
EN

Stack Overflow用户

发布于 2017-03-18 04:01:39

最好的方法是利用weka.Core.Utils类的splitOptions(String[] options)方法:

代码语言:javascript
复制
String[] options = weka.core.Utils.splitOptions("-C 1.0 –M 1");
cls.setOptions(options); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14715665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档