为什么用到 python-weka-wrapper包?
什么是weka?
Weka的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),是一款免费的,非商业化(与之对应的是SPSS公司商业数据挖掘产品--Clementine )的,基于JAVA环境下开源的机器学习(machine learning)以及数据挖掘(data mining)软件。它和它的源代码可在其官方网站下载。有趣的是,该软件的缩写WEKA也是新西兰独有的一种鸟名(新西兰秧鸡),而Weka的主要开发者同时恰好来自新西兰的怀卡托大学(The University of Waikato)。
如下所示:
什么是python-weka-wrapper?
python-weka-wrapper是一个基于java的开发的python的工具包,最初,这款工具包只能够支持jython(一个基于jvm开发的拥有python语法的类似于java通用性的语言)2.x版本,但随着python的广泛应用,这个工具包也与时俱进开始支持python了。
为什么用python-weka-wrapper?
做MTSC模型的小伙伴一定会遇到一个叫做UEA的数据集,这个数据集有一种叫做arff的数据集格式,而这种数据集格式只能够通过python-weka-wrapper来进行读取,但是,这款工具包装起来,比较费劲(对我来说),所以,在这里,简单分享一下我的装包历程。
安装
前置工作
总的安装过程在官网上都已经被公布出来Installation — python-weka-wrapper3 0.2.13 documentation (fracpete.github.io),下面,我就服务器系统Centos的安装环境进行描述。
首先,作为root用户,对前置环境进行安装和配置,这部分就是前置工作了。
普通用户安装
作为普通用户,首先需要先创建一个自己的python的虚拟环境,推荐使用Anaconda的虚拟环境。在创建好环境后,我们进行下一步,安装javabridge。
在这一步,如果你的java的jdk出现了问题,这一步很可能无法进行。
一开始安装的时候,可能会出现,在"xx.h"文件中找不到"jni.h"文件,好,问题不大,我直接locate jni.h 文件,找到jdk里的jni.h文件目录,给C++头文件里包含进去,但很快又会报这样的错误,如下图。
又是找不到"jni_md.h"文件,这可怎么办?难道再包含进去?有没有是jdk的问题呢?
简单查了一下,发现是默认的jdk里面没有/include目录,而那些jni.j,jni_md.h文件其实都是/include目录下的,那我为什么能找到jni.h目录呢?
原来是,服务器里有两个jdk。于是我设置了一下用户目录下的jdk版本,然后重新加载了一下自己的环境。然后安装javabridge这些包。
终于,装好了!普天同庆,皆大欢喜!