我正在我的学校做一个科学项目,我需要对我的数据流使用几个过滤器。我正在使用带有 WEKA 过滤器的 MOA。以下代码是我制作的分类器的一部分,因此我可以将过滤器与 MOA 分类器一起使用。我知道 MOA 有 WEKA 分类器,我可以在其中选择过滤分类器。但是我自己制作,以确保分类器没有测试合成实例。
@Override
public void trainOnInstanceImpl(Instance instnc) {
Instance aux;
Instances moaNewInstances;
weka.core.Instances mWekaInstances, mWekaNewInstances;
mWekaInstances = new weka.core.Instances("WekaInstances", mAttFastVector, windownSize);
mWekaNewInstances = new weka.core.Instances("WekaNewInstances", mAttFastVector, windownSize);
moaNewInstances = new Instances("moaNewInstances",mAttList, windownSize);
if(IsFirst)
{
getAttributes(instnc);
moaInstances = new Instances("moaInstances",mAttList, windownSize);
IsFirst= false;
}
if(cont < windownSize)
{
moaInstances.add(instnc);
cont++;
}
else
{
cont = 0;
mWekaInstances = converterToWeka.wekaInstances(moaInstances);
mFilter.setInputFormat(mWekaInstances);
mWekaNewInstances = weka.filters.Filter.useFilter(mWekaInstances, mFilter);
moaNewInstances = converterToMoa.samoaInstances(mWekaNewInstances);
moaInstances.delete();
for(int i = 0; i < moaNewInstances.size(); i++)
mLearner.trainOnInstance(moaNewInstances.get(i));
}
}
基本上,只要达到窗口大小,就会应用过滤器。在线条mFilter.setInputFormat(mWekaInstances);
和mWekaNewInstances = weka.filters.Filter.useFilter(mWekaInstances, mFilter);
然而,这些行给出了一个例外。可能是什么原因?