原文链接:http://blog.csdn.net/felomeng/article/details/4688257

weka是很好用的机器学习库,这里就不详细介绍了。

言归正传,要使用程序方式使用weka,步骤如下:

一、在eclipse里新建一个java project:

1.      建立工程:单击菜单中file->new->java project,在弹出对话框的project name中起任意一个名字,此处假设是wekaTest。单击Finish按钮(在对话框底部)。

2.      建立package:在package Explorer中找到刚才新建的工程,在其上右键->New->package。在Name文本框里面输入名称,此处假设为Test。单击Finish按钮。

3.      建立程序文件:在刚才新建的package上面右键->New->class,选中public static void main(String[] args)多选框,单击Finish。

二、在该工程中添加weka的引用:

1.    package Explorer中工程名上右键,选择弹出菜单最后一项properties->在左面选中java Build Path->在右面的Library页面->单击Add External JARs…->浏览weka所在目录,将weka.jar添加进来,然后单击ok。

2.      在package Explorer中在双击Test文件,然后在package wekaTest;一句下面添加四句代码:

import java.io.File;

import weka.classifiers.Classifier;

import weka.classifiers.trees.J48;

import weka.core.Instances;

import weka.core.converters.ArffLoader;

三、在程序中添加weka调用代码:

将以下代码添加到Main函数中(在// TODO Auto-generated method stub下面):

Classifier m_classifier = new J48();

File inputFile = new File("D://Program Files//Weka-3-6//data//cpu.with.vendor.arff");//训练语料文件

ArffLoader atf = new ArffLoader();

atf.setFile(inputFile);

Instances instancesTrain = atf.getDataSet(); // 读入训练文件

inputFile = new File("D://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));

四、运行一下试试。

eclipse下使用java调用weka(转)的更多相关文章

  1. Eclipse下的java工程目录问题和路径问题理解

    1.Eclipse下的java工程都有哪些文件夹? 答:new java project时,会默认创建SRC源代码目录,并默认创建一个bin目录作为输出目录,输出目录是指生成的class文件和配置文件 ...

  2. 4-1eclipse & 4-2在eclipse下开发Java

    ecplise是一款继承的开发工具,可以开发我们的java程序. 下载地址: https://www.eclipse.org/downloads/ 视频中ecplise的版本 安装Ecplise: 默 ...

  3. Eclipse下的java工程目录

    对新手来讲,一个Java工程内部的多个文件夹经常会让大家困惑.更可恶的是莫名其妙的路径问题,在Eclipse编写Java程序中,出现频率最高的错误很可能就是路径问题. 这些问题原因其实都是一个,就是关 ...

  4. 转载:Eclipse下的java工程目录

    原文链接:https://www.cnblogs.com/milantgh/p/4029003.html 对新手来讲,一个Java工程内部的多个文件夹经常会让大家困惑.更可恶的是莫名其妙的路径问题,在 ...

  5. eclipse下生成Java类图和时序图,生成UML图

    1.安装和使用AmaterasUML 安装AmaterasUML前,需要先安装GEF采用eclipse在线安装方式安装就好.eclipse在线安装GEF的地址:http://download.ecli ...

  6. eclipse下查看java源码设置

    myway: 1.选择一函数,按住ctrl,显示open declaration(或按F3); 2.点进去: 如果未配置,点 source attachment configuration -- ex ...

  7. 如何设置eclipse下查看java源码

    windows--preferences--java--installed jres --选中jre6--点击右边的edit--选中jre6/lib/rt.jar --点击右边的 source att ...

  8. 在Eclipse中调用weka包实现分类

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

  9. Eclipse下生成/编辑Java类图或时序图(UML)[转载]

    一 引用文章 1.[eclipse下生成Java类图和时序图,生成UML图(更完整版)](https://blog.csdn.net/guomainet309/article/details/5302 ...

随机推荐

  1. HW5.23

    public class Solution { public static void main(String[] args) { int count = 0; for(int i = 0; i < ...

  2. HDU1247 - Hat’s Words(Trie树)

    题目大意 给定一些单词,要求你把所有的帽子单词找出来,如果某个单词恰好由另外两个单词连接而成,那么它就是帽子单词 题解 先把所有单词插入到Trie树,然后判断每个单词是不是帽子单词,做法就是:对于第i ...

  3. Weblogic 集群部署说明 --转

    代理web.xml 设置 <servlet> l                <servlet-name>HttpClusterServlet</servlet-nam ...

  4. poj 2117 Electricity【点双连通求删除点后最多的bcc数】

    Electricity Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 4727   Accepted: 1561 Descr ...

  5. springboot 详细配置2

    # =================================================================== # COMMON SPRING BOOT PROPERTIE ...

  6. 【C#】Entity Framework 增删改查和事务操作

    1.增加对象 DbEntity db = new DbEntity(); //创建对象实体,注意,这里需要对所有属性进行赋值(除了自动增长主键外),如果不赋值,则会数据库中会被设置为NULL(注意是否 ...

  7. Java解惑五:类之谜

    本文是依据JAVA解惑这本书,做的笔记.电子书见:http://download.csdn.net/detail/u010378705/7527721 谜题46 函数重载的问题. JAVA重载解析过程 ...

  8. C++ Primer--虚函数与纯虚函数的区别

    首先:强调一个概念 定义一个函数为虚函数,不代表函数为不被实现的函数. 定义他为虚函数是为了允许用基类的指针来调用子类的这个函数. 定义一个函数为纯虚函数,才代表函数没有被实现. 定义纯虚函数是为了实 ...

  9. CentOS下挂载U盘

    插入U盘提示: [sdb] No Caching mode page present [sdb] Assuming drive cache: write through 再用fdisk -l 来查看U ...

  10. mysql-gdb--oracle

    https://blogs.oracle.com/ksplice/entry/8_gdb_tricks_you_should