C++JAVA程序调用weka聚类算法的方法
2010-09-25 21:13
429 查看
weka(http://www.cs.waikato.ac.nz/~ml/weka/)是一个功能强大的数据挖掘开源工具包,但目前网上很难找到如果在程序里面调用weka中算法的例子。特别是如果程序是用C++编写的话,就更麻烦。
前几天找了Java熟悉的师弟,把weka的源代码相关部分看了
一下,用java写了一个程序实现了在Java里面对weka的EM算法的调用。最后我把程序根据不同算法封装了一下~可以直接命令行执行。这样即使是
C++程序也可以调用weka里面的算法。在C++中用 system()语句实现命令行调用。
目前我只做了EM算法跟X-means算法的封装,感觉这两个算
法比较实用。对于分类算法,封装起来好麻烦,目前没什么时间,就暂且不弄了。如果有哪位做了分类算法方面的封装的,麻烦发现email(e-
mail:jpshen2008#gmail.com)给我,大家交流下。
附件里是封装好的这两个算法的使用(注意:由于上传文件的大大小
限制在2m,故请大家自行到weka网站上(http://www.cs.waikato.ac.nz/~ml/weka/)下载
weka程序,并且安装weka后可以在他们安装目录下找weka.jar,请把weka.jar放在lib目录下即可)。
前几天找了Java熟悉的师弟,把weka的源代码相关部分看了
一下,用java写了一个程序实现了在Java里面对weka的EM算法的调用。最后我把程序根据不同算法封装了一下~可以直接命令行执行。这样即使是
C++程序也可以调用weka里面的算法。在C++中用 system()语句实现命令行调用。
目前我只做了EM算法跟X-means算法的封装,感觉这两个算
法比较实用。对于分类算法,封装起来好麻烦,目前没什么时间,就暂且不弄了。如果有哪位做了分类算法方面的封装的,麻烦发现email(e-
mail:jpshen2008#gmail.com)给我,大家交流下。
附件里是封装好的这两个算法的使用(注意:由于上传文件的大大小
限制在2m,故请大家自行到weka网站上(http://www.cs.waikato.ac.nz/~ml/weka/)下载
weka程序,并且安装weka后可以在他们安装目录下找weka.jar,请把weka.jar放在lib目录下即可)。
XMEANS算法关键代码: weka.clusterers.XMeans clusterer = new weka.clusterers.XMeans(); clusterer.setMaxIterations(Integer.parseInt(options[1])); clusterer.setMinNumClusters(Integer.parseInt(options[2])); clusterer.setMaxNumClusters(Integer.parseInt(options[3])); Instances inst = getArffData(personName);//personName:is the input data //build the model using dataSet:inst clusterer.buildClusterer(inst); //evaluate the input data System.out.println(clusterer.toString()); ClusterEvaluation eval = new ClusterEvaluation(); eval.setClusterer(clusterer); eval.evaluateClusterer(inst); EM算法关键代码: weka.clusterers.EM clusterer = new weka.clusterers.EM(); clusterer.setMaxIterations(Integer.parseInt(options[1])); clusterer.setNumClusters(Integer.parseInt(options[2])); Instances inst = getArffData(personName); clusterer.buildClusterer(inst); System.out.println(clusterer.toString()); ClusterEvaluation eval = new ClusterEvaluation(); eval.setClusterer(clusterer); eval.evaluateClusterer(inst);
相关文章推荐
- C++/JAVA程序调用weka聚类算法的方法 推荐
- 用Swig将c/c++程序转为java代码(使用swig实现java调用c、c++的方法)
- Java 程序调用一个 C++ 类的方法
- 3Java程序JNI调用C++之修改属性调用方法
- JAVA程序中如何调用C/C++方法
- Java程序通过weka调用libsvm和liblinear的方法
- java程序调用c++的实现方法
- Java程序通过weka调用libsvm的方法
- Java程序通过weka调用libsvm的方法
- Java程序通过weka调用libsvm和liblinear的方法
- java 执行命令、调用bat文件、调用外部程序的两种方法
- java程序如何调用C++代码
- C++调用java的方法
- c/c++/java,函数调用的参数的传递方法
- 初步了解JNI------java程序调用c/c++程序
- Ubuntu下使用Java调用IKAnalyzer中文分词程序失效的解决方法
- java程序动态加载jar包,并调用其中的方法
- JAVA如何调用C/C++方法
- java 程序加载过程---3--类中申明同时申明类的静态对象 创建类的实例 访问类的静态变量 调用类的静态方法 使用反射方法 初始化类的子类对象 直接使用java.exe 调用某个类
- JAVA通过JNI调用C++程序实践