Linux环境下WEKA连接mysql开发

来源:互联网 发布:知乎 北京 皮肤科 编辑:程序博客网 时间:2024/06/01 22:17
按照WEKA官方的说法,要让WKEA直接读取数据库中的记录,只需要找到该数据库的JDBC驱动,然后适当修改DatabaseUtils.props文件即可。
(http://weka.sourceforge.net/wiki/index.php/Databases)

下面是linux下weka 3.5访问本机mysql数据库的一个例子,数据库名为stocks。注意weka 3.4版的界面和功能都有所区别,例如3.4版无法支持数据库DATETIME型的字段。

第一步,下载mysql的jdbc驱动,在这个页面: http://dev.mysql.com/downloads/connector/j/3.1.html。注意weka不支持5.0/5.1版的驱动,要下这个3.1版的。下载得到的文件中找到“mysql-connector-java-3.1.xx-bin.jar”,这里xx可能是某个数字,当前的最高版本是14。这个就是JDBC驱动了。
把weka.jar文件解压缩到一个目录,例如解压到weka_3.5这个目录。在weka_3.5下新建一个目录为lib,lib下放入驱动文件。Weka_3.5中新建一个可执行文件为weka.sh(windows下面就是批处理文件weka.bat)。这样,目录结构为
weka_3.5
|__weka
  |__associations
  |__attributeSelection
  |__classifiers
  |__...
|__lib
  |__mysql-connector-java-3.1.14/mysql-connector-java-3.1.14-bin.jar
|__weka.sh

第二步,找到weka/experiment/DatabaseUtils.props文件,在开始一段是如下内容 (其实不许要编辑这个文档了,第三部中weka.sh文档中已经配置好了,不过同步修改文档是个好习惯,这样不会这样可执行文件或脚本的束缚,更稳妥。)

代码:
# The comma-separated list of jdbc drivers to use
#jdbcDriver=RmiJdbc.RJDriver,jdbc.idbDriver
#jdbcDriver=jdbc.idbDriver
jdbcDriver=RmiJdbc.RJDriver,jdbc.idbDriver,org.gjt.mm.mysql.Driver,com.mckoi.JDBCDriver,org.hsqldb.jdbcDriver
#jdbcDriver=org.gjt.mm.mysql.Driver

# The url to the experiment database
#jdbcURL=jdbc:rmi://expserver/jdbc:idb=experiments.prp
jdbcURL=jdbc:idb=experiments.prp
#jdbcURL=jdbc:mysql://mysqlserver/username

我们将之修改为适合mysql的内容,也就是:
代码:
# url:     http://www.mysql.com/
# jdbc:    http://www.mysql.com/products/connector/j/
# author:  Fracpete (fracpete at waikato dot ac dot nz)
# version: $Revision: 1.2 $

# JDBC driver (comma-separated list)
jdbcDriver=org.gjt.mm.mysql.Driver

# database URL
jdbcURL=jdbc:mysql://localhost:3306/stocks

如果数据库中有某些类型的字段在这个文件中没有声明,例如DATETIME型的字段,则还需要在
代码:
LONG=6
REAL=7
DATE=8
TIME=8
TIMESTAMP=8

之后添加上
代码:
DATETIME=8

这里8是WEKA里日期型的意思。

第三步,修改weka.sh(或者windows下的weka.bat)。我这里weka_3.5目录的路径是"/opt/weka/weka_3.5",那么weka.sh的内容为
代码:
#!/bin/sh

WEKA_HOME="/opt/weka/weka_3.5"
JDBC_PATH="$WEKA_HOME/lib/mysql-connector-java-3.1.14/mysql-connector-java-3.1.14-bin.jar"

java -Xmx512M -classpath $WEKA_HOME:$JDBC_PATH weka.gui.Main

windows下上述代码要稍作修改。

第四步,运行weka.sh,选择explorer,点击"Open DB...",出现"SQL-Viewer"。点击"User"按钮填入数据库的用户名和密码,然后点击"Connect"按钮。连接成功的话在下方"Info"一栏中会有提示。
连上后在"Query"一栏中写入SQL查询语句,例如
代码:
select * from small;

然后点右边的"Excute"按钮。(如果连接数据库不成功是无法Excute的)
"Result"一栏中会显示有关结果,满意后点击最下方的"OK"按钮。Explorer就从数据库中载入数据集了。

原创粉丝点击