WEKA API でデータセットを分類しようとしています。最初にWEKA Explorerを試し、その分類器で
Scheme: weka.classifiers.bayes.BayesNet -D -Q weka.classifiers.bayes.net.search.local.K2 -- -P 1 -S BAYES -E weka.classifiers.bayes.net.estimate.SimpleEstimator -- -A 0.5
良い結果を得ました.
ここに私のコードがあります:
public static void main(String Args[]) throws Exception {
// read in file and create train dataset
DataSource source = new DataSource("featurexfilename.arff");
Instances train = source.getDataSet();
// set class index
train.setClassIndex(0);
// create test data set
Instances test = source.getDataSet();
// set class index
test.setClassIndex(0);
// create new instance of scheme
weka.classifiers.bayes.net.search.local.K2 scheme = new weka.classifiers.bayes.net.search.local.K2();
// set options
scheme.setOptions(weka.core.Utils.splitOptions("-P 1 -S BAYES"));
// set options for bayes classifier
BayesNet bnet = new BayesNet();
scheme.buildStructure(bnet, train);
// eval it with test data based on the train data
Evaluation eval = new Evaluation(test);
eval.evaluateModel(bnet, test);
System.out.println(eval.toSummaryString("\nResults\n\n", false));
}
しかし、次のエラーが表示されます。
Exception in thread "main" java.lang.NullPointerException
at weka.classifiers.bayes.BayesNet.getParentSet(BayesNet.java:1002)
at weka.classifiers.bayes.net.search.SearchAlgorithm.buildStructure(SearchAlgorithm.java:285)
at weka.classifiers.bayes.net.search.local.LocalScoreSearchAlgorithm.buildStructure(LocalScoreSearchAlgorithm.java:163)
at patternrecog.Bayes.main(Bayes.java:48)
誰か助けてくれますか? ありがとうございました。