皮裤小胖 皮裤小胖
关注数: 8 粉丝数: 352 发帖数: 7,470 关注贴吧数: 30
weka 从前年开始使用weka最数据挖掘方面的研究,到现在有一年半的时间了。看到我们同组的兄弟写了关于weka方面的总结,我也想整理一下。因为网上的资料实在是太少,记得刚接手的时候,真是硬着头皮看代码。不过到现在看来,也积累了很多的代码了。希望能够在这里跟大家分享一下学习weka的乐趣与经验。 Weka是来之新西兰怀卡托大学的一款开源软件,主要是数据挖掘方面的一些算法的集合。这款软件大概是当前数据挖掘领域最好的开源软件了,当然国外还有其它一些组织维护的有自己的开源软件,但是只有这款软件应用是比较广泛的了。具体关于weka的信息可以到官网去查看http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fwww.cs.waikato.ac.nz%2Fml%2Fweka%2F+&urlrefer=99b16ba28311fa60d01b57b3b9fcf228,软件的下载也可大家到官网去。 我是从weka3.4一直用到现在的3.6版本的,其间weka在图形界面上有一些变动,但是底层的框架结构没有太大的变化,主要是添加一些新的算法什么的。总之大家可以放心的使用。我现在积累的代码是从3.5版本积累下来的,到现在3.6版本,集成起来一点问题都没有,这大概也是我喜欢weka的一个原因。 数据挖掘的过程一般如下: 1. 读入训练、测试样本 2. 初始化分类器 3. 使用训练样本训练分类器 4. 使用测试样本测试分类器的学习效果 5. 打印分类结果 我们现在看看一个简单的实例 package com.csdn; import java.io.File; import weka.classifiers.Classifier; import weka.classifiers.Evaluation; import weka.core.Instance; import weka.core.Instances; import weka.core.converters.ArffLoader; public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Instances ins = null; Classifier cfs = null; try{ /* * 1.读入训练、测试样本 * 在此我们将训练样本和测试样本作为同一个样本 */ File file= new File("C://Program Files//Weka-3-6//data//contact-lenses.arff"); ArffLoader loader = new ArffLoader(); loader.setFile(file); ins = loader.getDataSet(); //在使用样本之前一定要首先设置instances的classIndex,否则在使用instances对象是会抛出异常 ins.setClassIndex(ins.numAttributes()-1); /* * 2.初始化分类器 * 具体使用哪一种特定的分类器可以选择,请将特定分类器的class名称放入forName函数 * 这样就构建了一个简单的分类器 */ cfs = (Classifier)Class.forName("weka.classifiers.bayes.NaiveBayes").newInstance(); /* * 3.使用训练样本训练分类器 */ cfs.buildClassifier(ins); /* * 4.使用测试样本测试分类器的学习效果 * 在这里我们使用的训练样本和测试样本是同一个,在实际的工作中需要读入一个特定的测试样本 */ Instance testInst; /* * Evaluation: Class for evaluating machine learning models * 即它是用于检测分类模型的类 */ Evaluation testingEvaluation = new Evaluation(ins); int length = ins.numInstances(); for (int i =0; i < length; i++) { testInst = ins.instance(i); //通过这个方法来用每个测试样本测试分类器的效果 testingEvaluation.evaluateModelOnceAndRecordPrediction( cfs, testInst); } /* * 5.打印分类结果 * 在这里我们打印了分类器的正确率 * 其它的一些信息我们可以通过Evaluation对象的其它方法得到 */ System.out.println( "分类器的正确率:" + (1- testingEvaluation.errorRate())); }catch(Exception e){ e.printStackTrace(); } } } 通过这个实例,我们可以看到在weka上做开发非常简单的,每个模块weka都提供了很好的支持。同时,我们可以在此基础上对weka进行一个简单的封装。设计一个Util类,将数据读取,以及分类器测试等功能放在这个Util类中共以后其它的程序使用。 获取样本Instances /* * 从.arff文件中获取样本Instances; * 1.fileName instances的文件名 */ public static Instances getInstances(String fileName) throws Exception{ File file= new File(fileName); return getInstances(file); } /* * 从.arff文件中获取样本Instances; * 1.file 获得instances的File对象 */ public static Instances getInstances(File file) throws Exception{ Instances inst = null; try{ ArffLoader loader = new ArffLoader(); loader.setFile(file); inst = loader.getDataSet(); } catch(Exception e){ throw new Exception(e.getMessage()); } return inst; } 获得一个Evaluation对象: /* * 获得一个Evaluation对象 * 1.h 一个已经训练过的分类器 * 2.ins 测试样本 */ public static Evaluation getEvaluation(Classifier h,Instances ins){ try{ Instance testInst; /* * Evaluation: Class for evaluating machine learning models * 即它是用于检测分类模型的类 */ Evaluation testingEvaluation = new Evaluation(ins); int length = ins.numInstances(); for (int i =0; i < length; i++) { testInst = ins.instance(i); //通过这个方法来用每个测试样本测试分类器的效果 testingEvaluation.evaluateModelOnceAndRecordPrediction( h, testInst); } return testingEvaluation; } catch(Exception e){ System.out.println("haha bug!"); System.out.println(e); } return null; } 通过这几个函数我们就将读取instances对象的功能以及测试分类器的效果的功能封装到两个static函数中了,下次我们使用的时候就可以方便的调用这个接口了,可以省去我们写这些代码的时间了。 大家明白了吗?还是比较简单的吧。
Weka初步一 从前年开始使用weka最数据挖掘方面的研究,到现在有一年半的时间了。看到我们同组的兄弟写了关于weka方面的总结,我也想整理一下。因为网上的资料实在是太少,记得刚接手的时候,真是硬着头皮看代码。不过到现在看来,也积累了很多的代码了。希望能够在这里跟大家分享一下学习weka的乐趣与经验。 Weka是来之新西兰怀卡托大学的一款开源软件,主要是数据挖掘方面的一些算法的集合。这款软件大概是当前数据挖掘领域最好的开源软件了,当然国外还有其它一些组织维护的有自己的开源软件,但是只有这款软件应用是比较广泛的了。具体关于weka的信息可以到官网去查看http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fwww.cs.waikato.ac.nz%2Fml%2Fweka%2F+&urlrefer=99b16ba28311fa60d01b57b3b9fcf228,软件的下载也可大家到官网去。 我是从weka3.4一直用到现在的3.6版本的,其间weka在图形界面上有一些变动,但是底层的框架结构没有太大的变化,主要是添加一些新的算法什么的。总之大家可以放心的使用。我现在积累的代码是从3.5版本积累下来的,到现在3.6版本,集成起来一点问题都没有,这大概也是我喜欢weka的一个原因。 数据挖掘的过程一般如下: 1. 读入训练、测试样本 2. 初始化分类器 3. 使用训练样本训练分类器 4. 使用测试样本测试分类器的学习效果 5. 打印分类结果 我们现在看看一个简单的实例 package com.csdn; import java.io.File; import weka.classifiers.Classifier; import weka.classifiers.Evaluation; import weka.core.Instance; import weka.core.Instances; import weka.core.converters.ArffLoader; public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Instances ins = null; Classifier cfs = null; try{ /* * 1.读入训练、测试样本 * 在此我们将训练样本和测试样本作为同一个样本 */ File file= new File("C://Program Files//Weka-3-6//data//contact-lenses.arff"); ArffLoader loader = new ArffLoader(); loader.setFile(file); ins = loader.getDataSet(); //在使用样本之前一定要首先设置instances的classIndex,否则在使用instances对象是会抛出异常 ins.setClassIndex(ins.numAttributes()-1); /* * 2.初始化分类器 * 具体使用哪一种特定的分类器可以选择,请将特定分类器的class名称放入forName函数 * 这样就构建了一个简单的分类器 */ cfs = (Classifier)Class.forName("weka.classifiers.bayes.NaiveBayes").newInstance(); /* * 3.使用训练样本训练分类器 */ cfs.buildClassifier(ins); /* * 4.使用测试样本测试分类器的学习效果 * 在这里我们使用的训练样本和测试样本是同一个,在实际的工作中需要读入一个特定的测试样本 */ Instance testInst; /* * Evaluation: Class for evaluating machine learning models * 即它是用于检测分类模型的类 */ Evaluation testingEvaluation = new Evaluation(ins); int length = ins.numInstances(); for (int i =0; i < length; i++) { testInst = ins.instance(i); //通过这个方法来用每个测试样本测试分类器的效果 testingEvaluation.evaluateModelOnceAndRecordPrediction( cfs, testInst); } /* * 5.打印分类结果 * 在这里我们打印了分类器的正确率 * 其它的一些信息我们可以通过Evaluation对象的其它方法得到 */ System.out.println( "分类器的正确率:" + (1- testingEvaluation.errorRate())); }catch(Exception e){ e.printStackTrace(); } } } 通过这个实例,我们可以看到在weka上做开发非常简单的,每个模块weka都提供了很好的支持。同时,我们可以在此基础上对weka进行一个简单的封装。设计一个Util类,将数据读取,以及分类器测试等功能放在这个Util类中共以后其它的程序使用。 获取样本Instances /* * 从.arff文件中获取样本Instances; * 1.fileName instances的文件名 */ public static Instances getInstances(String fileName) throws Exception{ File file= new File(fileName); return getInstances(file); } /* * 从.arff文件中获取样本Instances; * 1.file 获得instances的File对象 */ public static Instances getInstances(File file) throws Exception{ Instances inst = null; try{ ArffLoader loader = new ArffLoader(); loader.setFile(file); inst = loader.getDataSet(); } catch(Exception e){ throw new Exception(e.getMessage()); } return inst; } 获得一个Evaluation对象: /* * 获得一个Evaluation对象 * 1.h 一个已经训练过的分类器 * 2.ins 测试样本 */ public static Evaluation getEvaluation(Classifier h,Instances ins){ try{ Instance testInst; /* * Evaluation: Class for evaluating machine learning models * 即它是用于检测分类模型的类 */ Evaluation testingEvaluation = new Evaluation(ins); int length = ins.numInstances(); for (int i =0; i < length; i++) { testInst = ins.instance(i); //通过这个方法来用每个测试样本测试分类器的效果 testingEvaluation.evaluateModelOnceAndRecordPrediction( h, testInst); } return testingEvaluation; } catch(Exception e){ System.out.println("haha bug!"); System.out.println(e); } return null; } 通过这几个函数我们就将读取instances对象的功能以及测试分类器的效果的功能封装到两个static函数中了,下次我们使用的时候就可以方便的调用这个接口了,可以省去我们写这些代码的时间了。 大家明白了吗?还是比较简单的吧。 从前年开始使用weka最数据挖掘方面的研究,到现在有一年半的时间了。看到我们同组的兄弟写了关于weka方面的总结,我也想整理一下。因为网上的资料实在是太少,记得刚接手的时候,真是硬着头皮看代码。不过到现在看来,也积累了很多的代码了。希望能够在这里跟大家分享一下学习weka的乐趣与经验。 Weka是来之新西兰怀卡托大学的一款开源软件,主要是数据挖掘方面的一些算法的集合。这款软件大概是当前数据挖掘领域最好的开源软件了,当然国外还有其它一些组织维护的有自己的开源软件,但是只有这款软件应用是比较广泛的了。具体关于weka的信息可以到官网去查看http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fwww.cs.waikato.ac.nz%2Fml%2Fweka%2F+&urlrefer=99b16ba28311fa60d01b57b3b9fcf228,软件的下载也可大家到官网去。 我是从weka3.4一直用到现在的3.6版本的,其间weka在图形界面上有一些变动,但是底层的框架结构没有太大的变化,主要是添加一些新的算法什么的。总之大家可以放心的使用。我现在积累的代码是从3.5版本积累下来的,到现在3.6版本,集成起来一点问题都没有,这大概也是我喜欢weka的一个原因。 数据挖掘的过程一般如下: 1. 读入训练、测试样本 2. 初始化分类器 3. 使用训练样本训练分类器 4. 使用测试样本测试分类器的学习效果 5. 打印分类结果 我们现在看看一个简单的实例 package com.csdn; import java.io.File; import weka.classifiers.Classifier; import weka.classifiers.Evaluation; import weka.core.Instance; import weka.core.Instances; import weka.core.converters.ArffLoader; public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Instances ins = null; Classifier cfs = null; try{ /* * 1.读入训练、测试样本 * 在此我们将训练样本和测试样本作为同一个样本 */ File file= new File("C://Program Files//Weka-3-6//data//contact-lenses.arff"); ArffLoader loader = new ArffLoader(); loader.setFile(file); ins = loader.getDataSet(); //在使用样本之前一定要首先设置instances的classIndex,否则在使用instances对象是会抛出异常 ins.setClassIndex(ins.numAttributes()-1); /* * 2.初始化分类器 * 具体使用哪一种特定的分类器可以选择,请将特定分类器的class名称放入forName函数 * 这样就构建了一个简单的分类器 */ cfs = (Classifier)Class.forName("weka.classifiers.bayes.NaiveBayes").newInstance(); /* * 3.使用训练样本训练分类器 */ cfs.buildClassifier(ins); /* * 4.使用测试样本测试分类器的学习效果 * 在这里我们使用的训练样本和测试样本是同一个,在实际的工作中需要读入一个特定的测试样本 */ Instance testInst; /* * Evaluation: Class for evaluating machine learning models * 即它是用于检测分类模型的类 */ Evaluation testingEvaluation = new Evaluation(ins); int length = ins.numInstances(); for (int i =0; i < length; i++) { testInst = ins.instance(i); //通过这个方法来用每个测试样本测试分类器的效果 testingEvaluation.evaluateModelOnceAndRecordPrediction( cfs, testInst); } /* * 5.打印分类结果 * 在这里我们打印了分类器的正确率 * 其它的一些信息我们可以通过Evaluation对象的其它方法得到 */ System.out.println( "分类器的正确率:" + (1- testingEvaluation.errorRate())); }catch(Exception e){ e.printStackTrace(); } } } 通过这个实例,我们可以看到在weka上做开发非常简单的,每个模块weka都提供了很好的支持。同时,我们可以在此基础上对weka进行一个简单的封装。设计一个Util类,将数据读取,以及分类器测试等功能放在这个Util类中共以后其它的程序使用。 获取样本Instances /* * 从.arff文件中获取样本Instances; * 1.fileName instances的文件名 */ public static Instances getInstances(String fileName) throws Exception{ File file= new File(fileName); return getInstances(file); } /* * 从.arff文件中获取样本Instances; * 1.file 获得instances的File对象 */ public static Instances getInstances(File file) throws Exception{ Instances inst = null; try{ ArffLoader loader = new ArffLoader(); loader.setFile(file); inst = loader.getDataSet(); } catch(Exception e){ throw new Exception(e.getMessage()); } return inst; } 获得一个Evaluation对象: /* * 获得一个Evaluation对象 * 1.h 一个已经训练过的分类器 * 2.ins 测试样本 */ public static Evaluation getEvaluation(Classifier h,Instances ins){ try{ Instance testInst; /* * Evaluation: Class for evaluating machine learning models * 即它是用于检测分类模型的类 */ Evaluation testingEvaluation = new Evaluation(ins); int length = ins.numInstances(); for (int i =0; i < length; i++) { testInst = ins.instance(i); //通过这个方法来用每个测试样本测试分类器的效果 testingEvaluation.evaluateModelOnceAndRecordPrediction( h, testInst); } return testingEvaluation; } catch(Exception e){ System.out.println("haha bug!"); System.out.println(e); } return null; } 通过这几个函数我们就将读取instances对象的功能以及测试分类器的效果的功能封装到两个static函数中了,下次我们使用的时候就可以方便的调用这个接口了,可以省去我们写这些代码的时间了。 大家明白了吗?还是比较简单的吧。
Weka初步二(聚类算法) 上次我介绍了分类器的使用方法,这次我来介绍一下聚类算法。聚类算法在数据挖掘里面被称之为无监督学习(unsupervised learning),这是与分类算法(supervised learning)相对的。在它们两者之间还一种叫做半监督学习(semi-supervised learning)这个我会在后面的文章中重点介绍。所谓无监督学习就是在预先不知道样本类别的情况下,由聚类算法来判别样本的类别的一种学习方法。 聚类算法的一般过程分为: 1. 读入需预测样本 2. 初始化聚类算法(并设置参数) 3. 使用聚类算法对样本进行聚类 4. 打印聚类结果 我们来看下面的一个实例: package com.csdn; import java.io.File; import weka.clusterers.SimpleKMeans; import weka.core.DistanceFunction; import weka.core.EuclideanDistance; import weka.core.Instances; import weka.core.converters.ArffLoader; public class SimpleCluster { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Instances ins = null; Instances tempIns = null; SimpleKMeans KM = null; DistanceFunction disFun = null; try{ /* * 1.读入样本 */ File file= new File("C://Program Files//Weka-3-6//data//contact-lenses.arff"); ArffLoader loader = new ArffLoader(); loader.setFile(file); ins = loader.getDataSet(); /* * 2.初始化聚类器 * 在3.6版本可以通过setDistanceFunction(DistanceFunction df) * 函数设置聚类算法内部的距离计算方式 * 而在3.5版本里面默认的采用了欧几里得距离 */ KM = new SimpleKMeans(); //设置聚类要得到的类别数量 KM.setNumClusters(2); /* * 3.使用聚类算法对样本进行聚类 */ KM.buildClusterer(ins); /* * 4.打印聚类结果 */ tempIns = KM.getClusterCentroids(); System.out.println("CentroIds: " + tempIns); }catch(Exception e){ e.printStackTrace(); } } } 我们可以看到读入样本的过程是与上一节的一样的方法。在构建聚类器时也是通过现有的类来实现的。现在weka的聚类算法有11种之多,我所了解的也就是一两种算法而已。SimpleKMean是最简单的KMeans算法,因为聚类算法的核心是通过距离来得到类别(类间相异,类内相似),所以需要有一个计算距离的公式常见的就是欧几里得距离了。在3.5版本中weka没有考虑其它距离公式的情况,将SimpleKMean计算距离的方法默认为欧几里得距离。在3.6中就weka提供了setDistanceFunction(DistanceFunction df)的接口可以方便我们设置自己的距离计算方法。 有一点要注意,在上面的聚类过程中,我们将样本的类别属性也放在里面了,这样做是不符合常识的,因为样本类别属性包含了大量的类别信息,可以诱导聚类算法得到很好的效果。但是这与我们的初衷是相背离的,所以在聚类之前我们要记住删除掉类别属性。 在第四步打印聚类结果是一个很简单的信息,里面包括了聚类的几个中心点。在我们写程序时,可以使用ClusterEvaluation类来打印更多的信息。
如何安装 weka-3-7-0.exe 给你个参考,虽说版本不同,但原理是相通的, 一、WEKA的安装 在WEKA的安装文件中有weka-3-5-6.exe和weka-3-5-6jre.exe,这两个软件我们安装一个即可,它们的区别是weka-3-5-6.exe只安装WEKA,而weka-3-5-6jre.exe是将WEKA和JRE一起安装,所以在安装之前我们应该首先检查一下我们的电脑中是否安装了JRE,如果本机中已经安装了JRE,那么我们就选择weka-3-5-6.exe安装程序,如果没有安装JRE,我们就选择weka-3-5-6jre.exe安装程序,下面我们来分别介绍这两种安装方法。 1、 weka-3-5-6.exe 若本机中已经安装了JRE,那么我们就选择安装此文件,双击此文件开始进行安装,在出现的窗口中点击Next 然后点击I Agree 再点击Next 此时出现如下窗口,Browse左边的区域是WEKA的默认安装路径,我们可以点击Browse选择我们想要安装WEKA的位置,然后点击窗口下方的NEXT,也可以不点击Browse直接将WEKA安装到默认的目录下,即直接点击窗口下方的NEXT, 在新出现的窗口中点击Install开始安装, 等待几秒种后点击Next 在新窗口中会有一个Start Weka单选框(默认情况下是选中的),如果我们想安装完成后就启动WEKA,那么我们就直接点击新窗口下方的FINISH 完成安装,如果我们不想立即启动WEKA可以单击Start Weka前面的单选框,然后点击FINISH即可完成安装,此时WEKA已经安装到我们的电脑中。 2、 weka-3-5-6jre.exe 若本机中没有安装JRE,我们选择安装此文件,双击此文件开始进行安装,在出现的窗口中点击Next 然后点击I Agree 再点击Next 此时出现如下窗口 Browse左边的区域是默认安装WEKA的地方,我们可以点击Browse选择我们想将WEKA安装的位置,然后点击窗口下方的NEXT,也可以不点击Browse直接将WEKA安装到默认的目录下,即直接点击窗口下方的NEXT, 在新出现的窗口中点击Install开始安装, 等待几秒种后在新出现的窗口中直接点击下方的接受(此时进行的是典型安装模式), 然后等待几分钟,此时正在安装的是J2SE Runtime Environment,待安装完毕我们点击完成, 然后在新出现的窗口中点击NEXT, 在新窗口中会有一个Start Weka单选框(默认情况下是选中的),如果我们想安装完成后就启动WEKA,那么我们就直接点击新窗口下方的FINISH 完成安装,如果我们不想立即启动WEKA可以单击Start Weka前面的单选框,然后点击FINISH即可完成安装。 此时WEKA和JRE均已安装到我们的电脑中。 3、配置环境变量 以上两种不同的方式安装完成后我们都还要配置环境变量,右键单击桌面上的我的电脑,点击属性, 在新出现的系统属性窗口中点击高级, 然后点击窗口下方的环境变量,此时会出现一个环境变量窗口, 该窗口有两个区域,上面的是Administrator的用户变量,下面的是系统变量,我们需要配置的是下面的这个区域中的变量。找到下面系统变量窗口中的PATH变量并双击,在变量值的区域中的最前面添上我们的JRE的安装路径(注意要到BIN文件)。 例如如果我们安装的时候选择的是默认的安装目录,那么就添加如下内容:C:\Program Files\Java\jre1.5.0_13\bin; 若没有PATH变量可以点击窗口下方的新建按钮添加此属性, 在变量名中输入PATH,在变量值中输入C:\Program Files\Java\jre1.5.0_13\bin;,然后点击确定按钮)。 然后点击确定 点击确定 点击确定即可,此时环境变量配置完成。 二、WEKA的启动 在开始程序中找到WEKA3.5.6(注意版本不同名称也不同,但都是叫WEKA……),选择WEKA3.5(with console) 单击即可启动WEKA,启动WEKA时我们会发现首先出现的是一个命令提示符 等待几秒种后又出现了一个窗口Weka3.5.6 这个窗口就是WEKA的主窗口,接下来我们就可以使用WEKA工具了。 三、连接数据库方法 但是这时在刚才出现的命令提示符中有这样一行信息: Trying to add JDBC driver: oracle.jdbc.driver.OracleDriver - Error, not in CLASS PATH? 这则信息说明我们无法连接数据库,这时我们进行连接数据库的配置。 在WEKA的安装目录下(如C:\Program Files\Weka-3-5)新建一个lib目录,将安装文件中的数据库Driver for JDBC(jar包)即ojdbc14.jar文件拷贝进lib,然后再右键点击桌面上的我的电脑,选择属性 切换到高级选项卡 点击窗口下方的环境变量(和刚才配置环境变量时一致),在系统变量中双击CLASSPATH(若没有此变量也需要点击新建按钮来添加,方法和前面添加PATH变量一致) 在编辑系统变量窗口中的变量值中的最前面添加ojdbc14.jar文件所在的目录,最前面要加上“.;”,假如还以刚才的目录为例,则应添加:.;C:\Program Files\Weka-3-5\lib\ojdbc14.jar; 然后点击确定——>确定——>确定即可。 然后我再将WEKA安装程序中的DatabaseUtils.props文件复制到WEKA的安装路径下(如C:\Program Files\Weka-3-5),weka运行时会使用此文件。用UltraEdit打开此文件对里面的内容进行更改。 找到: # database URL jdbcURL=jdbc:oracle:thin:@10.8.2.16:1521:olap将jdbcURL的内容改为我们想要连接的数据库,如jdbcURL=jdbc:oracle:thin:@10.8.102.6:1521:hollycrm(假如我们安装的是ORACLE数据库,连接到10.8.102.6这台服务器,服务器的端口号(port)为:1521,服务器的名称为hollycrm)然后保存修改即可 重新打开WEKA,我们发现命令提示符中刚才的信息现在没有了,说明我们配置成功了,然后我们点击WEKA3.5.6窗口第二个菜单(Applications)下的Explorer 这时我们就打开了Explorer窗口,在该窗口的第二栏中有四个可点按钮,我们点击第三个按钮:Open DB…… 这时会出现一个新的窗口,窗口的最上方CONNECTION信息中的URL就是我们刚刚配置地址,我们点击URL右边的USER按钮 在新出现的对话窗口中分别填上我们要登陆的数据库的用户名和密码,然后点击OK,再点击USER右边的按钮:CONNECT,此时如果在最下方的INFO窗口中会显示这样的信息:connecting to:jdbc:oracle:thin:@10.8.102.6:1521:hollycrm=true ,则说明我们连接数据库成功 相反,如果显示的信息为:connecting to:jdbc:oracle:thin:@10.8.102.6:1521:hollycrm=flase……,则说明我们连接数据库失败。 连接成功后我们就可以在中间的Query窗口中进行一些简单的数据库操作了。 四、调整JVM 如果我们在使用WEKA的过程中,在导入csv文件时出现了JVM堆大小不够的问题,我们就需要调整JVM的参数,将内存扩充到至少512M,调整方法如下: 在WEKA的安装目录下(如C:\Program Files\Weka-3-5)找到RunWeka.ini文件,打开此文件,将此文件后面的maxheap=128m修改为maxheap=512m,然后保存即可。 注:此参数需要视数据和机器设备情况综合考虑调整。 此时WEKA安装配置均已完成。 祝顺利!有问题,请追问.有帮助,望采纳.
weka 数据挖掘终于可以和烦人的代码们说再见了! Weka,一个不足两岁的新生儿,让数据挖掘轻松易行,无需编程也能轻松搞定。 Weka是基于java,用于数据挖掘和知识分析一个平台。来自世界各地的java爱好者们都可以把自己的算法放在这个平台上,然后从海量数据中发掘其背后隐藏的种种关系;也许你只是出于对数据的狂热爱好,但也许你的发现会蕴含着无限的商机。 打开Weka,首先出现一个命令行窗口。原以为要在这个命令行下写java语句呢,不过稍等一秒,Weka GUI Chooser的出现了。这是一个很简单的窗体,提供四个按钮:Simple CLI、Explorer、Experimenter、KnowledgeFlow。Simple CLI应该是一个使用命令行的界面,有点像SAS的编辑器;Explorer是则是视窗模式下的数据挖掘工具;Experimenter和 KnowledgeFlow的使用有待进一步摸索.... 先打开Weka Exlporer感受一下它的强大吧。它有六个标签页,分别是Preprocess、Classify、Cluster、Associate、 Select attributes、Visualize。在Preprocess中Open一个数据文件(Weka使用的数据文件是.arff,其实是一个文本数据集,格式并不复杂,用notepad打开一看就明白了)。当然也可以Open URL或Open DB,不过我没有check一下支持哪些DB。 打开数据文件后,可以使用Filter进行一下过滤,相当于“预处理的预处理”。Filter提供了许多算法来过滤数据,比如 filters/unsupervised/instance/normalize应该是一个标准化的算法。当然,也可以编写你自己的算法! 这时窗体上已经给出这个数据集的一些基本特征了,比如有多少属性,各属性的一些简单统计量,右下方还给出一些可视化效果比如柱状图。通过这些可以初步了解这个数据集了。但这些都是很直观的可以看出来,好戏在后头,隐藏的关系即将登场。 接下来的两个标签页是classify(分类)和cluster(聚类),接触数据挖掘的人对它们一定不会陌生。同样Weka有许多分类和聚类算法可供选择,在这里面称为clasifier和clusterer。不过Weka提供的classify功能似乎还不够灵活,只能定长度和定频率地分类。但这个关系不大,现在很多数据处理软件都可以做到这个,比如excel。Cluster功能强大,提供了许多巧妙的聚类算法,选定一个算法,给出你所需要生成的聚类数目,就可以自动完成。当然如果能不给出聚类数目也能自动聚类的话就更佳了,不过我还没发现怎么做。 Next,终于到伟大的Associate了! 这是一个用于发掘Associate Rules(关联规则)的模块。对商学略有涉猎的人一定熟知沃尔玛发现了啤酒和尿布销售的关系这一佳话。有了Weka Associate,任何一家超市都可以做到这一点了。将前面导入的数据使用Associator进行发掘,就可以发现其中无数隐藏的关系。Weka-3 -4提供了Apriori、PredictiveApriori、Tertius三种关联规则发掘算法,不过我感觉这已经够用了。选定一个算法,进行一些必要的设置,包括支持度上界、下界,每次运算的支持度递减值,等等。另外一个重要的参数:所需要生成的关联规则个数。太不可思议了,以前我们能从海量数据中发现一个关联规则就已经沾沾自喜,现在Weka居然问你想生成多少关联规则! 参数设置完成,点Start,就可以去喝茶了。不一会,10条关联规则已经生成,可以提交给老板了。当然,你还可以分析一下哪些规则比较有用,哪一条有潜在收益,这就需要business sense了。 另外两个标签页还没怎么看。Select attributes大概是针对单属性的分析?Visualize则提供了许多可视化效果,需要拿出去演示时很方便。不过今天使用感觉这个模块的功能有点问题,没太搞懂。也有可能是我用错了。 Weka实在是一个伟大的工具。基于java,却没有运行其它java程序那种慢吞吞的感觉。前天我还在说Data Mining is excruciating but interesting,有了Weka,Data Mining也可以轻轻松松了!
首页 2 3 4 5 6 7 下一页