机器学习和生物信息学实验室联盟

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1861|回复: 0
打印 上一主题 下一主题

关于weka KnowlegeFlow的使用

[复制链接]
跳转到指定楼层
楼主
发表于 2017-6-24 15:03:50 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 xingpengwei 于 2017-6-24 15:03 编辑

        之前有一篇讲了批量处理评估保存结果,批量保存特征,这篇来讲一讲使用weka KnowlegeFlow批量实现多分类器的评估或者其他功能,替新生们提高一下效率,踩踩坑!
        先给个图,给个直观认识:
       
        从图可以看出这个流图加载了一个arff文件分别用三个分类器进行了10交叉验证然后保存了结果。
        具体使用可以参考http://wiki.pentaho.com/display/ ... owledge+Flow+Plugin
        或者weka官方文档

        当然虽然一次跑了三个分类器,但这只是单次,要做批处理这是远远不够的,接下来就要用到一个神器了:kfgroovy。
        Knowledge Flow plugin that provides a Knowledge Flow step that wraps around a Groovy script. The plugin generates a fully compilable template Groovy script that implements various Knowledge Flow interfaces. The user can fill in the methods that are necessary to accomplish the desired logic. The script is compiled at runtime and the Groovy component passes incoming events to the script and collects and passes on generated events.
        kfgroovy是weka KnowlegeFlow的一个第三方工具,可以写一个脚本来自定义完成KnowlegeFlow欠缺的功能,比如批量加载arff,这样的话不就可以批量跑上边的流程了吗,哈哈

        基本groovy语言,至于什么是groovy语言我只好粘一段介绍了:
        Groovy是一种基于JVM(Java虚拟机)的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。由于其运行在 JVM 上的特性,Groovy 可以使用其他 Java 语言编写的库。

        google了很多资料发现groovy的文档多,但是kfgroovy脚本的写法不是太多,但是还是被我找到了几个:
        http://wiki.pentaho.com/display/ ... n+the+KnowledgeFlow
        但是这货加载多个arff文件的例子竟然有bug,折腾了好久,
        不行,我得给这货的作者发邮件,正好今天回复我了,还为此更新了kfgroovy的版本,新增了一个加载多个arff的template:
  1. Hi,

  2. That script is out of date I'm afraid. The Knowledge Flow (engine and GUI) was completely re-written in Weka 3.8.0/3.9.0 and is now more efficient and has a new API. Install the latest version (1.0.14, just released today) of the kfGroovy package via Weka's package manager. This includes two template flows: one for computing learning curves, and a second one that demonstrates loading the ARFF files from a directory. You can find template flows via the templates button (third from the right in the toolbar) in the Knowledge Flow GUI.

  3. Cheers,
  4. Mark.


  5. On 22/06/17, 9:14 PM, "411945935@qq.com" <411945935@qq.com> wrote:

  6.     I am a new user of kfgroovy script, I am very excited to know this wonderful tool, I want to learn to use kfgroovy script in weka knowledgeflow, I saw DirectoryLoader.groovy in (http://wiki.pentaho.com/display/DATAMINING/DirectoryLoader.groovy), I put in groovystep dialog and compile it , error with:DirectoryLoader cannot be casted to weka.knowledgeflow.steps.Step,  I want to build a IDE of kfgroovy with Eclipse with Maven kfGroovy dependency, but it cannot compile ,cause it just pop out a groovy console like weka groovy console.
  7.     could you help me with the eroor and tell me how to build a kfgroovy but not a groovy developing evironment.
  8.     Thanks
复制代码

        根据他的提示,KnowledgeFlow的toolbar是有template的,根据新增的1.04版本的我们可以加载多个arff文件批量跑多个分类器了,加上之前的可以一条龙服务了。
       
       

        下边总结性地说一下使用注意点:
        1.kfgroovy可以在package manager里添加,如果安装失败,可以google kfgroovy,找到主页直接下载安装。
        2.安装后可以在右侧一栏的最下边的Scripting下找到。右击配置添加脚本文件。
        3.toolbar有个template按钮里边有kfgroovy的两个例子。
        4.TextSaver的appending file设置为ture这样可以直接设置成一个文件,直接往后添加每次的结果。
        5.做好的图是可以保存的以便下次使用。
       
        其实我之前是想自动在kfgroovy脚本里自动实现两个arff的merge的,但是目前发现weka主界面的Simple CLI是直接可以一条命令实现的:
        In the first case ("append"):
        java weka.core.Instances append filename1 filename2 > output-file

        and the latter case ("merge"):
        java weka.core.Instances merge filename1 filename2 > output-file

        其实在kfgroovy里实现merge更方便,但是我还没弄,目前的基本够用,有时间研究研究,哈哈

       

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享

相关帖子

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

机器学习和生物信息学实验室联盟  

GMT+8, 2024-11-2 01:30 , Processed in 0.067256 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表