Weka c4.5 决策树 j48源码 解析(一)

来源:互联网 发布:二手网络机柜回收 编辑:程序博客网 时间:2024/06/05 05:07

weka是一个java的机器学习库,官网
这篇文章是搭建阅读weka源码环境的过程。想直接看源码分析的可以跳过。

工具:Eclipse Java EE IDE for Web Developers.Version: Mars.2 Release (4.5.2)

  1. 新建一个maven项目
    如图,接下来有好几个下一步,这个比较随意,可以自己看着填,也可以上网搜索其他参考。
    eclipse新建项目
    maven项目建立好以后,项目根目录下有一个pom.xml文件。
    此时到maven仓库搜索你想要的jar的dependency,复制到pom.xml文件dependencies标签里面,保存一下,maven就会自动帮你下载dependency中定义的jar包。
    以后如果你尝试读maven管理的jar内的类的源码,第一次读的时候Eclipse会弹出没有源码的页面。让你attach source,这时候你不要做操作。
    maven此时已经开始帮你下载相应的源码,Eclipse右下角可以看到下载中的提示,等一会(我这里大概15秒)下载完成,那个attach source页面就会自动切换到源码的内容界面。

  2. 添加maven依赖jar
    在maven 仓库中搜索weka,找到最新版本weka的依赖项。
    注意,这里不是把weka本身导进项目,而是把它的依赖项导进来,如下图,点击view。
    这里写图片描述

<dependencies>    <dependency>        <groupId>junit</groupId>        <artifactId>junit</artifactId>        <version>3.8.2</version>        <scope>test</scope>    </dependency>    <dependency>        <groupId>nz.ac.waikato.cms.weka.thirdparty</groupId>        <artifactId>java-cup-11b</artifactId>        <version>2015.03.26</version>        <scope>compile</scope>    </dependency>    <dependency>        <groupId>nz.ac.waikato.cms.weka.thirdparty</groupId>        <artifactId>java-cup-11b-runtime</artifactId>        <version>2015.03.26</version>    </dependency>    <dependency>        <groupId>nz.ac.waikato.cms.weka.thirdparty</groupId>        <artifactId>bounce</artifactId>        <version>0.18</version>    </dependency>    <dependency>        <groupId>org.apache.commons</groupId>        <artifactId>commons-compress</artifactId>        <version>1.10</version>        <optional>true</optional>    </dependency>    <dependency>        <groupId>com.googlecode.matrix-toolkits-java</groupId>        <artifactId>mtj</artifactId>        <version>1.0.4</version>    </dependency>    <dependency>        <groupId>net.sourceforge.f2j</groupId>        <artifactId>arpack_combined_all</artifactId>        <version>0.1</version>    </dependency>    <dependency>        <groupId>com.googlecode.netlib-java</groupId>        <artifactId>netlib-java</artifactId>        <version>1.1</version>    </dependency></dependencies>

3.下载weka 3.9源码
解压后到文件夹,拷贝在项目根目录下面,对文件夹点右键->Build Path->Use As Source Folder。
直接使用.java格式的weka源码,好处是可以在阅读源码的时候改动调试,添加自己的注释,还是很方便的。

4.测试
这样准备工作基本就做好了,我们做一下测试,下载一个测试data样例。weka官方提供了一些data example,下载地址

在项目src/test/java文件夹下建立一个测试类。main函数内容如下。
该函数的测试data是我上面地址下载的”vote.arff“,放入”项目根目录/data“中。顺利运行不报错就ok了。

public static void main(String[] args) throws Exception {    Instances instances = DataSource.read("data/vote.arff");    instances.setClassIndex(16);    System.out.println(instances.classAttribute());    J48 j48 = new J48();    j48.buildClassifier(instances);}
0 0
原创粉丝点击