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

在Eclipse中调用weka包实现分类的更多相关文章

  1. 机器学习:eclipse中调用weka的Classifier分类器代码Demo

    weka中实现了很多机器学习算法,不管实验室研究或者公司研发,都会或多或少的要使用weka,我的理解是weka是在本地的SparkML,SparkML是分布式的大数据处理机器学习算法,数据量不是很大的 ...

  2. 调用WEKA包进行kmeans聚类(java)

    所用数据文件:data1.txt @RELATION data1 @ATTRIBUTE one REAL @ATTRIBUTE two REAL @DATA 0.184000 0.482000 0.1 ...

  3. Eclipse中配置weka,以及添加算法

    Eclipse中配置weka 1 找到weka的安装位置,寻找weka的压缩文件weka-src.jar,将压缩文件解压,解压出的文件夹weka-src. 2 打开Eclipse,新建Java pro ...

  4. 如何制作Jar包并在android中调用jar包

    android制作jar包: 新建android工程,然后右击,点击导出,选择导出类型为Java下的JAR file,在java file specification 中不要选择androidmani ...

  5. eclipse中导入外部包却无法查看对应源码或Javadoc的入坑指南

    eclipse中导入外部包却无法查看对应源码或Javadoc的 入坑指南 出现这个错误的原因是,你虽然导入了.jar包,但没有配置对应的Javadoc或源码路径,所以在编辑器中无法查看源 码和对应AP ...

  6. 在eclipse中打jar包

    在Eclipse中打jar包 步骤: 1. 在项目名称中点击右键,点Export... 2.选择java-->Java File, next 3. 选择你打算打包的文件.可以选择某几个文件,也可 ...

  7. Eclipse中给jar包导入JavaDoc的方法

    原文转载自:http://blog.csdn.net/mr_von/article/details/7740138 在使用Java语言开发的过程中,开发人员经常需要用到一些开源的工具包.在使用别人的j ...

  8. 查看Eclipse中的jar包的源代码:jd-gui.exe

    前面搞了很久的使用JAD,各种下载插件,最后配置好了,还是不能用,不知道怎么回事, 想起一起用过的jd-gui.exe这个工具,是各种强大啊!!! 只需要把jar包直接扔进去就可以了,非常清晰,全部解 ...

  9. Eclipse中user library包管理

    1.整理jar 2.将整理出的jar包在Eclipse中分别设置为用户librarywindow -> preferences -> java -> build path -> ...

随机推荐

  1. MySQL(mariadb)主从复制模式与复制过滤

    在前一篇文章<mysql多实例与复制应用>中只对mysql的复制做了简单的介绍,本篇内容专门介绍一下mysql的复制. MySQL复制 mysql复制是指将主数据库的DDL和DML操作通过 ...

  2. 安装破解IDEA(个人使用)

    安装的过程,许多的教程都会有,我在这里附上一两个链接吧:https://blog.csdn.net/newabcc/article/details/80601933 他这里也有破解过程,但是比较麻烦, ...

  3. python代码实现截图识字

    有次网上down了个截图实识的软件,发现一天只能用10次要钱才能解锁免费,很气,作为一个菜鸡怎么能忍受 于是自己用python写了个简单的小工具,分享给大家 代码如下: 先安装库 from PIL i ...

  4. linux面试集

    shell:1.$# 和 $*之类的特殊变量 特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数.n是一个数字,表示第几个参数.例如,第一个参数就是$1 $# 传递给脚本或 ...

  5. js开发中常用小技巧

    1.获取指定范围内的随机数 function getRadomNum(min,max){ return Math.floor(Math.random() * (max - min + 1)) + mi ...

  6. PHP关闭notice级别的错误提示

    1.在php.ini文件中改动error_reporting改为: error_reporting=E_ALL & ~E_NOTICE 2.如果你不能操作php.ini文件,你可以使用如下方法 ...

  7. [Link-Cut-Tree][BZOJ2002]弹飞绵羊

    题面 Description 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏.游戏一开始,Lostmonkey在地上沿着一条直线摆上\(n\)个 ...

  8. 笔记-python-built-in functions-eval,exec,compile

    笔记-python-built-in functions-eval,exec,compile 1.      python代码执行函数 有时需要动态改变代码,也就是说代码需要是字符串格式,然后在按需要 ...

  9. 20145202马超 《Java程序设计》第二周学习总结

    一.课后练习题目 1.D 并没有给number赋值导致出现错误. 2.A 10/3相当于10=3*3+1: 10/3=3. 3.D 4.D 很明显,byte类型的数据的话300就会出现溢出的情况. 5 ...

  10. mybatis异常:There is no getter for property named 'xxx' in 'xxx'

    在使用mybatis查询的时候出现了下面的异常: org.apache.ibatis.reflection.ReflectionException: There is no getter for pr ...