我正在使用weka进行分类,我尝试使用filter.removeuseless,但是使用相同的arff文件,我发现在代码和GUI中使用它之间存在一些差异。在代码中我以这种方式调用它:
Normalize norm = new Normalize();
norm.setInputFormat(train);
Instances train_norm = Filter.useFilter(train, norm);
RemoveUseless ru = new RemoveUseless();
ru.setInputFormat(train_norm);
Instances train_new = Filter.useFilter(train_norm, ru);
Ranker rank = new Ranker();
InfoGainAttributeEval eval = new InfoGainAttributeEval();
eval.buildEvaluator(train_new);
结果是“奇怪的”,因为过滤器删除了许多属性,GUI保留这些属性作为分类的信息。 (GUI中的过滤器运行良好)。问题是什么?我在代码中使用得很好吗?
答案 0 :(得分:2)
Normalize norm = new Normalize();
norm.setInputFormat(train);
train = Filter.useFilter(train, norm);
RemoveUseless ru = new RemoveUseless();
ru.setInputFormat(train);
train = Filter.useFilter(train, ru);
Ranker rank = new Ranker();
InfoGainAttributeEval eval = new InfoGainAttributeEval();
eval.buildEvaluator(train);