【发布时间】:2014-06-06 08:33:44
【问题描述】:
我在 java 中使用 weka api 时遇到问题。我的训练和测试数据集中有 41 个特征(或属性)。我只想获取 25 个属性(例如 1、3、5、7、8、10 ......),并在训练和测试分类器期间删除其他属性。我已阅读 http://weka.wikispaces.com/Use+WEKA+in+your+Java+code#Filter 和 http://grepcode.com/file/repo1.maven.org/maven2/nz.ac.waikato.cms.weka/weka-stable/3.6.6/weka/filters/unsupervised/attribute/Remove.java 上提供的 Weka 过滤器手册,但我不明白如何在我的问题中使用过滤器。你能帮我如何为这种情况编写代码吗?您的建议/帮助将不胜感激。
我的代码是这样的......
import weka.classifiers.meta.FilteredClassifier;
import weka.classifiers.trees.J48;
import weka.core.Instances;
import weka.filters.Filter;
import weka.filters.unsupervised.attribute.Remove;
Instances train = ...
Instances test = ...
Here I want to take only 25 attributes(i.e column values) out of 41.
Classifier cls = new J48();
cls.buildClassifier(train);
// evaluate classifier and print some statistics
Evaluation eval = new Evaluation(train);
eval.evaluateModel(cls, test);
.....
.....
【问题讨论】:
标签: weka