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.写程序:
packageTest;importjava.io.File;importjava.io.IOException;importweka.classifiers.Classifier;importweka.classifiers.trees.J48;importweka.core.Instances;importweka.core.converters.ArffLoader;public classMyWeka {public static void main(String[] args) throwsException {//TODO Auto-generated method stub
Classifier m_classifier = newJ48();
File inputFile= new File("C://Program Files//Weka-3-6//data//cpu.with.vendor.arff");//训练语料文件
ArffLoader atf = newArffLoader();
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
{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的常用链接。