我需要实现一个 Weka 分类器,在处理之前对输入数据进行标准化。我为此使用以下代码:
private Filter standardize = new Standardize();
...
public void buildClassifier(Instances instances) throws Exception {
if (this.stdAtt) {
this.standardize.setInputFormat(instances);
instances = Filter.useFilter(instances, this.standardize);
}
....
}
现在,要对单个 Instance 进行分类,我还需要在使用相同的Standardize
过滤器进行实际分类之前对其进行标准化。但Filter.useFilter
只接受Instances
作为参数 - 而不是Instance
.
public double classifyInstance(Instance instance) throws Exception {
if (this.stdAtt) {
// standardize instance before processing
}
return super.classifyInstance(instance);
}
我该怎么做?或者我应该实现自己的标准化程序?