在weka中添加libSVM或者HMM等新算法

转:http://kasy-13.blog.163.com/blog/static/8214691420143226365887/

Weka的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),是一款免费的,非商业化(与之对应的是SPSS公司商业数据挖掘产品--Clementine )的,基于JAVA环境下开源的机器学习(machine learning)以及数据挖掘(data minining)软件。它和它的源代码可在其官方网站(http://www.cs.waikato.ac.nz/~ml/weka/downloading.html)下载,注意,若要添加新算法,应该下载使用developer version。有趣的是,该软件的缩写WEKA也是New Zealand独有的一种鸟名,而Weka的主要开发者同时恰好来自New Zealand的the University of Waikato。

在weka中添加libSVM:

Weka中并不是没有SVM算法,Weka中有SMO算法的实现。LibSVM运行的比Weka里的SMO快的多,如果你敢用SMO算法去训练大数据集,你就明白天荒地老的真实含意了。

LibsvmLiblinear都是国立台湾大学的Chih-Jen Lin博士开发的,Libsvm主要是用来进行非线性svm 分类器的生成,提出有一段时间了,而Liblinear则是去年才创建的,主要是应对large-scale的data classification,因为linear分类器的训练比非线性分类器的训练计算复杂度要低很多,时间也少很多,而且在large scale data上的性能和非线性的分类器性能相当,所以Liblinear是针对大数据而生的。

两者都是一个跨平台的通用工具库,支持windows/linux/mac os,代码本身是c++写的,同时也有matlab,python,java,c/c++扩展接口,方便不同语言环境使用,可以说是科研和企业人员的首选!像我这样在学校的一般用matlab/c++,而我同学在百度则主要用的是python/c++,所以只是各自侧重不一样,但所使用的核心还是其svm库。

libSVM的C++/java源码下载、matlab interface等下载:http://www.csie.ntu.edu.tw/~cjlin/libsvm/

Weka3.5后增加了libsvm这个选项,在分类器中的functions下面。需要安装才能使用。我使用的是weka3.7.10版本。安装weka后运行RunWeka.bat或Weka 3.7.exe,在菜单栏tools->package manager 中可以添加weka官方定义的各种成型的算法,从association类的到visualization类的都有,只要install就行了。

在weka下安装HMM:

如果在自带的package manager下没有找到合适的算法,还可以在网上找(有很多高手写好了愿意分享的!),比如我找到的HMMWeka,可下载HMM.zip

下载地址:

http://www.doc.gold.ac.uk/~mas02mg/software/hmmweka/index.html#download

当然,技巧是用Google English搜,且关键词也用英文,如“HMM classifier”。目前的package manager 只接受zip文件格式的外源算法,所以最好找标准格式的算法,如我上面分享的HMM classifier的作者就相当敬业,从scr/lib到 doc全部写好了,可以下载一下参考参考。

过程:

1、打开weka->菜单栏tools->package manager ->Unofficial->File/URL

2、选择所下载的HMM.zip

3、重启weka,在clasify->choose->classifiers->bayes->HMM找到HMM

4、若是不能运行,可参照下方(weka中的libsvm无法运行的解决方法)的内容修改。

最后总结一下,对于不习惯点上面暗连接的朋友们提供一下明地址:

  • 能自定义添加算法的weka development 版下载地址:

http://www.cs.waikato.ac.nz/~ml/weka/downloading.html

有时候无法下载weka developer版本,可以找百度云搜一下:

http://pan.baidu.com/wap/shareview?&shareid=416768618&uk=1010575044&dir=%2Fweka&page=1&num=20&fsid=1316924349&third=0

  • HMMweka下载地址:

http://www.doc.gold.ac.uk/~mas02mg/software/hmmweka/index.html#download

  • libSVM下载地址:

http://www.csie.ntu.edu.tw/~cjlin/libsvm/

weka中的libsvm无法运行的解决方法

在Weka3.5.5后增加了libsvm这个选项,在分类器中的functions下面。但是,试图运行的时候,系统报错提示:Problem evaluating classifier:libsvm classes not in CLASSPATH。然后我们在环境变量-》系统变量-》CLASSPATH,把F:/Some Softwares/Weka-3-5/libsvm.jar(这个jar文件是在http://www.cs.iastate.edu/~yasser/wlsvm/.下载的)添加进去了,但是报错提示:Problem evaluating classifier:rand。如何才能时libsvm跑起来呢?

我参照别人写的教程(http://blog.csdn.net/aalbertini/article/details/5749622)做了以下的修改:

修改runweka.ini这个文件中的cmd_default,增加对这两个jar包的支持:
cmd_default=javaw -Dfile.encoding=#fileEncoding# -Xmx#maxheap# -classpath "#wekajar#;#cp#;libsvm.jar;liblinear.jar" #mainclass#

重启RunWeka.bat,但是仍然无法使用。

可能的原因:

1、检查你的weka是否是developer版本!(最可能的)

2、修改runweka.ini这个文件中的cmd_default,将两个jar包写在#cp#前:cmd_default=javaw -Dfile.encoding=#fileEncoding# -Xmx#maxheap# -classpath "#wekajar#;libsvm.jar;liblinear.jar;#cp#" #mainclass#

参考链接:http://baike.baidu.com/view/1380214.htm

http://pcc426.net/2012/05/18/add-new-algorithm-in-weka/

http://blog.sina.com.cn/s/blog_5b29caf7010127vh.html

时间: 2024-10-09 03:18:55

在weka中添加libSVM或者HMM等新算法的相关文章

机器学习:weka中添加自己的分类和聚类算法

不管是实验室研究机器学习算法或是公司研发,都有需要自己改进算法的时候,下面就说说怎么在weka里增加改进的机器学习算法. 一 添加分类算法的流程 1 编写的分类器必须继承 Classifier或是Classifier的子类:下面用比较简单的zeroR举例说明: 2 复写接口 buildClassifier,其是主要的方法之一,功能是构造分类器,训练模型: 3 复写接口 classifyInstance,功能是预测一个标签的概率:或实现distributeForInstance,功能是对得到所有的

如何在 Linux 中添加一块大于 2TB 的新磁盘?

你有没有试过使用 fdisk 对大于 2TB 的硬盘进行分区,并且纳闷为什么会得到需要使用 GPT 的警告? 是的,你看到的没错.我们无法使用 fdisk 对大于 2TB 的硬盘进行分区. 在这种情况下,我们可以使用 parted 命令.它的主要区别在于 fdisk 使用 DOS 分区表格式而 parted 使用 GPT 格式. 提示:你可以使用 gdisk 来代替 parted. 在本文中,我们将介绍如何将大于 2TB 的新磁盘添加到现有的 Linux 服务器中(如 RHEL/CentOS 或

如何在weka中连接数据库(转)

相关准备: Weka.mysql已安装 MYSQL Driver for JDBC 1.进入weka的安装目录 1)新建文件夹lib和文件夹weka,然后将mysql-connector-java-5.1.24-bin.jar复制到lib文件夹中 2)“我的电脑”属性,设置环境变量 新建变量WEKA_HOME=weka的安装目录,如(D:\Prgrams\weka-3.6) 在CLASSPATH变量中添加“;%WEKA_HOME%\lib\mysql-connector-java-5.1.24-

记录在学习ML过程中,在MATLAB中集成LibSVM时遇到的问题

前几天写了一下自己对SVM中关键的距离问题的理解,后面会继续记录自己对该模型其他问题的理解,今天想试试SVM在"西瓜书"那个"阿尔法3.0"数据集上的效果.于是查到了"湾湾"教授林智仁先生大牛等写的一个开源包LibSVM,并且该library可以与很多平台兼容,有很多语言版本,支持java .C++.C .MATLAB等,我们可以在林教授主页上下载.LibSVM地址:http://www.csie.ntu.edu.tw/~cjlin/libsvm

浪潮服务器向集群中添加esxi主机

软件环境:esxi6.0  vcenter6.0 硬件:浪潮服务器 hba卡 浪潮存储 博科san 要求:向目前集群中添加一台esxi主机 步骤:安装esxi6.0,配置bmc和网卡,光纤连接hba卡,注意:光纤方向,hba中发光的接到san不发光的口. 配置san交换机 配置浪潮存储 esxi中识别存储添加OK!

Android系统中添加一个产品----图文详解

本文本着开源的精神介绍如何向一个Android系统中添加一个产品的整个过程,按照以下过程笔者有理由相信每个将要从事本行业的人都可以完成,其实添加一个产品并不难,难的是对其相关硬件的修改,好了废话不多说. 首先我们要创建一个属于自己产品的目录,这里以WY_device为例,以WY作为产品的名字. 首先从已经存在的产品中拷贝一个以产品的名字为名的.mk文件,修改为自己的.mk文件,在这里为WY.mk 对其进行如下的修改: 然后添加AndroidProducts.mk  这是添加产品的配置文件名路径,

汗蒸房中添加负离子粉有什么强大的功效

汗蒸房中添加负离子粉有什么强大的功效    宇拓牌负离子粉主要有以下作用:    1.宇拓牌负离子粉有利于血流速度变慢,延迟凝血时间,使人体中血含氧量增加,有利于血液氧分有效输送,进一步利用与吸收.  负离子粉对人体的呼吸系统的作用很明显:是因为负离子是通过呼吸道进入人体的,它可以有效提高人的肺活量. 在19世纪80年代试验经过,在玻璃面罩中吸入空气负离子30分钟,可使肺部吸收氧气量增加2%,而排出二氧化碳量可增加14.5%,因此负离子有改善和增强肺功能的作用.     2.宇拓牌负离子粉俗称长

Linux中添加用户、删除用户时新手可能遇到的问题

Linux中添加用户.删除用户时新手可能遇到的问题  1.创建新用户后切换到新用户:No directory, logging in with HOME=/     添加用户     #sudo useradd -m -s /bin/bash -g group loginname     -m 创建home目录 (不加这个要手动添加目录,不然会出现No directory,Logging in with HOME=/ )     -s /bin/bash 使用bash( 默认为 /bin/sh

在ns2.35中添加myevalvid框架

在用ns2进行网络视频通信仿真的时候,先要为我们自己的ns2添加evalvid或者myevalvid框架.其中myevalvid框架是由柯志亨老师整合evalvid和ns2之后得出的新框架,笔者建议大家安装该框架,而不要安装原生的evalvid框架.这样就可以结合柯志亨老师的<ns2仿真实验-----多媒体和无线网络通信>这本书,做配套的实验,比较方便. 网上关于myevalvid框架的安装文章很多,大家可以参考去做,笔者会在本文最后给出相关的链接.本文主要是对myevalvid框架源码中的错