3

我尝试使用 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)

有人可以帮忙吗?谢谢你。

4

0 回答 0