在Eclipse中调用weka包实现分类

1.如题。

最近写了一个FCM的聚类算法,希望能够可视化结果,因此一个想法是调用weka中的包,使自己的程序可以可视化。这里参考了网络上的方法,首先实现在Eclipse中调用weka包实现分类的功能。

步骤如下:

1. 到weka官网下载weka安装程序,并安装;

2.在weka安装目录:(我的是C://Program Files//Weka-3-6)找到两个jar包:weka.jar 和 weka-src.jar,以供下面使用;

3.在Eclipse中新建一个工程,并新建class;

4.在新建的工程中“Build Path”,把上面两个jar包导入;

5.写程序:

package Test;

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 MyWeka {

    public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub
         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));
    }

}

 

 **************************************华丽丽的分割线************************************************************************

weka源码获得与导入

1、下载weka3.7,解压其中的weka-src.jar的文件,包含lib,src,META-INF三个文件夹和另外两个文件;

2、在Eclipse下新建java project,命名为weka,在src下新建名为weka的包;

3、在此项目下import-->File System-->选择.../weka/src/main/java/weka,并全部导入;

4、项目导入库文件,biuldpath-->add external jar-->选择lib里的 java-cup.jar  JFlex.jar  junit.jar;

5、运行weka.gui.main成功;

(以上是从大神大神大神处发现的,按照步骤做真的OK!!下面的工作就是要分析它的KMeans算法,然后仿照它的算法写出FCM算法,然后在weka中运行。迷雾一点点面薄了。)

 

**************************************************************************************************************************

在另外一些地方找到了一些weka的常用链接。

 http://dikar.iteye.com/blog/1007780

posted @ 2015-09-21 14:20  江湖小妞  阅读(1675)  评论(0编辑  收藏  举报