zoukankan      html  css  js  c++  java
  • 在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

  • 相关阅读:
    JMeter学习使用(1)
    ip设置
    JMeter安装过程小问题
    appium-doctor
    使用 Xcode-Instrument-Automation -App -Ios自动化测试
    接口测试学习 -01
    在Windows下安装配置jforum测试环境
    root_one Android自动化测试02--git拉取及eclipse导入
    selenium+python学习总结-mac
    MySQL速学篇第四课
  • 原文地址:https://www.cnblogs.com/little-YTMM/p/4826051.html
Copyright © 2011-2022 走看看