我目前正在使用以下代码执行分类。
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%的机会被归类为正面。
有人能帮助我吗?
谢谢。
答案 0 :(得分:2)
您可以使用" distributionForInstance()"。这仅适用于能够输出分布预测的分类器。请参阅" How to get predication value for an instance in weka?"。