准备工作
1.首先 下载weka,相关的链接是http://www.cs.waikato.ac.nz/ml/weka/downloading.html之后解压 使用 unzip weka***.zip
你可以自己设置一个目录我设置为 ~/home/chicho/tools/weka-3-7-12
这个时候把/home/chicho/tools/weka-3-7-12/weka.jar加到环境变量中
2. 我使用的 数据库是MySQL,MySQL 的安装使用可以在网上找到很多相关的资料,在这里就不在累述。MySQL使用的JDBC驱动是com.mysql.jdbc.Driver .在这里我们需要做一些额外的配置。 你需要在你的ubuntu上安装jdk 下载jdbc的驱动在weka 的安装目录下设置一个lib的目录,之后把jdbc的驱动放在lib目录下
配置环境变量
1.使用 gedit ~/.bashrc命令将JDBC的驱动加入到CLASSPATH中,使得CLASSPATH能够指向该驱动
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_25
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:/home/chicho/tools/weka-3-7-12/lib/mysql-connector-java-5.1.27-bin.jar
export PATH=${JAVA_HOME}/bin:$PATH
export PATH=$PATH:/home/chicho/tools/weka-3-7-12/weka.jar
2.使用source ~/.bashrc使得环境变量生效
3.由于weka是基于java开发的,在Linux(Ubuntu平台)Java通过JDBC连接MySQL数据库,我们还要进行以后的操作,步骤如下:
下载 jdbc: mysql-connector-java-5.1.18.tar.gz
解压 jdbc: tar -zxvf mysql-connector-java-5.1.18.tar.gz
配置 jdbc:cp mysql-connector-java-5.1.18-bin.jar /usr/local/jdk1.8.0_25/jre/lib/ext/
?
这一步很关键不要忘记,否则会出错。
?
?
配置
用归档器打开weka.jar\experiment里找到DatabaseUtils.props
# General information on database access can be found here: # http://weka.wikispaces.com/Databases # # Version: $Revision: 11144 $ # 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 jdbcDriver=com.mysql.jdbc.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 jdbcURL=jdbc:mysql://localhost:3306/database_name # the method that is used to retrieve values from the db # (java datatype + RecordSet.) # string, getString() = 0; --> nominal # boolean, getBoolean() = 1; --> nominal # double, getDouble() = 2; --> numeric # byte, getByte() = 3; --> numeric # short, getByte()= 4; --> numeric # int, getInteger() = 5; --> numeric # long, getLong() = 6; --> numeric # float, getFloat() = 7; --> numeric # date, getDate() = 8; --> date # text, getString() = 9; --> string # time, getTime() = 10; --> date # the original conversion: = #char=0 #varchar=0 #longvarchar=0 #binary=0 #varbinary=0 #longvarbinary=0 #bit=1 #numeric=2 #decimal=2 #tinyint=3 #smallint=4 #integer=5 #bigint=6 #real=7 #float=2 #double=2 #date=8 #time=10 #timestamp=8 #mysql-conversion CHAR=0 TEXT=0 VARCHAR=0 LONGVARCHAR=9 BINARY=0 VARBINARY=0 LONGVARBINARY=9 BIT=1 NUMERIC=2 DECIMAL=2 FLOAT=2 DOUBLE=2 TINYINT=3 SMALLINT=4 #SHORT=4 SHORT=5 INTEGER=5 BIGINT=6 LONG=6 REAL=7 DATE=8 TIME=10 TIMESTAMP=8 #mappings for table creation CREATE_STRING=TEXT CREATE_INT=INT CREATE_DOUBLE=DOUBLE CREATE_DATE=DATETIME DateFormat=yyyy-MM-dd HH:mm:ss #database flags checkUpperCaseNames=false checkLowerCaseNames=false checkForTable=true setAutoCommit=true createIndex=false # All the reserved keywords for this database Keywords=\ AND