weka api调用小程序

来源:互联网 发布:那个软件看寅唱会 编辑:程序博客网 时间:2024/06/07 06:40
package com.bai;import java.io.File;import weka.classifiers.Classifier;import weka.classifiers.trees.J48;import weka.core.Instances;import weka.core.converters.ArffLoader;public class Test {         /** * @param args * @throws Exception  */public static void main(String[] args) throws Exception {Classifier m_classifier = new J48();        File inputFile = new File("D://Weka-3-6//data//cpu.with.vendor.arff");//训练weka数据文件        ArffLoader atf = new ArffLoader();         atf.setFile(inputFile);        Instances instancesTrain = atf.getDataSet(); // 读入训练文件            inputFile = new File("D://Weka-3-6//data//cpu.with.vendor.arff");//将训练集作为测试集合        atf.setFile(inputFile);                  Instances instancesTest = atf.getDataSet(); // 读入测试文件        instancesTest.setClassIndex(0); //设置分类属性所在行号(第一行为0号)        double sum = instancesTest.numInstances(),right = 0.0f;        instancesTrain.setClassIndex(0);        m_classifier.buildClassifier(instancesTrain); //训练                    System.out.println(m_classifier.getRevision());        for(int  i = 0;i<sum;i++)//测试分类结果        {            if(m_classifier.classifyInstance(instancesTest.instance(i))==instancesTest.instance(i).classValue())//如果预测值和答案值相等            {              right++;//正确值加1            }        }        System.out.println("J48 classification precision:"+(right/sum));        System.out.println(m_classifier.getRevision());}}