注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

anqiang专栏

不要问细节是怎么搞的,源码说明一切

 
 
 

日志

 
 

RapidMiner 学习 使用一  

2009-05-07 15:07:54|  分类: RapidMiner |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

在上一篇文章中我提到了RapidMiner这个东西,它是数据挖掘中另一款开源软件,在它的官网上有社区版和企业版.对于企业用户可以通过购买插件的方式获得RapidMiner更强大的功能.对于我们这些业余选手就用一下开源的好了.其实我学习这个的目的是它的界面呈现比较好,而且在流程上做的也不错.在界面上我们操作的时候不会像weka那样麻烦.同时我发现一个很奇怪的现象,国内学习RapidMiner的人相对Weka来说要少很多.网上的资料非常少.现在我把学习这个东西的过程跟大家分享一下,或许可以找到一起学习的伙伴啊.!

今天我只是希望能够通过代码的形式把打开数据集的过程展现给大家.

具体的源码如下:

 

package com.test;

 

/*

 * Date: 2009.5.7

 * by: Wang Yi

 * Email: wangyi19840906@yahoo.com.cn

 * QQ: 270135367

 *

 */

 

import java.io.File;

 

import com.rapidminer.Process;

import com.rapidminer.RapidMiner;

import com.rapidminer.example.ExampleSet;

import com.rapidminer.operator.IOContainer;

public class Test {

 

    /**

     * @param args

     */

    public static void main(String[] args) {

       // TODO Auto-generated method stub

      

       try{

           /*

            * 配置一个Process工作的XML文件,这个文件可以在示例文件夹里挑选出一个来.

            * 在这里我们用了最简单的读取样本的流程文件

            */

           File file = new File("D:\\我的文档\\rm_workspace\\sample\\01_IO\\01_ExampleSource.xml");

          

           /*

            *经过查看源代码我发现RapidMiner这个类是获得一个Process对象的功能类

            *它负责构建一个与file文件描述一致的Process对象

            *在这里init()函数很重要,它负责完成了一些很重要的初始化工作

            *例如:

            *OperatorService对象,它把所有operator与它对应的class放在一个Map集合里.

            *这样当使用某个class="name"就可以找到相应name对应的class对象了

            */

           RapidMiner.init();

          

           /*

            * 通过RapidMiner对象获得一个Process对象

            */

           Process temp = RapidMiner.readProcessFile(file);

          

           System.out.println("---------------");

          

           /*

            * Process对象的Run()函数将XML中描述的功能执行一遍

            * 它会返回一个IOContainer

            * 它里面包含了一些IO对象

            */

           IOContainer io = temp.run();

          

           /*

            * 我们可以通过IOContainer得到一个ExampleSet对象

            * 这个对象包含了读取的样本文件的所有信息

            */

           ExampleSet exampleSet = io.get(ExampleSet.class);

          

           /*

            * 打印数据集的属性信息

            */       

           System.out.println("exampleSet:==============" );

          

           System.out.println(exampleSet.getAttributes());

          

           /*

            * 通过Process对象可以获得所有的Operator对象

            * 在这里第一个Operator对象是ExampleSource 类型

            */

           System.out.println("ExampleSource Operator:");

          

           System.out.println(temp.getRootOperator().getOperator(0));

          

       }catch(Exception e){

           e.printStackTrace();

       }

      

    }

 

}

 

这个代码比较简单,主要是讲了如何读取XML的流程文件.一旦我们知道了如何通过这个XML构建Process对象,其它的问题其实跟Weka以及其它的数据挖掘算法的工作方式应该是一样的.回头会讲我学习到其它一些东西放在blog上跟大家分享.

 

  评论这张
 
阅读(3807)| 评论(3)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018