数据仓库与数据挖掘
实 验 指 导 书
东北石油大学计算机与信息技术系王浩畅
1
实验一 Weka实验环境初探
一、实验名称: Weka实验环境初探 二、实验目的:
通过一个已有的数据集,在weka环境下,测试常用数据挖掘算法,熟悉Weka环境。
三、实验要求
1. 熟悉weka的应用环境。 2. 了解数据挖掘常用算法。
3. 在weka环境下,测试常用数据挖掘算法。 四、实验平台
新西兰怀卡托大学研制的Weka系统 五、实验数据
Weka安装目录下data文件夹中的数据集weather.nominal.arff,weather.arff 六、实验方法和步骤
1、首先,选择数据集weather.nominal.arff,操作步骤为点击Explorer,进入主界面,点击左上角的“Open file...”按钮,选择数据集weather.nominal.arff文件,该文件中存储着表格中的数据,点击区域2中的“Edit”可以看到相应的数据:
2
选择上端的Associate选项页,即数据挖掘中的关联规则挖掘选项,此处要做的是从上述数据集中寻找关联规则。点击后进入如下界面:
2、现在打开weather.arff,数据集中的类别换成数字。
3
选择上端的Associate选项页,但是在Associate选项卡中Start按钮为灰色的,也就是说这个时候无法使用Apriori算法进行规则的挖掘,原因在于Apriori算法不能应用于连续型的数值类型。所以现在需要对数值进行离散化,就是类似于将20-30℃划分为“热”,0-10℃定义为“冷”,这样经过对数值型属性的离散化,就可以应用Apriori算法了。Weka提供了良好的数据预处理方法。第一步:选择要预处理的属性temperrature
4
从中可以看出,对于“温度”这一项,一共有12条不同的内容,最小值为64(单位:华氏摄氏度,下同),最大值为85,选择过滤器“choose”按钮,或者在同行的空白处点击一下,即可弹出过滤器选择框,逐级找到 “Weka.filters.unsupervised.attribute.Discretize”,点击;若无法关闭这个树,在树之外的地方点击 “Explorer”面板即可。
现在“Choose”旁边的文本框应该显示“Discretize -B 10 -M -0.1 -R first-last”。点击这个文本框会弹出新窗口以修改离散化的参数。
因为这里不打算对所有的属性离散化,只是针对对第2个和第3个属性,故把attributeIndices右边改成 “2,3”。计划把这两个属性都分成3段,于是把“bins”改成“3”。其它文本框里的值不用更改,关于这些参数的意义可以点击“More”查看。点“OK”回到 “Explorer”,可以看到“temperature”和“humidity”已经被离散化成为分类型的属性。若想放弃离散化可以点“Undo”。
可以看到temperature属性信息如下显示:
5
Humidity属性变成如下样式:
3、在Classify,Cluster,Associate选项中分别尝试不同算法。
七、通过实验,掌握Weka的使用
6
实验二 基于关联规则的信息获取
一、实验名称:
基于关联规则的信息获取 二、实验目的:
通过一个已有的训练数据集,观察训练集中的实例,进行关联信息获取,更好地理解和掌握关联规则算法的基本原理,建立相应的预测模型,然后对新的未知实例进行预测,预测的准确程度来衡量所建立模型的好坏。 三、实验要求
1、熟悉Weka平台 2、掌握关联规则算法
3、对数据进行预处理,利用Weka和不同参数设置进行关联分析,对比结果,得出结论,对问题进行总结。 四、实验平台
新西兰怀卡托大学研制的Weka系统 五、实验数据
1、使用银行对资产进行评估的数据bank-data.arf,数据里有12个属性,分别是id,age,sex,region,income,married,children, car, save_act, current_act, mortgage,pep.共600个实例。 六、实验方法和步骤
1、打开WEKA界面如下:界面中有四个选择Simple CLC, Explorer, Experimenter, KnowledgeFlow。 我们选择Explorer进行实验。 文件格式转化为ARFF的方式。
2、选择Explorer选项,选择Open file打开bank-data.arff数据,打开
可以看见数据中的属性,选择属性从右边可以看到它的取值范围 1)CSV换成ARFF格式
将CSV转换为ARFF最迅捷的办法是使用WEKA所带的命令行工具。运行WEKA的主程序,出现GUI后可以点击下方按钮进入相应的模块。我们点击进入“Simple CLI”模块提供的命令行功能。在新窗口的最下方(上方是不能写字的)输入框写上
7
java weka.core.converters.CSVLoader filename.csv > filename.arff 即可完成转换。
在WEKA 3.5中提供了一个“Arff Viewer”模块,我们可以用它打开一个CSV文件将进行浏览,然后另存为ARFF文件。
进入“Explorer”模块,从上方的按钮中打开CSV文件然后另存为ARFF文件亦可。
3、进行数据过滤,选择Filter中的Discretize方法,点击Apply,先对ARFF文件进行离散化:用UltraEdit(或者其它文本编辑器)对其进行编辑:@attribute children numeric改为:
@attribute children {0,1,2,3} 然后用discretize算法对age和income离散化,并删掉id项因为它对关联规则分析无影响,保存文件。 4、选择Associate项中的Apriori算法分析进行关联信息获取,并进行参数
设置。
七、通过实验,要求同学在关联规则信息获取实验中解决以下问题,并递交完整的实验报告
1. 对于非xls格式的数据如何转换成ARFF数据类型?请给出你了解到的几种数据类型到ARFF的转换方式?
2. 在算法出来的lift排前1的规则中,如: 1. age=52_max save_act=YES current_act=YES 113 ==> income=43759_max
61 conf:(0.54) < lift:(4.05)> lev:(0.08) [45] conv:(1.85) 请说明 其中113、 61、conf:(0.54)都表示什么含义?
8
实验三 基于Na?ve Bayes的信息获取
一、实验名称:
基于Na?ve Bayes的信息获取 二、实验目的:
通过一个已有的训练数据集,观察训练集中的实例,,建立Bayes网络的预测模型,更好地理解和掌握Bayes算法的基本原理,建立相应的预测模型,然后对新的未知实例进行预测,预测的准确程度来衡量所建立模型的好坏。 三、实验要求
1、熟悉Weka平台 2、掌握Na?ve Bayes算法
3、对数据进行预处理,利用Weka和不同参数设置进行关联分析,对比结果,得出结论,对问题进行总结。 四、实验平台
新西兰怀卡托大学研制的Weka系统 五、试验数据
1、使用银行对资产进行评估的数据bank-data.arf,数据里有12个属性,分别是id,age,sex,region,income,married,children, car, save_act, current_act, mortgage,pep.共600个实例。
2、将含有600个实例的“bank-data.csv”文件中取出300个实例用做训练集,在另外300个实例中取50个作为待预测的实例。
3、本测试集中将pep属性作为分类的目标类别,因此将其设为缺失值.缺失值用?表示。 六、试验方法和步骤
1、数据准备
(1)将原来的“bank-data.csv”文件转化为arff文件“bank-data.csv.arff”。 (2)“ID”属性不需要的去掉。
(3)把“Children”属性转换成分类型的两个值“YES”和“NO”。 (4)将“bank-data.csv.arff”文件的600条数据中前300条数据作为训
9
练数据集,并保存为文件。
(5)从后300条数据里抽取50条数据作为测试数据集,它们的“pep”属性都设为缺失值,并保存为文件。 2、训练过程
(1) 用“Explorer”打开训练集,观察一下它是不是按照前面的要求处理好了。
(2) 切换到“Classify”选项卡。
(3)点击“Choose”按钮后可以看到很多分类或者回归的算法分门别类的列在一个树型框里。树型框下方有一个“Filter...”按钮,点击可以根据数据集的特性过滤掉不合适的算法。我们数据集的输入属性中有“Binary”型(即只有两个类的分类型)和数值型的属性,而Class变量是“Binary”的;于是我们勾选“Binary attributes”“Numeric attributes”和“Binary class”。
(4) 点“OK”后回到树形图,可以发现一些算法名称变红了,说明它们不能选用。
(5)点击“Choose”右边的文本框,弹出新窗口为该算法设置各种参数。点“More”查看参数说明,点“Capabilities”是查看算法适用范围。这里我们把参数保持默认。
(6)看左中的“Test Option”。我们没有专门设置检验数据集,为了保证生成的模型的准确性而不至于出现过拟合(overfitting)的现象,我们有必要采用10折交叉验证(10-fold cross validation)来选择和评估模型,选上“Cross-validation”并在“Folds”框填上“10”。
(7)点“Start”按钮开始让算法生成Bayes模型。这个模型的误差分析等等结果将出现在右边的“Classifier output”中。同时左下的“Results list”出现了一个项目显示刚才的时间和算法名称。
(8)右键点击“Results list”刚才出现的那一项,弹出菜单中选择“Visualize tree”,可以看到可视化结果。 3、测试过程
(1)注意待预测数据集和训练用数据集各个属性的设置必须是一致的。 (2)在“Test Opion”中选择“Supplied test set”,并且“Set”成要应用模型的数据集,这里是“bank-new.arff”文件。
10
(3)右键点击“Result list”中刚产生的那一项,选择“Re-evaluate model on current test set”。右边显示结果的区域中会增加一些内容,告诉你该模型应用在这个数据集上表现将如何。我们的Class属性都是些缺失值,那这些内容是无意义的,我们关注的是模型在新数据集上的预测值。
(4)点击右键菜单中的“Visualize classifier errors”, 将弹出一个新窗口显示一些有关预测误差的散点,点击这个新窗口中的“Save”按钮,保存一个Arff文件。
(5)打开这个文件可以看到在倒数第二个位置多了一个属性(predictedpep),这个属性上的值就是模型对每个实例的预测值,点“Edit”按钮可以查看这个数据集的内容。
七、通过实验,要求同学在贝叶斯信息获取实验中解决以下问题,并递交完整的实验报告
1、在数据预处理中,通过转换与否的实验比较,判断是否一定要把“Children”属性转换成分类型的两个值“YES” “NO”。
2、 在算法选择时,点击“Choose”按钮后可以看到哪些分类的算法分门别类的列在一个树型框里? 将些数据截图,在实验报告中进行详解。 3、点击“Choose”右边的文本框,弹出新窗口为该算法设置各种参数。点“More”查看参数说明,点“Capabilities”查看算法适用范围。请在实验报告中详解的参数设置情况。
4、请介绍你建立好的模型以及对该模型的误差分析等结果,如:出现在“Classifier output”中的模型准确度等,将这些数据截图, 在实验报告中进行详解。
5、如果你的模型准确度不高,你是怎样通过修改算法的参数来提高准确度?
11
实验四 基于决策树的分类学习方法
一、实验名称:
基于决策树的分类学习方法 二、实验目的:
通过一个已有的训练数据集,观察训练集中的实例,建立基于决策树的预测模型,更好地理解和掌握决策树算法的基本原理,建立相应的预测模型,然后对新的未知实例进行预测,预测的准确程度来衡量所建立模型的好坏。 三、实验要求
1、熟悉Weka平台 2、掌握决策树算法
3、对数据进行预处理,利用Weka和不同参数设置进行分类,对比结果,得出结论,对问题进行总结。 四、实验平台
新西兰怀卡托大学研制的Weka系统 五、实验数据
1、使用银行对资产进行评估的数据bank-data.arf,数据里有12个属性,分别是id,age,sex,region,income,married,children, car, save_act, current_act, mortgage,pep.共600个实例。
2、将含有600个实例的“bank-data.csv”文件中取出300个实例用做训练集,在另外300个实例中取50个作为待预测的实例。
3、本测试集中将pep属性作为分类的目标类别,因此将其设为缺失值.缺失值用?表示。 六、实验方法和步骤
1、数据准备
(1)将原来的“bank-data.csv”文件转化为arff文件“bank-data.csv.arff”。 (2)“ID”属性不需要的去掉。
(3)把“Children”属性转换成分类型的两个值“YES”和“NO”。
12
(4)将“bank-data.csv.arff”文件的600条数据中前300条数据作为训练数据集,并保存为文件。
(5)从后300条数据里抽取50条数据作为测试数据集,它们的“pep”属性都设为缺失值,并保存为文件。 2、训练过程
(1) 用“Explorer”打开训练集,观察一下它是不是按照前面的要求处理好了。
(2) 切换到“Classify”选项卡。
(3)点击“Classify”选项卡。单击左上方的Choose按钮,在随后打开的层级式菜单中的tree部分找到J48。
(4)选中J48分类器后,J48以及它的相关默认参数值出现在Choose按钮旁边的条形框中。单击这个条形框会打开J48分类器的对象编辑器,编辑器会显示J48的各个参数的含义。根据实际情况选择适当的参数,Explore通常会合理地设定这些参数的默认值。
(5)看左中的“Test Option”。我们没有专门设置检验数据集,为了保证生成的模型的准确性而不至于出现过拟合(overfitting)的现象,我们有必要采用10折交叉验证(10-fold cross validation)来选择和评估模型,选上“Cross-validation”并在“Folds”框填上“10”。
(6)点“Start”按钮开始让算法生成Bayes模型。这个模型的误差分析等等结果将出现在右边的“Classifier output”中。同时左下的“Results list”出现了一个项目显示刚才的时间和算法名称。
(7)右键点击“Results list”刚才出现的那一项,弹出菜单中选择“Visualize tree”,新窗口里可以看到图形模式的决策树。建议把这个新窗口最大化,然后点右键,选“Fit to screen”,可以把这个树看清楚些。 3、测试过程
(1)注意待预测数据集和训练用数据集各个属性的设置必须是一致的。 (2)在“Test Opion”中选择“Supplied test set”,并且“Set”成要应用模型的数据集,这里是“bank-new.arff”文件。
(3)右键点击“Result list”中刚产生的那一项,选择“Re-evaluate model on current test set”。右边显示结果的区域中会增加一些内容,告诉你该模型应用在这个数据集上表现将如何。我们的Class属性都是些缺失值,那这些内容
13
是无意义的,我们关注的是模型在新数据集上的预测值。
(4)点击右键菜单中的“Visualize classifier errors”, 将弹出一个新窗口显示一些有关预测误差的散点,点击这个新窗口中的“Save”按钮,保存一个Arff文件。
(5)打开这个文件可以看到在倒数第二个位置多了一个属性(predictedpep),这个属性上的值就是模型对每个实例的预测值,点“Edit”按钮可以查看这个数据集的内容。
这里我们解释一下“Confusion Matrix”的含义。 === Confusion Matrix === a b <-- classified as 74 64 | a = YES 30 132 | b = NO
这个矩阵是说,原本“pep”是“YES”的实例,有74个被正确的预测为“YES”,有64个错误的预测成了“NO”;原本“pep”是“NO”的实例,有30个被错误的预测为“YES”,有132个正确的预测成了“NO”。74+64+30+132 = 300是实例总数,而(74+132)/300 = 0.68667正好是正确分类的实例所占比例。这个矩阵对角线上的数字越大,说明预测得越好。
七、通过实验,要求同学在决策树实验中解决以下问题,并递交完整的实验报告 1、在数据预处理中,通过转换与否的实验比较,判断是否一定要把“Children”属性转换成分类型的两个值“YES” “NO”。
2、 点击“Choose”右边的文本框,弹出新窗口为该算法设置各种参数。点“More”查看参数说明,点“Capabilities”查看算法适用范围。请在实验报告中详解的参数设置情况。
3、分析生成的决策树,并转换为IF THEN规则的形式
4、请介绍你建立好的模型以及对该模型的误差分析等结果,如:出现在“Classifier output”中的模型准确度等,将这些数据截图, 在实验报告中进行详解。
5、如果你的模型准确度不高,你是怎样通过修改算法的参数来提高准确度?
14
实验五 神经网络分类学习方法
一、实验名称:
神经网络分类学习方法 二、实验目的:
通过一个已有的训练数据集,观察训练集中的实例,,建立神经网络的预测模型,更好地理解和掌握神经网络算法的基本原理,建立相应的预测模型,然后对新的未知实例进行预测,预测的准确程度来衡量所建立模型的好坏。 三、实验要求
1学习神经网络分类学习方法,学习其中反向传播神经网络(BP神经网络)学习算法。
2应用Weka软件,学会导入数据文件,并对数据文件进行预处理。 3学会如何选择学习算法并调节学习训练参数以达到最佳学习效果。 四、实验平台
新西兰怀卡托大学研制的Weka系统 五、试验数据
Weka安装目录下data文件夹中的数据集weather.arff,银行对资产进行评估的数据bank-data.arf 六、试验方法和步骤
1在开始程序(或者桌面图标)中找到WEKA3.6,单击即可启动WEKA,启动WEKA时会发现首先出现的一个命令提示符。接着将出现如下Weka GUI Chooser界面。
2选择GUI Chooser中的探索者(Explorer)用户界面。点击预处理(Preprocess)功能按钮的,Open file,选择其中的“weather”数据作关联规则的分析。打开“weather.arff”,可以看到“Current relation”、“Attributes”“Selected attribute”三个区域。
3点击“Classify”选项卡。单击左上方的Choose按钮,在随后打开的层级式菜单中的function部分找到MultiayerPerceptron。
4在test options选项中选择默认的10折交叉确认法,神经网络参数可采用默认设置或适当修改。
15
5选定分类器后,单击Start按钮使其开始工作。Weka每次运行时间的较短。在它工作时,坐在右下角的小鸟会即时起舞,随后结果就显示在右区域中。
6实验结果。在窗口的右区域默认显示了全部输出结果。在该结果的开头给出了数据集概要并注明所需要的评估方法是默认的10折交叉验证。可以选择其他的验证方法来重新分类学习。
7打开数据文件bank-data.csv,删除属性id,重复上述操作,查看结果;尝试在数据预处理阶段删除属性region,再训练神经网络;如果需要查看神经网络的图形,点击“choose”按钮右侧的文字栏,将下拉选项GUI设为true,点击start即可。
16
七、通过实验,要求同学在贝叶斯信息获取实验中解决以下问题,并递交完整的实验报告
1、在数据预处理中,通过转换与否的实验比较,判断是否一定要把“Children”属性转换成分类型的两个值“YES” “NO”。
2、 在算法选择时,点击“Choose”按钮后可以看到哪些分类的算法分门别类的列在一个树型框里? 将些数据截图,在实验报告中进行详解。
3、点击“Choose”右边的文本框,弹出新窗口为该算法设置各种参数。点“More”查看参数说明,点“Capabilities”查看算法适用范围。请在实验报告中详解的参数设置情况。
4、请介绍你建立好的模型以及对该模型的误差分析等结果,如:出现在“Classifier output”中的模型准确度等,将这些数据截图, 在实验报告中进行详解。
5、如果你的模型准确度不高,你是怎样通过修改算法的参数来提高准确度?
17
实验六 基于回归模型的数据分析
一、实验名称:
基于回归模型的数据分析 二、实验目的:
通过一个已有的训练数据集,观察训练集中的实例,进行回归分析,更好地理解和掌握回归分析算法基本原理,建立相应的预测模型,然后对新的未知实例进行预测,预测的准确程度来衡量所建立模型的好坏。 三、实验要求
1、熟悉Weka平台 2、掌握回归分析算法
3、对数据进行预处理,利用Weka和不同参数设置进行回归分析,对比结果,得出结论,对问题进行总结。 四、实验平台
新西兰怀卡托大学研制的Weka系统 五、实验数据
使用房屋定价数据,具体如表1所示:
表1回归模型的房屋值 房子面积(平方英占地的大卧花岗卫生间有无重销售价格 尺) 小 室 岩 装? 3529 3247 4032 2397 2200 3536 2983 3198 9191 10061 10150 14156 9600 19994 9365 9669 6 5 5 4 4 6 5 5 0 1 0 1 0 1 0 1 0 1 1 0 1` 1 1 1 ¥205,000 ¥224,900 ¥197,900 ¥189,900 ¥195,000 ¥325,000 ¥230,000 ???? 六、实验方法和步骤
1.为 Weka 构建数据集
为了将数据加载到 Weka,必须将数据放入到arff格式的文件中,具体介绍如前面所示,现构造arff文件如下,存成house.arff:
18
2.将数据载入 Weka
数据创建完成后,就可以开始创建回归模型。启动 Weka,根据之前的实验方法载入之前构造的文件house.arff。
3.用 Weka 创建一个回归模型 为了创建这个模型,单击 Classify 选项卡。第一个步骤是选择想要创建的这个模型,也就是选择希望使用的建模算法:
? 单击 Choose 按钮,然后扩展 functions 分支; ? 选择 Linear Regression
4.创建训练集
准备好创建模型后,单击 Start,输出结果如下:
19
5.解析这个回归模型
Weka功能强大,在上面的输出信息中就可以看出一个关于selling-price的计算公式(模型),包括一些其他信息,而此处关心的主要内容就是这个公式,如下清单所示:
6.预测 3198 9669 5 1 1 ???? 七、通过实验,要求同学在聚类分析信息获取实验中解决以下问题,并递交完整的实验报告
1. 解释得到的回归模型 2. 给出预测结果。
20
实验七 基于集成学习的信息获取
一、实验名称:
基于集成学习的信息获取 二、实验目的:
熟悉Random Forest算法原理、框架及应用。通过weka工具包的仿真并与bagging方法和决策树J48的结果进行比较,分析Random Forest的性能。 三、实验要求
1、熟悉Weka平台
2、掌握Random Forest算法算法
3、对数据进行预处理,利用Weka和不同参数设置进行集成学习,对比结果,得出结论,对问题进行总结。 四、实验平台
新西兰怀卡托大学研制的Weka系统 五、实验数据
工具包自带的segment-challenge.arff数据集(1500条数据,20个特征变量,7分类问题) 六、实验方法和步骤
Random Forest( RF) 是利用bootsrap重抽样方法从原始样本中抽取多个样本,对每个bootsrap样本进行决策树建模, 然后组合多棵决策树的预测, 通过投票得出最终预测结果。RF通过构造不同的训练集增加分类模型间的差异, 从而提高组合分类模型的外推预测能力。
1、用weka工具进行分析,选择工具包自带的segment-challenge.arff数据集(1500条数据,20个特征变量,7分类问题)。
2、进行Random Forest实验
3、通过与bagging方法和决策树J48进行比较分析。在仿真过程中选择数据集中的66%作为训练集,即其中的510个数据作为测试集。
七、通过实验,要求同学在聚类分析信息获取实验中解决以下问题,并递交完整的实验报告
21
1.基于segment-challenge.arff数据集,比较Random Forests算法、Bagging模型和决策树J48模型的分类性能。
2.当Random Forests树的数量由5增加到10时,继续增加到20棵树时,比较误差率及运行时间,并对实验结果进行说明 结果参考
(1)bagging分类的结果
图3-1
(2)决策树J48的分类结果
22
图3-2
(3)Random Forests的分类结果 A.5棵树的情况
23
图3-3
B.10棵树的情况
24
图3-4
C.20棵树的情况
25
图3-5
【结果分析】 结果对照表: 分类器 Bagging J48 Random Forests(5) 误分率 运行时间(s)
3.33% 0.40 4.90% 0.13 2.55% 0.22 Random Forests(10) 1.57% 0.42 Random Forests(20) 1.57% 0.8 26
实验八 基于SimpleKMeans聚类分析的信息获取
一、实验名称:
基于SimpleKMeans聚类分析的信息获取 二、实验目的:
通过一个已有的训练数据集,观察训练集中的实例,进行聚类信息获取,更好地理解和掌握聚类分析算法基本原理,建立相应的预测模型,然后对新的未知实例进行预测,预测的准确程度来衡量所建立模型的好坏。 三、实验要求
1、熟悉Weka平台 2、掌握聚类分析算法
3、对数据进行预处理,利用Weka和不同参数设置进行聚类分析,对比结果,得出结论,对问题进行总结。 四、实验平台
新西兰怀卡托大学研制的Weka系统 五、实验数据
1、使用银行对资产进行评估的数据bank-data.arf,数据里有12个属性,分别是id,age,sex,region,income,married,children, car, save_act, current_act, mortgage,pep.共600个实例。
2、本测试集中将pep属性作为分类的目标类别,因此将其设为缺失值.缺失值用?表示。 六、实验方法和步骤
1、首先对于原始数据做预处理。把“bank-data.xls”格式数据转换为“bank-data.csv”,并删去属性“id”,保存为ARFF格式后,修改属性“children”为分类型。这样得到的数据文件为“bank-data.arff”,含600条实例。 具体操作如下。
(1)将xls格式文件转化为csv格式文件。打开bank-data.xls,另存为csv格式的文件,并命名为bank-data,接着将CSV文件,转换为ARFF格式文件bank-data. arff。
(2)删去属性“id”,保存为ARFF格式;用UltraEdit打开bank-data. arff
27
文件, 修改属性“children”为分类型. 把@attribute children numeric改为@attribute children {0,1,2,3},然后保存即可 2、用Weka打开bank-data.arff文件,进行相应设置后开始分析。
(1)用“Explorer”打开刚才得到的“bank-data.arff”,并切换到“Cluster”。点“Choose”按钮选择“SimpleKMeans”,这是WEKA中实现K均值的算法。点击旁边的文本框,修改“numClusters”为6,说明把这600条实例聚成6类,即K=6。下面的“seed”参数是要设置一个随机种子,依此产生一个随机数,用来得到K均值算法中第一次给出的K个簇中心的位置。设它的值为10
(2)选中“Cluster Mode”的“Use training set”,点击“Start”按钮,观察右边“Clusterer output”给出的聚类结果。也可以在左下角“Result list”中这次产生的结果上点右键,“View in separate window”在新窗口中浏览结果。 3、实验分析
(1)首先我们注意到结果中有这么一行:Within cluster sum of squared errors: 1604.7416693522332
这是评价聚类好坏的标准,数值越小说明同一簇实例之间的距离越小。也许你得到的数值会不一样;实际上如果把“seed”参数改一下,得到的这个数值就可能会不一样。我们应该多尝试几个seed,并采纳这个数值最小的那个结果。例如我们让“seed”取100,就得到 Within cluster sum of squared errors: 1555.6241507629218 , 这样就选择后面这个。当然再尝试几个seed,这个数值可能会更小。
(2)接下来“Cluster centroids:”之后列出了各个簇中心的位置。对于数值型的属性,簇中心就是它的均值(Mean);分类型的就是它的众数(Mode), 也就是说这个属性上取值为众数值的实例最多。对于数值型的属性,还给出了它在各个簇里的标准差(Std Devs)
(3)最后的“Clustered Instances”是各个簇中实例的数目及百分比。 (4)观察可视化的聚类结果,我们在左下方“Result list”列出的结果上右击,点“Visualize cluster assignments”。弹出的窗口给出了各实例的散点图。最上方的两个框是选择横坐标和纵坐标,它们分别代表实例的位置和年龄属性.第二行的“color”是散点图着色的依据,默认是根据不同的
28
簇“Cluster”给实例标上不同的颜色。
(5)可以在这里点“Save”把聚类结果保存成ARFF文件。在这个新的ARFF文件中,“instance_number”属性表示某实例的编号,“Cluster”属性表示聚类算法给出的该实例所在的簇。
七、通过实验,要求同学在聚类分析信息获取实验中解决以下问题,并递交完整的实验报告
3. 在Weka中实现K均值聚类的数据预处理中: (1)为什么要将children属性变成分类型?
(2)Weka将自动实施这个分类型到数值型的变换是指将这个分类型的属性变为若干个取值0和1的属性,将这个变化结果截图于实验报告中,并进行解释。
4. 在“Cluster Mode”的“Use training set”,点击“Start”按钮,将在右边“Cluster output”给出的聚类结果以及在左下角“Result list”中产生的结果,请截图,并在实验报告中进行详解。 5. 多尝试几个seed,给出你建立的模型结果的分析情况
6. 分类型的簇中心是它的众数(Mode), 给出在你实验中的一个众数(Mode)数据,并加以解释。
29