weka 源码学习
zt_706
这个作者很懒,什么都没留下…
展开
-
Weka 开发[1]-Instances类
转自 Koala++'s blog 感谢原作者首先,我不懂java,如果高手看到我的代码有错,就不用发贴鄙视了,直接把正确的发送到我的邮箱quweiprotoss@163.com中就好了,我会在更新中表示感谢。 言归正传,开始介绍Weka,先google一下,把Weka软件下载下来,安装完成之后,在Weka的安装目录中有一个weka.jar的包。转载 2013-04-26 17:01:45 · 1004 阅读 · 1 评论 -
Weka3.5中使用LibSVM
Weka中并不是没有SVM算法,Weka中有SMO算法的实现。LibSVM运行的比Weka里的SMO快的多,如果你敢用SMO算法去训练大数据集,你就明白天荒地老的真实含意了。其它和Weka结合的最主要的原因,我认为是,我们开始的时候往往都是用别的算法去试着做实验的(或者本来就需要多种基分类器),比如Naïve Bayes(LibSVM是比SMO快的多,可是比起来Naïve Bayes,它还是蜗牛)转载 2013-04-30 23:42:56 · 1117 阅读 · 0 评论 -
Weka开发[14]-AdaBoost源代码介绍
转自 Koala++'s blog 感谢原作者 这一次讲的是Ensemble的东西,一位读者希望我讲一下Adaboost的内容,这种Ensemble看起来的确比较吓人,推荐一篇论文:Ensemble Based Systems in Decision Making. 在这里所有理论的东西我就不介绍了。与以往一样,先看buildClassifier函数(我在函数中将不重要的代码全部去掉)转载 2013-05-09 11:49:11 · 1106 阅读 · 0 评论 -
Weka开发[17]——关联规则之Apriori
转自 Koala++'s blog 先运行起来,函数如下:publicvoid GetAssociationRules1(){try{Discretize discretize = new Discretize();discretize.setInputFormat( m_instances );m_instances = Filter.useFilter(转载 2013-05-09 14:26:19 · 841 阅读 · 0 评论 -
Weka开发[19]——NaiveBayes源代码分析
本来不想自己写Naïve Bayes这篇源码分析的,叫不动人,没办法,只好自己写了。请读者自己看一下论文Estimating Continuous Distributions in Bayesian Classifiers。什么都不懂的读者请看Tom mitchell的Generative and Discriminative Classifiers: Naive Bayes and Logi转载 2013-05-09 15:33:37 · 831 阅读 · 0 评论 -
Weka开发[20]——IB1源代码分析
转自 Koala++'s blog 首先先解释一下算法名字,很多人很奇怪为什么叫IB1,IBK,IB Instance-Based的缩写,但按Jiawei Han书上所写,KNN其实是Instance-based learning(也被称为Lazing learning)中一种,他还讲解了基于案例的推理(Case-based reasoning)。算法其实是KNN,但是作者论转载 2013-05-09 15:40:37 · 822 阅读 · 0 评论 -
Weka开发[11]—J48源代码介绍
转自 Koala++'s blog 感谢原作者 这次介绍一下J48的源码,分析J48的源码似乎真还是有用的,同学改造J48写过VFDT,我自己用J48进行特征选择(当然很失败)。J48的buildClassfier函数:publicvoid buildClassifier(Instances instances)throws Exception {ModelSelecti转载 2013-05-09 11:44:25 · 932 阅读 · 0 评论 -
Weka开发[13]-Ensemble
转自 Koala++'s blog 感谢原作者 这一篇介绍一下如何使用Ensemble的类,不过提醒一下,不要什么都来个Ensemble,对这种毫无想象力可言的做法,我真是有点无语。 我已经写了这么多篇了,我也有点累了,这篇也是有人发E-mail让我写的。大家就先自己看吧,至于是不是对的,我以后有机会了我看了,再告诉大家了。package instanceTest;转载 2013-05-09 11:45:52 · 733 阅读 · 0 评论 -
Weka开发[15]-ZeroR源代码介绍(入门篇)
转自 Koala++'s blog 感谢原作者 最近除了外语,实在想不出有什么值得去做的事情,但外语也不可能学一天,想想还是再写两篇吧,以前写的ID3虽然比较简单,但是对于刚接触的人也许也不是那么简单,这次介绍Weka中默认的分类器ZeroR,用这个入门应该是比较好的选择。首先提一下,ZeroR很多人以为是乱猜,实际是如果类别是离散值,就返回最有可能的类别,如果是连续值,则返回类别转载 2013-05-09 11:50:43 · 897 阅读 · 0 评论 -
[weka 开发 15-1] Multi-Label Classification(多标签分类) 介绍
转自 Koala++'s blog 感谢原作者Multi-Label是一个比较新的研究方面,可能很多人没有听过。这里我简单地翻译一下Tsoumakas的介绍(http://mlkd.csd.auth.gr/multilabel.html)。Introduction Traditional single-label classification is concerned with lea转载 2013-05-09 11:52:26 · 2031 阅读 · 0 评论 -
Weka开发[16]-OneR源代码介绍
转自 Koala++'s blog 感谢原作者 以前打算写一篇有关OneR的weka源代码介绍的,但考虑知道这个算法的人太少,不想今天有人问这个算法,在这里我就把它补上。 OneR是一个很简单的算法,出自论文:Verysimpleclassificationrulesperformwellonmostcommonlyuseddatasets,由于论文的风格过于奔放转载 2013-05-09 11:53:43 · 769 阅读 · 0 评论 -
数据流-移动超平面(HyperPlane)构造
转自 Koala++'s blog 感谢原作者 移动超平面是非常好的一种模拟数据流的方法(我感觉它应该是最好的),倒不是它没有缺点,只是别的模拟方法实在是有点差劲。 自己写的程序又一次在硬盘的结束中逝去了,还好找到一个更强大的数据流构造的程序集(不过对于我需要的移动超平面来说,它是相当的弱,以前我写的程序可以产生很多种变化,而且使用非常方便)。下面是链接:http:/转载 2013-05-09 12:04:00 · 1073 阅读 · 3 评论 -
Weka开发[6]-参数设置
转自 Koala++'s blog 感谢原作者这一次介绍的非常简单,会用传命令行参数的人就不用浪费时间看这一篇了,这一篇介绍weka中一些类参数传递的问题。首先要传递参数当然要知道参数有哪些,有什么作用,要知道这些,建议用Weka软件就好了,在源码中看也不是不可以,但请记住简单的就是最好的(Occam’s Razor)。以下的图就是打开的以J48为例的界面(不知转载 2013-04-26 17:20:41 · 1474 阅读 · 0 评论 -
Weka开发[-1]——在你的代码中使用Weka
转自 Koala++'s blog 感谢原作者2009-04-01 11:33:14| 分类: 机器学习 | 标签: |字号大中小订阅无意间在网上看到了:http://weka.wiki.sourceforge.net/Use+Weka+in+your+Java+code,相对我写的代码,它的当然更有权威性。翻译完了,第一次翻译,术语的汉语很多不清楚。还没有校对转载 2013-04-30 20:25:01 · 1030 阅读 · 0 评论 -
Weka开发[2]-分类器类
转自 Koala++'s blog 感谢原作者 这次介绍如何利用weka里的类对数据集进行分类,要对数据集进行分类,第一步要指定数据集中哪一列做为类别,如果这一步忘记了(事实上经常会忘记)会出现“Class index is negative (not set)!”这个错误,设置某一列为类别用Instances类的成员方法setClassIndex,要设置最后一列为类别则可转载 2013-04-26 17:06:15 · 1135 阅读 · 0 评论 -
Weka开发[3]-Evaluation类
转自 Koala++'s blog 感谢原作者上一次最后的结果就是一个分类的值,可能让大家大失所望,这一次会给大家一个比较完美的答案,这就是Evaluation类,这次只讲一下最简单的用法,首先初始化一个Evaluation对象,Evaluation类没有无参的构造函数,一般用Instances对象作为构造函数的参数。 如果没有分开训练集和测试集,可以使用C转载 2013-04-26 17:09:24 · 1012 阅读 · 0 评论 -
Weka开发[5]-半监督算法
转自 Koala++'s blog 感谢原作者这次介绍一个我现在正在做的半监督算法,因为我只是提出一个框架,半监督算法只是一个工具,可是为了找这个工具也让我花了不少功夫。现在介绍的暂时不是Weka的一部分,但开发者是waikato大学(也就是开发Weka的那个大学)。下载地址是http://www.cs.waikato.ac.nz/~fracpete/projects/coll转载 2013-04-26 17:14:06 · 1050 阅读 · 0 评论 -
半监督算法工具SVMlin使用
转自 Koala++'s blog 感谢原作者SVMlin中有监督SVM和半监督SVM算法,下载地址是http://people.cs.uchicago.edu/~vikass/svmlin.html,其实google一下svmlin就找到了。SVMlin is software package for linear SVMs. It is well-suited转载 2013-04-26 17:16:43 · 3043 阅读 · 0 评论 -
Weka开发[7]-LibSVM
转自 Koala++'s blog 感谢原作者首先要提的是LibSVM是一个库,Lib很明显是library的缩写,有些人不知道怎么会认为它是一种算法。它是由中国台湾的Chih-Chung Chang和Chih-Jen Lin等人开发的,他们用多种语言实现写了LibSVM。我把这一篇放到Weka开发里讲,主要讲它怎么和Weka结合,Weka中并不是没有SVM算法,Weka中转载 2013-04-26 17:21:58 · 998 阅读 · 0 评论 -
Weka开发[0]-导入Weka包
数数还是要从0数起,这一篇是何佳珍写的,原因是我懒得写这种东西,后面发现让别人干,还不如自己干:) 首先,新建一个java工程,如图接下来,我们把weka.jar导入,如图在下载的weka中找到weka.jar将其添加即可,导入后可以看到注意这里的文件都是class文件,如果想要看java源文件可以将weka-sr转载 2013-04-26 16:59:50 · 1032 阅读 · 0 评论 -
Weka开发[4]-特征选择
转自 Koala++'s blog 感谢原作者特征选择,我对这一部分也不熟,大概讲一下,用AttributeSelection进行特征选择,它需要设置3个方面,第一:对属性评价的类(自己到Weka软件里看一下,英文Attribute Evaluator),第二:搜索的方式(自己到Weka软件里看一下,英文Search Method),第三:就是你要进行特征选择的数据集了转载 2013-04-26 17:12:39 · 1496 阅读 · 0 评论 -
半监督算法工具SVMlin读取数据代码介绍
转自 Koala++'s blog 感谢原作者上一次主要讲了怎么在visual C++中编辑svmlin。有时候我们还想对svmlin进行一些改过,来满足我们自己的需要。为了不耽误高手的时间,我先把我找的两个小bug列出来,第一个svmlin.cpp中的Read函数中参数名inputs_file_name,在函数中用的是input_file_name,因为作者用的是全局转载 2013-04-26 17:19:23 · 1592 阅读 · 0 评论 -
Weka开发[9]—KMeans源码介绍
转自 Koala++'s blog 感谢原作者以前介绍的都是分类的内容,这一次介绍聚类,以最简单的SimpleKMeans源码为例。 分类中训练一个分类器是用buildClassifier(),在聚类中学习一个Clusterer是用buildCluster()。分类中分类一个样本是用classifyInstance,而在聚类中是用clusterIns转载 2013-04-26 17:25:07 · 849 阅读 · 0 评论 -
Weka开发[10]—NBTree源码介绍
转自 Koala++'s blog 感谢原作者 我不多的读者之一发E-mail给我,说他没有看出NBTree和J48的区别是什么,当时我也没什么空,所以拖到今天才草草看了看。大概讲一下。 下面是J48中的buildClassifier代码: public void buildClassifier(Instances ins转载 2013-04-26 17:29:46 · 1029 阅读 · 0 评论 -
Weka开发[8]-ID3源码介绍
转自 Koala++'s blog 感谢原作者这次介绍一下Id3源码,这次用Weka的源码介绍一下。首先Id3是继承于Classifier的: public class Id3 extends ClassifierId3[]成员变量是递归保存树的变量,数据中每一个元素都是当前结点的子结点。 /** The node's s转载 2013-04-26 17:23:24 · 650 阅读 · 0 评论 -
Weka开发[18]——寻找K个邻居
转自 Koala++'s blog寻找K个邻居,这里先给出一个例子,大部分是王义写的,进行了一点点改动:publicstatic Instances getKNeighbour( Instances sourceIns, Instance target,int kNN,int numLabels){Instances neighbours = null;try{Eucl转载 2013-05-09 14:29:08 · 855 阅读 · 0 评论