电子商务weka实验Word格式.docx
《电子商务weka实验Word格式.docx》由会员分享,可在线阅读,更多相关《电子商务weka实验Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
4
K-MeansClusteringinWEKA
姓名
班级
学号
实验要求
必做
实验类别
数据挖掘
实验时间
2014.6.2
实验名称
指导教师
魏建国
一、实验目的:
本次实验主要目的是为了练习使用数据挖掘软件WEKA来进行一些基本的数据挖掘预处理操作。
2、实验步骤:
1.装载数据:
WEKA中分析对象是以arff格式文件表示的WEKA也支持csv等格式的数据文件并可以将其转换成arff文件)。
这里我们直接导入老师所给的bank-data.arff文件。
2.移出不相关属性:
我们可以看到bank-data.arff中的数据元组中都有ID属性,在进行相关数据挖掘之前(关联分析、分类、聚类),我们需使用WEKA中的Filter功能将ID属性过滤掉。
点击Filter面板旁边的Choose按钮并选择"
weka.filters.unsupervised.attribute.Remove"
,点击空白处并填写需要移出的属性序号为“1”,如下图:
点击“OK”返回主界面,并点击Apply按钮实施移出,保存当前文件为“bank-data-R1.arff”。
3.接下来要将一些属性的值做离散化(因为有一些算法只能在离散化的属性上才适用)。
首先,我们用文本编辑器打开刚才存储“bank-data-R1.arff”文件,并将children属性后的numeric更改为@attributechildren{0,1,2,3}
4.下面我们使用WEKA来进行"
age"
and"
income"
属性的离散化。
在本实验中我们将这两个属性划分为三个区段。
首先还在刚才的Filter面板旁点击Choose按钮,选择"
weka.filters.unsupervised.attribute.Discretize"
,点击空白并填写相关属性,这里我们要离散化age属性,所以我们键入age属性的序号3,因为我们要进行的是简单的分箱操作,所以将其它选项置为false。
点击OK返回并点击Apply进行离散化。
之后再按此步骤对income属性进行离散化。
都完成后将文件保存,并用Notepad++打开arff文件发现自动划分的边界并不是整数(不易读),我们利用Notepad++中的替换功能将边界值人工修正成我们想要的数值,最后修改结果见“实验结果”中的截图。
3、实验结果
进行属性值离散化之前:
图1-1
图1-2
进行属性值离散化之后:
图1-3
图1-4
成绩
批阅人
批阅时间
学习使用WEKA对数据进行频繁模式、关联和相关方面的分析。
二、实验步骤:
1.将上次实验预处理完毕的arff文件导入至WEKA,并点击“Associate”选项卡,跳转至关联分析界面。
这里我们看到“Assosiator”已经将Apriori算法设置为默认的分析器,但是我们需要更改一些参数,点击空白处调出参数设置页面。
设置参数如下图(注意将metricType度量标准替换为Lift标准):
返回并点击Start进行关联挖掘,返回结果如下图。
三、实验结果
图2-11
当然也可以在WEKA命令行下键入命令及参数进行管理分析,在此不详述。
熟悉在WEKA中使用C4.5(J48)算法以及给定的训练集对未分类数据集进行分类(Classification)。
1.首先我们点击选项卡“Classify”,进入分类界面,选择Trees下的J48算法。
2.“TestOptions”中的“cross-validation”(交叉验证)选项中我们填入10(这个貌似在多个训练集同时使用的时候才有用还是怎么着?
)。
返回主界面后点击“Start”开始分类,文字结果出现在窗体右部,如下图:
分类形成的可视化决策树如下:
这里我们注意到结果的准确度仅有将近69%,但是在这里我们就不进一步采取其它方法提高此值了。
3.下面我们将用以上分类得出的规则来对未知的数据进行分类。
将“Testoptions”选项中的RadioButtion选到Suppliedtestset,并点击“Set…—>
Openfile”,选择bank-new.arff并返回主窗口,再次点击“Start”,得出结果如下图:
4.从上图看到我们什么也没有得到,因为这个数据是需要分类的——其pep属性均为“?
”。
在这里我们右键单击新产生的结果集,并选择“Visualizeclassifiererrors”,并保存此次运行的结果。
5.找到我们保存的结果,用Notepad++打开此文件,发现属性中多了一项predictedpep,这就是我们按照训练集中的规律对于新的未知数据集做的分类结果,如下图所示。
还未作分类的bank-new.arff:
图3-1
已经做完预测的bank-predicted.arff(可以看到定义和元组中均多了一项):
图3-2
熟悉在WEKA中使用K-means算法(在WEKA中的实现为SimpleKMeans)以及给定的训练集对未分类数据集进行分类(Classification)。
1.首先介绍一下K-Means算法,一些K-Means算法的实现仅支持数值类型的数据而不支持离散类型的数据。
但是WEKA算法中的实现SimpleKMeans实现的K-Means算法对于这两种数据类型都提供了支持,这就不需要我们自己做数据类型的转化。
并且SimpleKMeans的实现也自动对数据进行规范化。
SimpleKMeans使用欧几里德距离来衡量相似度。
2.下面进行聚类。
首先选择Cluster选项卡切换到聚类界面。
选择算法为“SimpleKMeans”,并在空白处点击并设置算法参数如下图:
这里的numClusters为最后生成聚类的数量,而seed是作为初始选择中心点的一个“种子”,K-Means对于初始点的选择是很敏感的,所以初始种子设置的不同可能会带来不同的聚类结果。
3.在返回主界面后,选择“ClusterMode”中的"
Usetrainingset"
,并点击“Start”开始算法,得到结果如下图。
图4-1
可视化结果如下图:
图4-2
保存文件截图:
图4-3