Weka库java:如何获得分类的前景?

时间:2016-03-13 18:14:32

标签: classification weka libsvm

我目前正在使用以下代码执行分类。

    DataSource source = new DataSource(caminhoDados);
    //System.out.println(source.getStructure());
    Instances data = source.getDataSet();

    // setting class attribute if the data format does not provide this information
    // For example, the XRFF format saves the class attribute information as well
    if (data.classIndex() == -1)
        data.setClassIndex(data.numAttributes() - 1);


    //initialize svm classifier
    LibSVM svm = new LibSVM();
    String opts = "-S 0 -K 0 -D 3 -G 0.0 -R 0.0 -N 0.5 -M 40.0 -C 1.0 -E 0.0010 -P 0.1 -seed 1";
    svm.setOptions(weka.core.Utils.splitOptions(opts));

    svm.buildClassifier(data);

    Instance instancia = new Instance(5);
    instancia.setDataset(data);
    instancia.setValue(0, '1');
    instancia.setValue(1, '1');
    instancia.setValue(2, '0');
    instancia.setValue(3, '0');
    double resu = svm.classifyInstance(instancia);


    System.out.println("Predição: " + resu);

此代码返回新实例收到的排序。 但是,我还需要返回算法对分类的保证百分比。 例: 检测到新实例有80%的机会被归类为正面。

有人能帮助我吗?

谢谢。

1 个答案:

答案 0 :(得分:2)

您可以使用" distributionForInstance()"。这仅适用于能够输出分布预测的分类器。请参阅" How to get predication value for an instance in weka?"。