以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 Web挖掘技术 』 (http://bbs.xml.org.cn/list.asp?boardid=69) ---- Weka入门教程 (http://bbs.xml.org.cn/dispbbs.asp?boardid=69&rootid=&id=42481) |
-- 作者:admin -- 发布时间:1/18/2007 11:34:00 PM -- Weka入门教程 Weka入门教程(1) 数据挖掘者 发表于 2007-1-18 22:29:16 转自:http://bbs.wekacn.org/viewtopic.php?t=9 目录 WEKA的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),它的源代码可通过http://www.cs.waikato.ac.nz/ml/weka得到。同时weka也是新西兰的一种鸟名,而WEKA的主要开发者来自新西兰。 WEKA作为一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理,分类,回归、聚类、关联规则以及在新的交互式界面上的可视化。 2005年8月,在第11届ACM SIGKDD国际会议上,怀卡托大学的Weka小组荣获了数据挖掘和知识探索领域的最高服务奖,Weka系统得到了广泛的认可,被誉为数据挖掘和机器学习历史上的里程碑,是现今最完备的数据挖掘工具之一(已有11年的发展历史)。Weka的每月下载次数已超过万次。 --整理自http://www.china-pub.com/computers/common/info.asp?id=29304 2. 数据格式 巧妇难为无米之炊。首先我们来看看WEKA所用的数据应是什么样的格式。 WEKA存储数据的格式是ARFF(Attribute-Relation File Format)文件,这是一种ASCII文本文件。图1所示的二维表格存储在如下的ARFF文件中。这也就是WEKA自带的“weather.arff”文件,在WEKA安装目录的“data”子目录下可以找到。 @attribute outlook {sunny, overcast, rainy} @data 需要注意的是,在Windows记事本打开这个文件时,可能会因为回车符定义不一致而导致分行不正常。推荐使用UltraEdit这样的字符编辑软件察看ARFF文件的内容。 下面我们来对这个文件的内容进行说明。 关系声明 属性声明 数值属性 分类属性 字符串属性 日期和时间属性 数据信息 每个实例占一行。实例的各属性值用逗号“,”隔开。如果某个属性的值是缺失值(missing value),用问号“?”表示,且这个问号不能省略。例如: 稀疏数据 Relational型属性 --整理自http://www.cs.waikato.ac.nz/~ml/weka/arff.html 和http://weka.sourceforge.net/wekadoc/index.php/en:ARFF_%283.5.3%29 |
-- 作者:admin -- 发布时间:1/18/2007 11:35:00 PM -- Weka入门教程(2) 数据挖掘者 发表于 2007-1-18 22:33:01 转自:http://bbs.wekacn.org/viewtopic.php?t=9 3.数据准备 使用WEKA作数据挖掘,面临的第一个问题往往是我们的数据不是ARFF格式的。幸好,WEKA还提供了对CSV文件的支持,而这种格式是被很多其他软件所支持的。此外,WEKA还提供了通过JDBC访问数据库的功能。 .* -> .csv Excel的XLS文件可以让多个二维表格放到不同的工作表(Sheet)中,我们只能把每个工作表存成不同的CSV文件。打开一个XLS文件并切换到需要转换的工作表,另存为CSV类型,点“确定”、“是”忽略提示即可完成操作。 在Matlab中的二维表格是一个矩阵,我们通过这条命令把一个矩阵存成CSV格式。 .csv -> .arff “Exploer”界面 预处理 通常对于数据挖掘任务来说,ID这样的信息是无用的,我们将之删除。在区域5勾选属性“id”,并点击“Remove”。将新的数据集保存一次,并用UltraEdit打开这个ARFF文件。我们发现,在属性声明部分,WEKA已经为每个属性选好了合适的类型。 我们知道,有些算法,只能处理所有的属性都是分类型的情况。这时候我们就需要对数值型的属性进行离散化。在这个数据集中有3个变量是数值型的,分别是“age”,“income”和“children”。 “age”和“income”的离散化我们需要借助WEKA中名为“Discretize”的Filter来完成。在区域2中点“Choose”,出现一棵“Filter树”,逐级找到“weka.filters.unsupervised.attribute.Discretize”,点击。若无法关闭这个树,在树之外的地方点击“Explorer”面板即可。 经过上述操作得到的数据集我们保存为bank-data-final.arff。 ----整理自http://maya.cs.depaul.edu/~classes/ect584/WEKA/preprocess.html 我们打算对前面的“bank-data”数据作关联规则的分析。用“Explorer”打开“bank-data-final.arff”后,切换到“Associate”选项卡。默认关联规则分析是用Apriori算法,我们就用这个算法,但是点“Choose”右边的文本框修改默认的参数,弹出的窗口中点“More”可以看到各参数的说明。 背景知识 参数设置 下面是挖掘出来的lift排前5的规则。 命令行方式 ----整理自http://maya.cs.depaul.edu/~classes/ect584/WEKA/associate.html |
-- 作者:admin -- 发布时间:1/18/2007 11:36:00 PM -- Weka入门教程(3) 数据挖掘者 发表于 2007-1-18 22:35:42 转自:http://bbs.wekacn.org/viewtopic.php?t=9 3. 分类与回归 选择算法 我们用“Explorer”打开训练集“bank.arff”,观察一下它是不是按照前面的要求处理好了。切换到“Classify”选项卡,点击“Choose”按钮后可以看到很多分类或者回归的算法分门别类的列在一个树型框里。3.5版的WEKA中,树型框下方有一个“Filter...”按钮,点击可以根据数据集的特性过滤掉不合适的算法。我们数据集的输入属性中有“Binary”型(即只有两个类的分类型)和数值型的属性,而Class变量是“Binary”的;于是我们勾选“Binary attributes”“Numeric attributes”和“Binary class”。点“OK”后回到树形图,可以发现一些算法名称变红了,说明它们不能用。选择“trees”下的“J48”,这就是我们需要的C4.5算法,还好它没有变红。 建模结果 我们看到“J48”算法交叉验证的结果之一为 右键点击“Results list”刚才出现的那一项,弹出菜单中选择“Visualize tree”,新窗口里可以看到图形模式的决策树。建议把这个新窗口最大化,然后点右键,选“Fit to screen”,可以把这个树看清楚些。看完后截图或者关掉500)this.width=500" border=0> 这里我们解释一下“Confusion Matrix”的含义。 模型应用 使用命令行(推荐) ----整理自http://maya.cs.depaul.edu/~classes/ect584/WEKA/classify.html
4. 聚类分析 原理与实现 上述K均值算法只能处理数值型的属性,遇到分类型的属性时要把它变为若干个取值0和1的属性。WEKA将自动实施这个分类型到数值型的变换,而且WEKA会自动对数值型的数据作标准化。因此,对于原始数据“bank-data.csv”,我们所做的预处理只是删去属性“id”,保存为ARFF格式后,修改属性“children”为分类型。这样得到的数据文件为“bank.arff”,含600条实例。 用“Explorer”打开刚才得到的“bank.arff”,并切换到“Cluster”。点“Choose”按钮选择“SimpleKMeans”,这是WEKA中实现K均值的算法。点击旁边的文本框,修改“numClusters”为6,说明我们希望把这600条实例聚成6类,即K=6。下面的“seed”参数是要设置一个随机种子,依此产生一个随机数,用来得到K均值算法中第一次给出的K个簇中心的位置。我们不妨暂时让它就为10。 结果解释 接下来“Cluster centroids:”之后列出了各个簇中心的位置。对于数值型的属性,簇中心就是它的均值(Mean);分类型的就是它的众数(Mode), 也就是说这个属性上取值为众数值的实例最多。对于数值型的属性,还给出了它在各个簇里的标准差(Std Devs)。 最后的“Clustered Instances”是各个簇中实例的数目及百分比。 为了观察可视化的聚类结果,我们在左下方“Result list”列出的结果上右击,点“Visualize cluster assignments”。弹出的窗口给出了各实例的散点图。最上方的两个框是选择横坐标和纵坐标,第二行的“color”是散点图着色的依据,默认是根据不同的簇“Cluster”给实例标上不同的颜色。 |
-- 作者:pollysup -- 发布时间:5/12/2007 9:44:00 AM -- 请问 怎么在matlab里面调用Weka呢? |
-- 作者:qiudw -- 发布时间:10/6/2007 12:26:00 PM -- 很好,谢谢了。 |
-- 作者:wl820609 -- 发布时间:12/20/2007 10:13:00 PM -- 谢谢分享!!! |
-- 作者:lanpin110354 -- 发布时间:7/3/2008 3:26:00 PM -- hao hao hao |
-- 作者:laiwq -- 发布时间:3/29/2009 10:02:00 PM -- 谢谢,给了我认识weka的机会,写的不错 |
-- 作者:Humphrey -- 发布时间:4/12/2009 9:00:00 AM -- 看来这种工具是数据挖掘方面最具影响力的了? |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
5,187.500ms |