- 转自:http://chenwq.iteye.com/blog/1308834
-
-
- package cn.edu.xmu.bdm.wekainjava.test;
- /**
- * desc:试试Weka的决策树类
- * <code>J48Test</code>
- * @version 1.0 2011/12/13
- * @author chenwq
- *
- */
- import java.io.File;
- import java.io.IOException;
- import weka.classifiers.Classifier;
- import weka.classifiers.trees.J48;
- import weka.core.Instances;
- import weka.core.converters.ArffLoader;
- public class J48Test {
- /**
- * @param args
- * @throws Exception
- */
- public static void main(String[] args) throws Exception {
- Classifier m_classifier = new J48();
- File inputFile = new File("C:\\Program Files\\Weka-3-6\\data\\cpu.with.vendor.arff");//训练语料文件
- ArffLoader atf = new ArffLoader();
- atf.setFile(inputFile);
- Instances instancesTrain = atf.getDataSet(); // 读入训练文件
- inputFile = new File("C:\\Program Files\\Weka-3-6\\data\\cpu.with.vendor.arff");//测试语料文件
- atf.setFile(inputFile);
- Instances instancesTest = atf.getDataSet(); // 读入测试文件
- instancesTest.setClassIndex(0); //设置分类属性所在行号(第一行为0号),instancesTest.numAttributes()可以取得属性总数
- double sum = instancesTest.numInstances(),//测试语料实例数
- right = 0.0f;
- instancesTrain.setClassIndex(0);
- m_classifier.buildClassifier(instancesTrain); //训练
- 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));
- }
- }
Java调用Weka API分类实例
最新推荐文章于 2021-02-12 17:28:42 发布