1数据仓库与数据挖掘实验指导书东北石油大学计算机与信息技术系王浩畅2实验一Weka实验环境初探一、实验名称:Weka实验环境初探二、实验目的:通过一个已有的数据集,在weka环境下,测试常用数据挖掘算法,熟悉Weka环境。三、实验要求1.熟悉weka的应用环境。2.了解数据挖掘常用算法。3.在weka环境下,测试常用数据挖掘算法。四、实验平台新西兰怀卡托大学研制的Weka系统五、实验数据Weka安装目录下data文件夹中的数据集weather.nominal.arff,weather.arff六、实验方法和步骤1、首先,选择数据集weather.nominal.arff,操作步骤为点击Explorer,进入主界面,点击左上角的“Openfile...”按钮,选择数据集weather.nominal.arff文件,该文件中存储着表格中的数据,点击区域2中的“Edit”可以看到相应的数据:3选择上端的Associate选项页,即数据挖掘中的关联规则挖掘选项,此处要做的是从上述数据集中寻找关联规则。点击后进入如下界面:2、现在打开weather.arff,数据集中的类别换成数字。4选择上端的Associate选项页,但是在Associate选项卡中Start按钮为灰色的,也就是说这个时候无法使用Apriori算法进行规则的挖掘,原因在于Apriori算法不能应用于连续型的数值类型。所以现在需要对数值进行离散化,就是类似于将20-30℃划分为“热”,0-10℃定义为“冷”,这样经过对数值型属性的离散化,就可以应用Apriori算法了。Weka提供了良好的数据预处理方法。第一步:选择要预处理的属性temperrature5从中可以看出,对于“温度”这一项,一共有12条不同的内容,最小值为64(单位:华氏摄氏度,下同),最大值为85,选择过滤器“choose”按钮,或者在同行的空白处点击一下,即可弹出过滤器选择框,逐级找到“Weka.filters.unsupervised.attribute.Discretize”,点击;若无法关闭这个树,在树之外的地方点击“Explorer”面板即可。现在“Choose”旁边的文本框应该显示“Discretize-B10-M-0.1-Rfirst-last”。点击这个文本框会弹出新窗口以修改离散化的参数。因为这里不打算对所有的属性离散化,只是针对对第2个和第3个属性,故把attributeIndices右边改成“2,3”。计划把这两个属性都分成3段,于是把“bins”改成“3”。其它文本框里的值不用更改,关于这些参数的意义可以点击“More”查看。点“OK”回到“Explorer”,可以看到“temperature”和“humidity”已经被离散化成为分类型的属性。若想放弃离散化可以点“Undo”。可以看到temperature属性信息如下显示:6Humidity属性变成如下样式:3、在Classify,Cluster,Associate选项中分别尝试不同算法。七、通过实验,掌握Weka的使用7实验二基于关联规则的信息获取一、实验名称:基于关联规则的信息获取二、实验目的:通过一个已有的训练数据集,观察训练集中的实例,进行关联信息获取,更好地理解和掌握关联规则算法的基本原理,建立相应的预测模型,然后对新的未知实例进行预测,预测的准确程度来衡量所建立模型的好坏。三、实验要求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界面如下:界面中有四个选择SimpleCLC,Explorer,Experimenter,KnowledgeFlow。我们选择Explorer进行实验。文件格式转化为ARFF的方式。2、选择Explorer选项,选择Openfile打开bank-data.arff数据,打开可以看见数据中的属性,选择属性从右边可以看到它的取值范围1)CSV换成ARFF格式将CSV转换为ARFF最迅捷的办法是使用WEKA所带的命令行工具。运行WEKA的主程序,出现GUI后可以点击下方按钮进入相应的模块。我们点击进入“SimpleCLI”模块提供的命令行功能。在新窗口的最下方(上方是不能写字的)输入框写上8javaweka.core.converters.CSVLoaderfilename.csvfilename.arff即可完成转换。在WEKA3.5中提供了一个“ArffViewer”模块,我们可以用它打开一个CSV文件将进行浏览,然后另存为ARFF文件。进入“Explorer”模块,从上方的按钮中打开CSV文件然后另存为ARFF文件亦可。3、进行数据过滤,选择Filter中的Discretize方法,点击Apply,先对ARFF文件进行离散化:用UltraEdit(或者其它文本编辑器)对其进行编辑:@attributechildrennumeric改为:@attributechildren{0,1,2,3}然后用discretize算法对age和income离散化,并删掉id项因为它对关联规则分析无影响,保存文件。4、选择Associate项中的Apriori算法分析进行关联信息获取,并进行参数设置。七、通过实验,要求同学在关联规则信息获取实验中解决以下问题,并递交完整的实验报告1.对于非xls格式的数据如何转换成ARFF数据类型?请给出你了解到的几种数据类型到ARFF的转换方式?2.在算法出来的lift排前1的规则中,如:1.age=52_maxsave_act=YEScurrent_act=YES113==income=43759_max61conf:(0.54)lift:(4.05)lev:(0.08)[45]conv:(1.85)请说明其中113、61、conf:(0.54)都表示什么含义?9实验三基于NaïveBayes的信息获取一、实验名称:基于NaïveBayes的信息获取二、实验目的:通过一个已有的训练数据集,观察训练集中的实例,,建立Bayes网络的预测模型,更好地理解和掌握Bayes算法的基本原理,建立相应的预测模型,然后对新的未知实例进行预测,预测的准确程度来衡量所建立模型的好坏。三、实验要求1、熟悉Weka平台2、掌握NaïveBayes算法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条数据作为训10练数据集,并保存为文件。(5)从后300条数据里抽取50条数据作为测试数据集,它们的“pep”属性都设为缺失值,并保存为文件。2、训练过程(1)用“Explorer”打开训练集,观察一下它是不是按照前面的要求处理好了。(2)切换到“Classify”选项卡。(3)点击“Choose”按钮后可以看到很多分类或者回归的算法分门别类的列在一个树型框里。树型框下方有一个“Filter...”按钮,点击可以根据数据集的特性过滤掉不合适的算法。我们数据集的输入属性中有“Binary”型(即只有两个类的分类型)和数值型的属性,而Class变量是“Binary”的;于是我们勾选“Binaryattributes”“Numericattributes”和“Binaryclass”。(4)点“OK”后回到树形图,可以发现一些算法名称变红了,说明它们不能选用。(5)点击“Choose”右边的文本框,弹出新窗口为该算法设置各种参数。点“More”查看参数说明,点“Capabilities”是查看算法适用范围。这里我们把参数保持默认。(6)看左中的“TestOption”。我们没有专门设置检验数据集,为了保证生成的模型的准确性而不至于出现过拟合(overfitting)的现象,我们有必要采用10折交叉验证(10-foldcrossvalidation)来选择和评估模型,选上“Cross-validation”并在“Folds”框填上“10”。(7)点“Start”按钮开始让算法生成Bayes模型。这个模型的误差分析等等结果将出现在右边的“Classifieroutput”中。同时左下的“Resultslist”出现了一个项目显示刚才的时间和算法名称。(8)右键点击“Resultslist”刚才出现的那一项,弹出菜单中选择“Visualizetree”,可以看到可视化结果。3、测试过程(1)注意待预测数据集和训练用数据集各个属性的设置必须是一致的。(2)在“TestOpion”中选择“Suppliedtestset”,并且“Set”成要应用模型的数据集,这里是“bank-new.arff”文件。11(3)右键点击“Resultlist”中刚产生的那一项,选择“Re-evaluatemodeloncurrenttestset”。右边显示结果的区域中会增加一些内容,告诉你该模型应用在这个数据集上表现将如何。我们的Class属性都是些缺失值,那这些内容是无意义的,我们关注的是模型在新数据集上的预测值。(4)点击右键菜单中的“Visualizeclassifiererrors”,将弹出一个新窗口显示一些有关预测误差的散点,点击这个新窗口中的“Save”按钮,保存一个Arff文件。(5)打开这个文件可以看到在倒数第二个位置多了一个属性(predictedpep),这个属性上的值就是模型对每个实例的预测值,点“Edit”按钮可以查看这个数据集的内容。七、通过实验,要求同学在贝叶斯信息获取实验中解决以下问题,并递交完整的实验报告1、在数据预处理中,通过转换与否的实验比较,判断是否一定要把“Children”属性转换成分类型的两个值“YES”“NO”。2、在算法选择时,点击“Choose”按钮后可以看到哪些分类的算法分门别类的列在一个树型框里?将些数据截图,在实验报告中进行详解。3、点击“Choose”右边的文本框,弹出新窗口为该算法设置各种参数。点“More”查看参数说明,点“Capabilities”查看算法适用范围。请在实验报告中详解的参数设置情况。4、请介绍你建立好的模型以及对该模型的误差分析等结果,如:出现在“Classifieroutput”中的模型准确度等,将这些数据截图,在实验报告中进行详解。5、如果你的模型准确度不高,你是怎样通过修改算法的参数来提高准确度?12实验四基于决策树的分类学习方法一、实验名称:基于决策树的分类学习方法二、实验目的:通过一个已有的训练数据集,观察训练集中的实例,建立基于决策树的预测模型,更好地理解和掌握决策树算法的基本原理,建立相应