Weka简介

  Weka的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),是一款免费的,非商业化(与之对应的是SPSS公司商业数据挖掘产品--Clementine )的,基于JAVA环境下开源的机器学习(machine learning)以及数据挖掘(data minining)软件。

Weka数据格式

WEKA存储数据的格式是ARFF(Attribute-Relation File Format)文件,这是一种ASCII文本文件。二维表格存储在如下的ARFF文件中。这也就是WEKA自带的“weather.arff” 文件,在WEKA安装目录的“data”子目录下可以找到。
代码:
% ARFF file for the weather data with some numric features
%
@relation weather
@attribute outlook {sunny, overcast, rainy}
@attribute temperature real
@attribute humidity real
@attribute windy {TRUE, FALSE}
@attribute play {yes, no}
@data
%
% 14 instances
%
sunny,85,85,FALSE,no
sunny,80,90,TRUE,no
overcast,83,86,FALSE,yes
rainy,70,96,FALSE,yes
rainy,68,80,FALSE,yes
rainy,65,70,TRUE,no
overcast,64,65,TRUE,yes
sunny,72,95,FALSE,no
sunny,69,70,FALSE,yes
rainy,75,80,FALSE,yes
sunny,75,70,TRUE,yes
overcast,72,90,TRUE,yes
overcast,81,75,FALSE,yes
rainy,71,91,TRUE,no

Mysql简介

  MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。

Weka直接连接Mysql

由于Weka数据格式的特殊性,如果想在Weka中处理数据,必须首先将数据的格式转化成ARFF格式,所以需要经历SQL->ARFF的转化,比较麻烦,但是Weka已经为此做了充分的准备,只需简单配置就可在Weka GUI上直接连接操作Mysql数据库。

准备工作:

Java运行环境

Weka安装

mysql-connector-java-5.1.26-bin.jar

详细配置步骤:

  在weka的安装目录下新建lib文件夹,将mysql-connector-java-5.1.26-bin.jar包复制到此lib文件夹下,并且在%JAVA_HOME%\jre\lib\ext"下也复制一份mysql-connector-java-5.1.6-bin.jar。

  在weka的安装目录下找到weka.jar,将其解压到当前目录,你会看到多出来一个名为weka的文件夹,进到此文件夹目录下,找到experiment文件夹下的DatabaseUtils.props.mysql,将其改名为DatabaseUtils.props,替换原有的DatabaseUtils.props文件,并将其修改文件里的以下内容:

  1. # Database settings for MySQL 3.23.x, 4.x
  2. #
  3. # General information on database access can be found here:
  4. # http://weka.wikispaces.com/Databases
  5. #
  6. # url: http://www.mysql.com/
  7. # jdbc: http://www.mysql.com/products/connector/j/
  8. # author: Fracpete (fracpete at waikato dot ac dot nz)
  9. # version: $Revision: 5836 $
  10.  
  11. # JDBC driver (comma-separated list)
  12. #jdbcDriver=org.gjt.mm.mysql.Driver
  13. jdbcDriver=com.mysql.jdbc.Driver
  14.  
  15. # database URL
  16. #jdbcURL=jdbc:mysql://server_name:3306/database_name
  17. jdbcURL=jdbc:mysql://localhost:3306/rtest
  18. # specific data types
  19. # string, getString() = 0; --> nominal
  20. # boolean, getBoolean() = 1; --> nominal
  21. # double, getDouble() = 2; --> numeric
  22. # byte, getByte() = 3; --> numeric
  23. # short, getByte()= 4; --> numeric
  24. # int, getInteger() = 5; --> numeric
  25. # long, getLong() = 6; --> numeric
  26. # float, getFloat() = 7; --> numeric
  27. # date, getDate() = 8; --> date
  28. # text, getString() = 9; --> string
  29. # time, getTime() = 10; --> date
  30.  
  31. # specific data types
  32. string, getString() = 0; --> nominal
  33. boolean, getBoolean() = 1; --> nominal
  34. double, getDouble() = 2; --> numeric
  35. byte, getByte() = 3; --> numeric
  36. short, getByte()= 4; --> numeric
  37. int, getInteger() = 5; --> numeric
  38. long, getLong() = 6; --> numeric
  39. float, getFloat() = 7; --> numeric
  40. date, getDate() = 8; --> date
  41. text, getString() = 9; --> string
  42. time, getTime() = 10; --> date
  43. TINYINT=3
  44. SMALLINT=4
  45. #SHORT=4
  46. SHORT=5
  47. INTEGER=5
  48. INT=5
  49. INT_UNSIGNED=6
  50. BIGINT=6
  51. LONG=6
  52. REAL=7
  53. NUMERIC=2
  54. DECIMAL=2
  55. FLOAT=2
  56. DOUBLE=2
  57. CHAR=0
  58. TEXT=0
  59. VARCHAR=0
  60. LONGVARCHAR=9
  61. BINARY=0
  62. VARBINARY=0
  63. LONGVARBINARY=9
  64. BIT=1
  65. BLOB=9
  66. DATE=8
  67. TIME=8
  68. DATETIME=8
  69. TIMESTAMP=8
  70.  
  71. # other options
  72. CREATE_DOUBLE=DOUBLE
  73. CREATE_STRING=TEXT
  74. CREATE_INT=INT
  75. CREATE_DATE=DATETIME
  76. DateFormat=yyyy-MM-dd HH:mm:ss
  77. checkUpperCaseNames=false
  78. checkLowerCaseNames=false
  79. checkForTable=true
  80.  
  81. # All the reserved keywords for this database
  82. # Based on the keywords listed at the following URL (2009-04-13):
  83. # http://dev.mysql.com/doc/mysqld-version-reference/en/mysqld-version-reference-reservedwords-5-0.html
  84. Keywords=\
  85. ADD,\
  86. ALL,\
  87. ALTER,\
  88. ANALYZE,\
  89. AND,\
  90. AS,\
  91. ASC,\
  92. ASENSITIVE,\
  93. BEFORE,\
  94. BETWEEN,\
  95. BIGINT,\
  96. BINARY,\
  97. BLOB,\
  98. BOTH,\
  99. BY,\
  100. CALL,\
  101. CASCADE,\
  102. CASE,\
  103. CHANGE,\
  104. CHAR,\
  105. CHARACTER,\
  106. CHECK,\
  107. COLLATE,\
  108. COLUMN,\
  109. COLUMNS,\
  110. CONDITION,\
  111. CONNECTION,\
  112. CONSTRAINT,\
  113. CONTINUE,\
  114. CONVERT,\
  115. CREATE,\
  116. CROSS,\
  117. CURRENT_DATE,\
  118. CURRENT_TIME,\
  119. CURRENT_TIMESTAMP,\
  120. CURRENT_USER,\
  121. CURSOR,\
  122. DATABASE,\
  123. DATABASES,\
  124. DAY_HOUR,\
  125. DAY_MICROSECOND,\
  126. DAY_MINUTE,\
  127. DAY_SECOND,\
  128. DEC,\
  129. DECIMAL,\
  130. DECLARE,\
  131. DEFAULT,\
  132. DELAYED,\
  133. DELETE,\
  134. DESC,\
  135. DESCRIBE,\
  136. DETERMINISTIC,\
  137. DISTINCT,\
  138. DISTINCTROW,\
  139. DIV,\
  140. DOUBLE,\
  141. DROP,\
  142. DUAL,\
  143. EACH,\
  144. ELSE,\
  145. ELSEIF,\
  146. ENCLOSED,\
  147. ESCAPED,\
  148. EXISTS,\
  149. EXIT,\
  150. EXPLAIN,\
  151. FALSE,\
  152. FETCH,\
  153. FIELDS,\
  154. FLOAT,\
  155. FLOAT4,\
  156. FLOAT8,\
  157. FOR,\
  158. FORCE,\
  159. FOREIGN,\
  160. FROM,\
  161. FULLTEXT,\
  162. GOTO,\
  163. GRANT,\
  164. GROUP,\
  165. HAVING,\
  166. HIGH_PRIORITY,\
  167. HOUR_MICROSECOND,\
  168. HOUR_MINUTE,\
  169. HOUR_SECOND,\
  170. IF,\
  171. IGNORE,\
  172. IN,\
  173. INDEX,\
  174. INFILE,\
  175. INNER,\
  176. INOUT,\
  177. INSENSITIVE,\
  178. INSERT,\
  179. INT,\
  180. INT1,\
  181. INT2,\
  182. INT3,\
  183. INT4,\
  184. INT8,\
  185. INTEGER,\
  186. INTERVAL,\
  187. INTO,\
  188. IS,\
  189. ITERATE,\
  190. JOIN,\
  191. KEY,\
  192. KEYS,\
  193. KILL,\
  194. LABEL,\
  195. LEADING,\
  196. LEAVE,\
  197. LEFT,\
  198. LIKE,\
  199. LIMIT,\
  200. LINES,\
  201. LOAD,\
  202. LOCALTIME,\
  203. LOCALTIMESTAMP,\
  204. LOCK,\
  205. LONG,\
  206. LONGBLOB,\
  207. LONGTEXT,\
  208. LOOP,\
  209. LOW_PRIORITY,\
  210. MATCH,\
  211. MEDIUMBLOB,\
  212. MEDIUMINT,\
  213. MEDIUMTEXT,\
  214. MIDDLEINT,\
  215. MINUTE_MICROSECOND,\
  216. MINUTE_SECOND,\
  217. MOD,\
  218. MODIFIES,\
  219. NATURAL,\
  220. NOT,\
  221. NO_WRITE_TO_BINLOG,\
  222. NULL,\
  223. NUMERIC,\
  224. ON,\
  225. OPTIMIZE,\
  226. OPTION,\
  227. OPTIONALLY,\
  228. OR,\
  229. ORDER,\
  230. OUT,\
  231. OUTER,\
  232. OUTFILE,\
  233. PRECISION,\
  234. PRIMARY,\
  235. PRIVILEGES,\
  236. PROCEDURE,\
  237. PURGE,\
  238. READ,\
  239. READS,\
  240. REAL,\
  241. REFERENCES,\
  242. REGEXP,\
  243. RELEASE,\
  244. RENAME,\
  245. REPEAT,\
  246. REPLACE,\
  247. REQUIRE,\
  248. RESTRICT,\
  249. RETURN,\
  250. REVOKE,\
  251. RIGHT,\
  252. RLIKE,\
  253. SCHEMA,\
  254. SCHEMAS,\
  255. SECOND_MICROSECOND,\
  256. SELECT,\
  257. SENSITIVE,\
  258. SEPARATOR,\
  259. SET,\
  260. SHOW,\
  261. SMALLINT,\
  262. SONAME,\
  263. SPATIAL,\
  264. SPECIFIC,\
  265. SQL,\
  266. SQLEXCEPTION,\
  267. SQLSTATE,\
  268. SQLWARNING,\
  269. SQL_BIG_RESULT,\
  270. SQL_CALC_FOUND_ROWS,\
  271. SQL_SMALL_RESULT,\
  272. SSL,\
  273. STARTING,\
  274. STRAIGHT_JOIN,\
  275. TABLE,\
  276. TABLES,\
  277. TERMINATED,\
  278. THEN,\
  279. TINYBLOB,\
  280. TINYINT,\
  281. TINYTEXT,\
  282. TO,\
  283. TRAILING,\
  284. TRIGGER,\
  285. TRUE,\
  286. UNDO,\
  287. UNION,\
  288. UNIQUE,\
  289. UNLOCK,\
  290. UNSIGNED,\
  291. UPDATE,\
  292. UPGRADE,\
  293. USAGE,\
  294. USE,\
  295. USING,\
  296. UTC_DATE,\
  297. UTC_TIME,\
  298. UTC_TIMESTAMP,\
  299. VALUES,\
  300. VARBINARY,\
  301. VARCHAR,\
  302. VARCHARACTER,\
  303. VARYING,\
  304. WHEN,\
  305. WHERE,\
  306. WHILE,\
  307. WITH,\
  308. WRITE,\
  309. XOR,\
  310. YEAR_MONTH,\
  311. ZEROFILL
  312.  
  313. # The character to append to attribute names to avoid exceptions due to
  314. # clashes between keywords and attribute names
  315. KeywordsMaskChar=_
  316.  
  317. #flags for loading and saving instances using DatabaseLoader/Saver
  318. nominalToStringLimit=50
  319. idColumn=auto_generated_id

  然后将weka文件夹打包成weka.jar,替换原来的weka.jar。运行weka,选择open DB,选择user,输入用户名和密码,点击connect,info显示connecting to:jdbc:mysql://localhost:3306/myweka = true,代表连接成功。Explorer就从数据库中载入数据集了。

Weka链接Mysql数据库的更多相关文章

  1. Python学习笔记9-Python 链接MySql数据库

    Python 链接MySql数据库,方法很简单: 首先需要先 安装一个MySql链接插件:MySQL-python-1.2.3.win-amd64-py2.7.exe 下载地址:http://dev. ...

  2. Tomcat通过JNDI方式链接MySql数据库

    原文:Tomcat通过JNDI方式链接MySql数据库 拷贝MySQL的JDBC驱动到Tomcat的lib路径下 配置全局数据源或者单个Web应用的局部数据源 局部数据源 在Tomcat的conf/C ...

  3. C# 链接MySql数据库

    C# 链接MySql数据库只得注意的几点: 1.C#链接MySql数据库要在网上下载一个mysql-connector-net-6.0.4-noinstall.rar  这里面放的都是一堆dll .将 ...

  4. 写给小白的JAVA链接MySQL数据库的步骤(JDBC):

    作为复习总结的笔记,我罗列了几个jdbc步骤,后边举个简单的例子,其中的try块请读者自行处理. /* * 1.下载驱动包:com.mysql.jdbc.Driver;网上很多下载资源,自己找度娘,此 ...

  5. Java链接MySQL数据库的用配置文件和不用配置文件的代码

    1.利用配置文件(db.properties)链接MySQL数据库 package tool; import java.io.FileInputStream;import java.sql.Conne ...

  6. SQLServer 远程链接MySql数据库详解

    SQLServer 远程链接MySql数据库详解 by:授客 QQ:1033553122 测试环境: Microsoft Windows XP Professional 版本2000 Service ...

  7. Java基于jdbc链接mysql数据库步骤示列

    用JDBC来链接MYSQL数据库,基本步骤都大同小异,只不过不同的数据库之间的URL地址有些不同.其基本步骤可分为以下几点: 1.加载相应的数据库的JDBC驱动程序. 2.利用驱动管理器DriverM ...

  8. jmeter链接mysql数据库

    一.下载与MySQL对应的jar包 1.1.查询MySQL的版本, 命令语句 :SELECT VERSION(); 1.2.MySQL官网下载jar包 ,https://downloads.mysql ...

  9. 用PHP链接mysql数据库

    PHP提供了两套数据库可用于访问mysql数据库 1)MySQL扩展函数数据库 2)MySQLI扩展数据库(improved) 使用MySQLI函数访问MySQL数据库步骤 1)链接数据库管理系统 m ...

随机推荐

  1. Win2D 官方文章系列翻译 - 处理设备丢失

    本文为个人博客备份文章,原文地址: http://validvoid.net/win2d-handling-device-lost/ “设备丢失”是指 GPU 设备失效无法继续进行渲染的情况.GPU ...

  2. opencv 连通域需要的函数解析

    OpenCV支持大量的轮廓.边缘.边界的相关函数,相应的函数有moments.HuMoments.findContours.drawContours.approxPolyDP.arcLength.bo ...

  3. js获取服务器控件DropDownList所选中的各项属性

    var ddl = document.getElementById("DropDownList1"); alert(ddl.selectedIndex);//选择索引值 alert ...

  4. sqool导出oracle数据

    set colsep '|'               --设置|为列分隔符 set echo off --在用start命令执行一个sql脚本时,是否显示脚本中正在执行的SQL语句 set fee ...

  5. mysql数据导入

    1.windows解压 2.修改文件名,例如a.txt 3.rz 导入到 linux \data\pcode sudo su -cd /data/pcode/rm -rf *.txt 4.合并到一个文 ...

  6. 检测zookeeper和kafka是否正常

    cd $(dirname $) source ~/.bash_profile count_zoo=`ps -ef | grep "config/zookeeper.properties&qu ...

  7. 洛谷P2731 骑马修栅栏 Riding the Fences

    P2731 骑马修栅栏 Riding the Fences• o 119通过o 468提交• 题目提供者该用户不存在• 标签USACO• 难度普及+/提高 提交 讨论 题解 最新讨论 • 数据有问题题 ...

  8. No.012 Integer to Roman

    12. Integer to Roman Total Accepted: 71315 Total Submissions: 176625 Difficulty: Medium Given an int ...

  9. “Sysprep 错误 + CAPI2 引起的蓝屏”的参考解决方法

    这些天我在给学校机房部署 Windows 7 系统时,遇到一些问题,在网上找了很长时间才找到,其中有一个还是英文的资料.特此分享出来,希望能给遇到同样问题的人一个参考.由于学校的机子型号不都一样,所以 ...

  10. 回到顶部js代码

    function go_to_top(){ //把内容滚动指定的像素数(第一个参数是向右滚动的像素数,第二个参数是向下滚动的像素数) window.scrollBy(0,-10); //延时递归调用, ...