eclipse下使用java调用weka(转)
原文链接: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(转)的更多相关文章
- Eclipse下的java工程目录问题和路径问题理解
1.Eclipse下的java工程都有哪些文件夹? 答:new java project时,会默认创建SRC源代码目录,并默认创建一个bin目录作为输出目录,输出目录是指生成的class文件和配置文件 ...
- 4-1eclipse & 4-2在eclipse下开发Java
ecplise是一款继承的开发工具,可以开发我们的java程序. 下载地址: https://www.eclipse.org/downloads/ 视频中ecplise的版本 安装Ecplise: 默 ...
- Eclipse下的java工程目录
对新手来讲,一个Java工程内部的多个文件夹经常会让大家困惑.更可恶的是莫名其妙的路径问题,在Eclipse编写Java程序中,出现频率最高的错误很可能就是路径问题. 这些问题原因其实都是一个,就是关 ...
- 转载:Eclipse下的java工程目录
原文链接:https://www.cnblogs.com/milantgh/p/4029003.html 对新手来讲,一个Java工程内部的多个文件夹经常会让大家困惑.更可恶的是莫名其妙的路径问题,在 ...
- eclipse下生成Java类图和时序图,生成UML图
1.安装和使用AmaterasUML 安装AmaterasUML前,需要先安装GEF采用eclipse在线安装方式安装就好.eclipse在线安装GEF的地址:http://download.ecli ...
- eclipse下查看java源码设置
myway: 1.选择一函数,按住ctrl,显示open declaration(或按F3); 2.点进去: 如果未配置,点 source attachment configuration -- ex ...
- 如何设置eclipse下查看java源码
windows--preferences--java--installed jres --选中jre6--点击右边的edit--选中jre6/lib/rt.jar --点击右边的 source att ...
- 在Eclipse中调用weka包实现分类
1.如题. 最近写了一个FCM的聚类算法,希望能够可视化结果,因此一个想法是调用weka中的包,使自己的程序可以可视化.这里参考了网络上的方法,首先实现在Eclipse中调用weka包实现分类的功能. ...
- Eclipse下生成/编辑Java类图或时序图(UML)[转载]
一 引用文章 1.[eclipse下生成Java类图和时序图,生成UML图(更完整版)](https://blog.csdn.net/guomainet309/article/details/5302 ...
随机推荐
- HW4.46
import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...
- 利用gdb 调试android jni c动态库
http://blog.dornea.nu/2015/07/01/debugging-android-native-shared-libraries/ Since I haven't done thi ...
- 局域网接入Internet
说在前面的话 局域网接入Internet的方式多样: 有1传统的Modem(调制解调器)拨号接入,费用低廉的2 ISDN和 3 ADSL接入,费用较高的4 DDN专线接入,5 Cable Modem高 ...
- storm核心组件
Storm核心组件 了解 Storm 的核心组件对于理解 Storm 原理非常重要,下面介绍 Storm 的整体,然后介绍 Storm 的核心. Storm 集群由一个主节点和多个工作节点组成.主节点 ...
- Redis_php 学习
转载内容: PhpRedis是php的一个扩展,效率是相当高有链表排序功能,对创建内存级的模块业务关系很有用;以下是redis官方提供的命令使用技巧: Redis::__construct构造函数 1 ...
- [二]SpringMvc实践-注解
1.@RequestMapping("/list")映射访问路径 2.@RequestParam(value="id",required=false)请求参数, ...
- 如何调试什么时候SaveFileDialog会被Dispose
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:如何调试什么时候SaveFileDialog会被Dispose.
- 使用Camstudio和KeyCastOW来录屏制作软件Demo视频
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:使用Camstudio和KeyCastOW来录屏制作软件Demo视频.
- 【转】ST05
一. SQL Trace 通过SQL跟踪,可以具体查询数据来源于哪些数据库表, 例如:可以查询某个交易(或几个交易)所涉及的数据库表. 为了减少在最终查询结果的工作量,要在屏幕显示你所要显示的数据的前 ...
- linux-多线程
一.什么是线程? 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立执行的基本单位.线程自己基本上不拥有系统资源,仅仅拥有一点在执行中不可缺少的资源(如程序计数器,一组寄存器和 ...