Weka新手文章(一) 收藏
数据仓库,数据分析,不涉及商业方面的高层决策之用,故本篇文章只适合初学数据仓库,为了完成老师作业,且想用weka做简单数据挖掘之用的童鞋。
weka版本是3.6.2,数据库库是SQL Server 2005,没办法,老师提供的几万条数据保存在excel表中,如果从excel转为csv格式,再从weka中导入该csv文件,涉及到格式的转换,很是麻烦~况且几万条数据,不可能一条一条去检查它们的格式,故思路是,先在sql server中建立一个数据库(db_ppz),把csv中的几万条数据导入到数据库db_ppz中,再从weka中连接sql server读取数据,速度还可以啦~~
weka下载地址:一个是自带了jdk,一个没带jdk,文件体积少点。。。
http://www.cs.waikato.ac.nz/~ml/weka/
是的,weka连接数据库也是有点麻烦的,但网上教程还是不少,下面链接整理得很好(但偶有简便改进方法~~)
http://blog.csdn.net/senaku/archive/2008/03/28/2225943.aspx
1、下载微软的驱动jdbc,最新版的已经是sqljdbc_3.0,google一下可以快速找到微软网站下载。下载到的是zip包包,解压,得到sqljdbc_3.0.jar文件,这时不用像上面网站那样××又××的(他是假设电脑中还没配置好jdk的)。思路是把sqljdbc_3.0.jar放到jdk中的jre/lib/中,比如“D:/Program Files/Java/jre1.6.0_07/lib/ext"。因为jdk配置时已经设置好环境变量,把jar包包放这里,weka通过访问jdk路径,能找到这个驱动文件的。
2、上面的步骤,可以代替链接网站中的前5小步骤,可以开始配置DatabaseUtils.props文件。进入weka所在的文件夹中,比如我的是”D:/Program Files/Weka-3-6“,找到weka.jar这个文件,先对它做个异地备份。然后用rar软件打开它,进入里面weka.jar/weka/experiment 位置,找到DatabaseUtils.props,双击打开,然后开始编辑它的内容:
对于sql server,可以参考下面的配置内容,而只需更改一个地方,即你自己的数据库名称:
“jdbcURL=jdbc:sqlserver://localhost;databaseName=db_ppz ”
- # Database settings for Microsoft SQL Server 2005 Express Edition
- #
- # url: http://www.microsoft.com/
- # jdbc: http://msdn2.microsoft.com/en-us/data/aa937724.aspx
- # author: Fracpete (fracpete at waikato dot ac dot nz)
- # version: $Revision: 1.2 $
- # JDBC driver (comma-separated list)
- jdbcDriver=com.microsoft.sqlserver.jdbc.SQLServerDriver
- # database URL
- jdbcURL=jdbc:sqlserver://localhost;databaseName=db_ppz
- # specific data types
- 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
- gloat, getFloat() = 7; --> numeric
- date, getDate() = 8; --> date
- text, getString() = 9; --> string
- bit=1
- tinyint=3
- smallint=4
- int=5
- bigint=6
- smallmoney=2
- money=2
- numeric=2
- decimal=2
- float=2
- real=2
- smalldatetime=8
- datetime=8
- timestamp=8
- char=0
- text=0
- varchar=0
- nchar=0
- ntext=0
- nvarchar=0
- binary=0
- varbinary=0
- image=0
- uniqueidentifier=9
- rowversion=9
- # other options
- CREATE_DOUBLE=DOUBLE PRECISION
- CREATE_STRING=VARCHAR(8000)
- CREATE_INT=INT
- checkUpperCaseNames=false
- checkLowerCaseNames=false
- checkForTable=true
修改好后,保存关闭,然后在rar中更新它即可。方便之处:不用对weka.jar进行解包,配置好DatabaseUtils.props文件后不需要再用jar命令进行压缩(我最开始也是解包,修改,再压缩,但运行weka软件时会提示说找不到main函数,且网上也有一些人碰到相同问题)。
3、配置好后,运行weka,选择open db,弹出窗口中可以看到database url,我的是”jdbc:sqlserver://localhost;databaseName=db_ppz“,再选择user,用sa帐号登录(我是另外建立帐号登录数据库),然后选择user旁边的按钮Connect,在最下面的info中,显示结果=true,表示连接成功。然后根据数据库中的表,执行sql语句,select出数据,按ok确认返回weka的explorer界面。
(其实如果为了测试或熟悉weka,可以打开它自带的测试数据,数据位于”D:/Program Files/Weka-3-6/data“。或者在open db旁边的DataGenerator也是可以快速生成测试数据,我选择的是weka.datagenerators.classifiers.classification.Agrawal产生器)
上面基本配置好weka,读取到数据。后文将更新个人筛选数据,使用三个数据算法(分类、聚类、关联分析)的小小教程吧,因为我也从小白鼠过来的~~
weka推荐看的东东吧~~不看文章是不行的,手上也需要一个翻译软件,比如有道词典,啊啊?? Orz……
Weka入门教程:http://forum.wekacn.org/viewtopic.php?f=2&t=9
weka中文论坛:http://forum.wekacn.org/viewforum.php?f=2
这个文档,介绍了几个算法吧:http://wenku.baidu.com/view/a0cfde06eff9aef8941e06fd.html
还有这个,算扫盲:http://wenku.baidu.com/view/49716a0203d8ce2f006623fd.html
google一下:weka 中文教程.pdf,对weka这个软件的界面介绍??