WEKA是由新西兰怀卡托大学开发的开源项目。WEKA是由JAVA编写的,并且限制在GNU通用公众证书的条件下发布,可以运行在所有的操作系统中。WEKA工作平台包含能处理所有标准数据挖掘问题的方法:回归、分类、聚类、关联规则挖掘以及属性选择。作为数据挖掘爱好者自然要对WEKA的源代码进行分析并以及改进,努力写出自己的数据挖掘算法。
下面着重介绍一下如何利用WEKA编写新的数据挖掘算法:
注意:WEKA的版本有两个版本:稳定版(STABLE)和开发版(DEVELOP),不同WEKA版本与不同JDK的版本匹配,稳定版WEKA3-4的与JDK1.4.2匹配,而开发版WEKA3-5与JDK1.5匹配,WEKA3-5新加入了对数据库的数据连接。稳定版直接下载weka-src.jar文件就行了,而开发版需使用CVS连接到sourceForge下载,:pserver:cvs_anon@cvs.scms.waikato.ac.nz:/usr/local/global-cvs/ml_cvs。本文以稳定版为例。
一、首先从WEKA官方网站(http://www.cs.waikato.ac.nz/ml/weka)下载WEKA程序包。将程序包解压获得weka-src.jar源文件,再将源代码解压缩导入某个JAVA开发工具中(图1),如:JBuilder,Eclipse,Netbeans等。我现在以Netbeans为例。
图1 : weka导入Netbeans
二、为了不与WEKA中已包含的算法相冲突,最好自己建立一个JAVA包,将自己编写的挖掘算法存放在该包内(图2)。我以建立hzm包为例:
图2 : 建立新weka包
三、在新的包hzm内建立新的java类,然后双击编写数据挖掘算法程序代码,本人以实现ID3算法为例讲解具体操作过程。
再将weka.classifiers.trees下的id3算法复制到新建的ID3类中(这只是演示,当然最好还是自己写新的挖掘算法),修改一下类中提示的错误,保存就行了。
四、编写好新的挖掘算法并不能马上在weka中exlorer模式中看到,还要修改weka.gui包中的GenericObjectEditor.props文件。如:我刚才建立的ID3类在weka.classifiers.hzm包中,就要在GenericObjectEditor.props中的#
Lists the Classifiers I want to choose
from段后添加weka.classifiers.hzm.ID3,\
注意:稳定版3-4修改GenericObjectEditor.props文件即可,但开发版3-5还要多修改同目录下的GenericProertiesCreator.props文件。