matlab调用weka,weka学习(7)-Weka以及Matlab,LibSVM接口

a4c26d1e5885305701be709a3d33442f.png

Weka是个口碑很好的machine

learning工具,可怜我这土鳖以前都没用过。

Weka还是很intuitive的,直接给你GUI,随便你选算法,直接帮你做cross

validation,还帮你画图,你还想怎样?

Weka官网还出了一本叫做Data Mining Practical

Machine Learning Tools and Techniques的书,有机会想拜读一下呢。

今天花了一天时间搞明白了Weka怎么和matlab还有LibSVM接口通讯的了,分享如下:

首先weka使用自己的文件格式,叫做ARFF,如果想从matlab和Weka之间相互转换,这里有现成的package:

不要以为下载下来就能用,你会在如下地方报错:

if(~wekaPathCheck),wekaOBJ = [];

return,end

import

weka.core.converters.ArffLoader;

import java.io.File;

Tricky的事情就是得把weka.jar加入到matlab的classpath.txt列表。classpath.txt在哪儿?到matlab的command窗口敲:

>> which

classpath.txt

/Applications/MATLAB_R2010b.app/toolbox/local/classpath.txt

这个是在mac下的结果,windows估计也有类似的文件结构。然后就是到classpath.txt里加入一行,weka.jar的绝对路径,例如:

/Applications/weka-3-6-4.app/Contents/Resources/Java/weka.jar

好了,matlab的接口就配置好了。

这里还有个问题,保存的ARFF中类别信息(class)是numrical型,不是枚举型,至少调用LibSVM会报错。

得手工修改(我的数据有7类):

@attribute

class numeric =>

@attribute class {1,2,3,4,5,6,7}

OK,matlab这边这下没问题了。

Weka本身没有附带LibSVM,所以还要配置调用Wrapper,官网有介绍,不过没这里(第一条评论)讲的清楚。

在http://www.cs.iastate.edu/~yasser/wlsvm/下载wlsvm.zip,如果想用最新版的LibSVM可以去官网下载然后替换掉其中的libsvm.jar

然后把wlsmv.jar和libsvm.jar都放在/Applications/Weka/weka-3-7-0.app/Contents/Resources/Java目录下(windows应该可以找到对应目录)

然后就是编辑weka.app\info.plist,找到$JAVAROOT/weka.jar然后类似的加入libsvm.jar和wlsvm.jar。(这个plist可能windows不太一样)

你还可以顺便设置一下weka的内存池大小

VMOptions

-Xmx256M

256M太小了,内存都白菜价了,改个1024M死不了人。

好了,都搞定了。

至于怎么用Weka,翻完这个ppt你就知道了。

此外,查看如下网址,其提供了Matlab与Weka的一个接口

http://www.mathworks.cn/matlabcentral/fileexchange/21204-matlab-weka-interface

转自:http://www.cs.dartmouth.edu/~xy/blog/weka以及matlab,libsvm接口/

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值