一. 关闭 WEKA
如果 WEKA 打开着,一定要先关闭了,才能进行以下操作。否则配置完后可能出错。
二. 获取 mysql 驱动
weka 安装目录下 创建 lib 文件夹,把 mysql 驱动放到此文件夹下。
例如笔者的为:D:\Program Files\Weka-3-8\lib\mysql-connector-java-5.1.37-bin.jar
三. 配置环境变量
WEKA_HOME: D:\Program Files\Weka-3-8
CLASSPATH: %WEKA_HOME%\lib\mysql-connector-java-5.1.37-bin.jar
四. 修改 weka 配置文件
1. 解压 weka.jar 文件
2. D:\Program Files\Weka-3-8\weka\weka\experiment中找到DatabaseUtils.props.mysql,将其复制到 weka 安装目录(D:\Program Files\Weka-3-8),将其名字改成DatabaseUtils.props
3. 按以下修改 DatabaseUtils.props
# JDBC driver (comma-separated list)
jdbcDriver=com.mysql.jdbc.Driver
# database URL
#jdbcURL=jdbc:mysql://localhost:3306/db_predict?characterEncoding=UTF-8(db_predict为数据库名,characterEncoding设置utf8连接)
jdbcURL=jdbc:mysql://localhost:3306/db_predict(db_predict为数据库名)
# specific data types,去掉注释,改为weka支持的数据格式string, getString() = 0; -->nominal
boolean, getBoolean()= 1; -->nominaldouble, getDouble() = 2; -->numericbyte, getByte() = 3; -->numericshort, getByte()= 4; -->numericint, getInteger() = 5; -->numericlong, getLong() = 6; -->numericfloat, getFloat() = 7; -->numericdate, getDate() = 8; --> datetext, getString()= 9; --> string
time, getTime() = 10; --> dateBigDecimal,getBigDecimal()=11; -->nominal
#mysql-conversion --类型转换,做如下补充
TINYINT=3SMALLINT=4SHORT=5INTEGER=5INT=5INT_UNSIGNED=6BIGINT=6LONG=6REAL=7NUMERIC=2DECIMAL=2FLOAT=2DOUBLE=2CHAR=0TEXT=0VARCHAR=0LONGVARCHAR=9BINARY=0VARBINARY=0LONGVARBINARY=9BIT=1BLOB=8DATE=8TIME=8DATETIME=8TIMESTAMP=8
4. 删除解压的文件夹 D:\Program Files\Weka-3-8\weka
五. 打开 WEKA
Explorer >> Open DB... >> Set user and password >> Connect to the database >> Query