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());}}