我想将由Bagging方法生成的分类器直接复制到EnsembleSelection分类器,而无需将其复制到代码下面的文件中:

data.setClassIndex(datamoufi.numAttributes()-1);
Bagging B=new Bagging ();

// runClassifier(B, argv);
String options = (" java weka.classifiers.meta.ClassificationViaRegression -W weka.classifiers.functions.LinearRegression \\\n" +
                  " -x 2 -I 4 -- -S 1");
String[] optionsArray = options.split(" ");
B.setOptions(optionsArray);
B.setCalcOutOfBag(true);
B.buildClassifier(data);

EnsembleSelection classifier=null;

classifier = (EnsembleSelection) B.getClassifier();


错误是:


ClassCastException:weka.classifiers.functions.LinearRegression无法转换为weka.classifiers.meta.EnsembleSelection

最佳答案

LinearRegression类层次结构:



EnsembleSelection类层次结构:



EnsembleSelection不是LinearRegression的祖先,因此无法进行转换。它们最接近的共同祖先是weka.classifiers.AbstractClassifier(来自weka.classifiers包)。因此,您可以强制使用它。

10-08 12:18