我想将由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
包)。因此,您可以强制使用它。