1.?? 去官方网站?http://www.cs.waikato.ac.nz/ml/weka/ 下载weka安装包
2.?? 连接数据库:
以SQL?Server2000为例,使用jdbc-odbc桥的方式。其他的数据库操作方法一样,具体细节各异。
1?jdbc-odbc桥的方式不用安装驱动程序,我们在管理工具里面建个数据源。
2?修改?weka/experiment下的DatabaseUtils.props文件。
******************** 将weka安装目录下的weka.jar解压后 就可以看到weka/experiment/DatabaseUtils.props目录 ********************
我们可以看到有DatabaseUtils.props.odbc;DatabaseUtils.props.oracle等 我们先将DatabaseUtils.props随便改成一个其他的名字,然后将DatabaseUtils.props.mssqlserver改成DatabaseUtils.props, 打开现在的DatabaseUtils.props可以看到以下部分:(#表示注释)2.1驱动加载 #?JDBC?driver?(comma-separated?list) jdbcDriver=sun.jdbc.odbc.JdbcOdbcDriver 2.2数据库连接#?database?URL jdbcURL=jdbc:odbc:(这里是你建的数据源的名称)
2.3数据类型的转换。由于weka仅支持名词型(nominal)、数值型(numeric)、字符串、日期(date)。所以我们要将现在数据库中的数据类型对应到这四种类型上来。
将以下数据类型对应的句子前面的注释符合去掉。由于SQL?Server2000有其他的数据类型Weka尚不能识别,所以我们在下面再添加上 smallint=3 datetime=8等等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 varchar=0 float=2 tinyint=3 int=5 3其他说明,暂时不用去管了(我也不是很明白...) #?other?options CREATE_DOUBLE=DOUBLE?PRECISION CREATE_STRING=VARCHAR(8000) CREATE_INT=INT checkUpperCaseNames=false checkLowerCaseNames=false checkForTable=true ******************** 注意,因为weka软件运行时需要读取weka。jar,所以你修改之后要重新打包jar文件替换原来的jar才可以运行weka软件成功连接数据库 ********************
4?OK,下面可以操作了!运行weka的Explore界面后,通过Open?DB..打开SQL?Viewer工作界面(3.5.5版本比3.4.10在这里精细了许多)。 通过user设置好用户名和密码后即可connect; 连接成功后,可以通过书写sql语句查询出想要的结果后, OK即可在Explore界面的preprocoss面板中看到了输入的数据。 ******************** 查询出结果来,OK导入Explore时可能会出错,说某个类型无法识别,这时候 就要看看在2.3步骤那里是否加入了该数据类型
?
weka.jar的修改中可能会遇到问题weka.jar解开并修改后,无法再压缩回去。下面提供一种简单解决方法
1.??? weka.jar解开,将所需要修改的文件修改好,将未解开的weka.jar直接用压缩工具(我是用的WINRAR)打开,让后将修改好的文件直接COPY到原文件位置,然后确定就可以了。
?
?
交流邮箱:mengniu@mail.ustc.edu.cn
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|