经常看到有人问,我想修改Weka里面的算法,我想把Weka的算法加到我自己的程序里面去,但是我该从哪里着手呢?于是,这篇帖子就有必要出现了。但是,这个题目太大了,Weka里面有那么多代码呢,一个个分析起来恐怕一卷书都装不下。因此,这里只能给个大概的意思。
不要想光看这篇帖子就搞懂Weka怎么工作的,你必须自己打开Weka的代码包去体会。更不想想没有用过Weka甚至没接触过Java就来修改它的算法,你会摸不着头脑的(实际上Weka和Java都不是那么难学)。
1 从哪里获得帮助
Data Mining: Practical Machine Learning Tools and Techniques (Second Edition) 这个书的第13-15章应该是必读的。实际上下面的内容也基本上基于这几章。如果你能耐着性子把这几章读懂,肯定不需要往下看这个帖子了。
作为一个Java应用程序,Javadoc是必不可少的。在Weka安装目录doc下面有这份文档。这个是干什么的?——问这个问题的人是没学会Java的人。
如果你还没有学会把Weka的源程序导入到开发工具(IDE)里面,那么本站WEKA开发版有好几个帖子可供参考。Eclipse,Netbeans, Jcreator,你总有中意的吧?
2 核心部分
从IDE可以看到,和大多数Java程序一样,Weka的源代码分成了若干个包(package),根据包的名字就可以看出各自的功能。比如,classifiers是管分类的(还有回归),gui是管图形界面的,等等。这中间各个部分都要调用到的,最最重要的,当然是"weka.core"这个包了。
core包中又有三个类(Class)是重中之重,我们就从这里入手。它们是Instances, Attribute和Instance。
(未完待续)
3 一个自己的分类器
不要想光看这篇帖子就搞懂Weka怎么工作的,你必须自己打开Weka的代码包去体会。更不想想没有用过Weka甚至没接触过Java就来修改它的算法,你会摸不着头脑的(实际上Weka和Java都不是那么难学)。
1 从哪里获得帮助
Data Mining: Practical Machine Learning Tools and Techniques (Second Edition) 这个书的第13-15章应该是必读的。实际上下面的内容也基本上基于这几章。如果你能耐着性子把这几章读懂,肯定不需要往下看这个帖子了。
作为一个Java应用程序,Javadoc是必不可少的。在Weka安装目录doc下面有这份文档。这个是干什么的?——问这个问题的人是没学会Java的人。
如果你还没有学会把Weka的源程序导入到开发工具(IDE)里面,那么本站WEKA开发版有好几个帖子可供参考。Eclipse,Netbeans, Jcreator,你总有中意的吧?
2 核心部分
从IDE可以看到,和大多数Java程序一样,Weka的源代码分成了若干个包(package),根据包的名字就可以看出各自的功能。比如,classifiers是管分类的(还有回归),gui是管图形界面的,等等。这中间各个部分都要调用到的,最最重要的,当然是"weka.core"这个包了。
core包中又有三个类(Class)是重中之重,我们就从这里入手。它们是Instances, Attribute和Instance。
(未完待续)
3 一个自己的分类器