我需要实现一个 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);
}
我该怎么做?或者我应该实现自己的标准化程序?