数据仓库与数据挖掘实验指导.docx
《数据仓库与数据挖掘实验指导.docx》由会员分享,可在线阅读,更多相关《数据仓库与数据挖掘实验指导.docx(16页珍藏版)》请在冰豆网上搜索。
数据仓库与数据挖掘实验指导
数据仓库与数据挖掘课程实验
本实验是《数据仓库与数据挖掘》课程的验证性实验环节。
课程共计8学时。
·实验目标:
1、掌握建立和配置数据仓库的基本操作技能。
主要包括数据仓库系统的安装。
2、掌握数据仓库中数据的处理技术。
主要包括数据仓库的建模、事务数据的转换、
备份数据的恢复。
3、掌握基于数据仓库的自动数据分析技术的基本操作技能。
包括多维数据分析和
数据挖掘。
4、掌握一种专用数据挖掘软件,用以分析处理文本或电子表格的数据。
实验环境:
lMicrosoftSQLServer2000
lMicrosoftSQLServer2000AnalysisServce
lDBMiner2.0
lMicrosoftSQLServer2000PACK4
lJAVA运行时环境:
JRE5.0
lWEKA3.55
实验项目:
l实验1:
安装数据仓库系统平台1.5学时
l实验2:
构建数据仓库数据环境1.5学时
l实验3:
多维数据分析1.5学时
l实验4:
基于数据仓库的数据挖掘实验2.0学时
l实验5:
数据挖掘平台应用实验1.5学时
实验1:
安装数据仓库系统平台
l实验任务:
1.掌握MicrosoftServer2000数据仓库系统的安装与配置
2.安装实验分析环境:
1安装MicrosoftServer2000analysisService
2安装DBMiner2.0
3安装Java运行时环境JRE5.0
4安装WEKA
l实验准备:
请从黑板或网上获取安装文件所在的网络地址。
并记在下面:
网络资料的地址是:
_____________________________________________
本实验不得超过1.5学时。
l实验指导:
Lab1.1检查并安装MicrosoftServer2000
单元目标:
确保完整正确的数据仓库实验环境
工作步骤:
1.检查你所使用的电脑上是否有MicrosoftServer2000。
如果有,启动并检查MicrosoftServer2000是否安装了ServerPack3以上的补丁文件。
2.如果以上都没问题,则本实验结束。
3.下载相应的系统文件安装。
先安装MicrosoftServer2000,再安装ServerPack3或ServerPack4。
Lab1.2检查并安装数据分析环境
单元目标:
确保安装了相应的数据分析软件
工作步骤:
1.检查你所使用的电脑是否安装了MicrosoftServer2000analysis
Service,DBMiner2.0,JRE5.0,WEKA3.5.5。
如果都已安装且能正常
运行,则本实验结束。
否则进入以下步骤。
2.如果没有安装以上软件。
请按以下次序从网络资料地址上下载软件完成
安装。
完成Lab1.1和Lab1,2后,本实验结束。
实验2:
构建数据仓库数据环境
l实验任务:
本实验主要验证ETL的数据处理过程。
主要实验任务有:
1.构建数据仓库模型,并在数据仓库系统中生成相应的数据表。
2.将事务数据库中的数据转入数据仓库中。
3.还原备份和还原的数据仓库中的数据。
l实验准备:
请从黑板或网上获取数据文件所在的网络地址。
并记在下面:
数据文件的地址是:
_____________________________________________本实验不得超过1.5学时。
本实验将使用MicrosoftSQLserver的示例数据库:
Northwind,这是一个商贸公司的销售数据库。
我们将这个事务型的数据导入到分析型的数据仓库中去。
l实验指导:
Lab2.1用caseStudio2.15建立数据仓库的星型模型
单元目标:
建立Northwind_DW的数据仓库模型。
如下图所示。
并根据该模型生成相应的数据仓库的维表和事实表的结构。
工作步骤:
1.按下图样式建立Northwind_DW的昨型数据模型,请根据原事务数据库中
相应字段的数据类型和宽度,对应地设计相应字段的数据类型和宽度。
2.安装并启动CaseStudio2.15,设计以上模型。
3.运行生成脚本(Generatescript生成相应的SQL代码。
Lab2.2将事务型数据加载到分析数据环境中
单元目标:
根据以上实验单元建立的数据模型,在MicrosoftSQL2000中建立相应的物理数据仓库。
工作步骤:
1.请从教师课件中“数据仓库与数据挖掘”目录下的Lab2008中下载文档
“多维数据分析操作演练.pdf”
2.用Adobereader打开该文档。
3.在数据仓库创建部分,可以使用Lab2.1中的模型进行创建和转化。
4.按照上面所列步骤进行操作。
最终完成事实表和维表的数据转移。
Lab2.3数据仓库中数据的备份与恢复
单元目标:
1.将已生成的数据仓库的数据进行备份。
2.利用备份文件向新的数据库中还原数据仓库的数据。
工作步骤:
1、备份
打开Sqlserver企业管理器,在需要备份的数据库上点鼠标右键,所有任务中选备份数据库。
再从Sqlserver安装目录中的Data目录下,拷贝出要备份的数据库文件*.mdf,*.ldf,并备份这两个文件
2、还原
将要还原的数据库文件*.mdf,*.ldf拷贝到Sqlserver安装目录下的Data目录下。
打开Sqlserver企业管理器,新建一个数据库,在数据库这一项上点鼠标右键,在所有任务中选导入数据库,以拷贝到Data目录下的mdf恢复数据库。
还原过程中,如果有什么异常,请参考“数据仓库与数据挖掘技术\上机\”目录下的“数据仓库实习指导.pdf”中的还原部分的内容。
实验3:
多维数据分析
l实验任务:
本实验主要验证OLAP多维分析的过程。
主要包括完成OLAP数据库的创建,多维数据集的创建。
存储和处理多维数据,浏览多维数据集等实验任务。
l实验准备:
本实验使用的操作参考为Lab2.2中下载的文档,“多维数据分析操作演练.pdf”。
本实验不得超过1.5学时。
l实验指导:
Lab3.1多维数据分析实验
单元目标:
1.掌握MicrosoftanalysisService的中对OALP数据库的操作步骤
2.在使用过程中熟悉和理解相应的概念。
工作步骤:
1.在“多维数据分析操作演练.pdf”中从P85开始进行相应的操作演练。
2.在实验过程中,如果对相应的操作还不是很理解,请在”数据仓库
与数据挖掘技术\上机\”目录下有“Sqlserver数据分析.rar”文档,解
压后,有详细的帮助和演练信息。
实验4:
基于数据仓库的数据挖掘实验
l实验任务:
1.基于MicrosoftSQLserver2000AnalysesService的数据挖掘模型对数据
仓库中的数据进行决策树分析和聚类分析;
2.使用DBMiner2.0对数据仓库中的数据进行聚类、关联分析;
3.使用DBMiner2.0对数据仓库的数据分析进行可视化。
l实验准备:
本实验的实验指导参考资料在网上,请下载参考。
本实验不得超过1.5学时。
l实验指导:
Lab4.1基于MicrosoftSQLserver2000AnalysesService的数据挖掘
单元目标:
掌握MicrosoftSQLserver2000AnalysesService的数据挖掘模型的使用步骤工作步骤:
请在”数据仓库与数据挖掘技术\上机\”目录下有“Sqlserver数据分析.rar”文档,解压后,按下图所指,完成“数据挖掘”的演练。
Lab4.2基于DBMiner2.0的数据挖掘(选做
单元目标:
掌握DBminer2.0对数据仓库中的数据进行可视化分类、聚类、关联分析
由于时间有限,指导教师将进行一些现场的演练指导。
工作步骤:
1.在”数据仓库与数据挖掘技术\Lab2008\”目录下下载相应的操作手册
“DBMinerManual.pdf”文档,阅读第一、二章。
2.对多维数据集进行可视化分析。
(chapter4
3.对多维数据集进行关联分析。
(chapter6
4.对多维数据集进行分类挖掘。
(chapter7
5.对多维数据集进行聚类分析。
(chapter8
实验5:
数据挖掘平台应用实验
l实验任务:
1.熟悉WEKA数据挖掘平台的基本功能。
2.能够对存于文本或电子表格中的数据进行数据挖掘分析
3.本实验为选做,对毕业论文分析数据有利用价值。
l实验准备:
1.下载Java运行时环境JRE1.5。
2.下载WEKA并安装运行
3.在”数据仓库与数据挖掘技术\Lab2008\”目录下下载“WEKA中文使用手册.pdf”,有较详细的使用说明
4.所需要的数据存放在“数据仓库与数据挖掘技术\Lab2008\WEKA_DATA”下。
l实验指导:
Lab5.1用WEKA进行决策树分析
单元目标:
掌握WEKA进行决策树分析的步骤。
工作步骤:
WEKA把分类(Classification和回归(Regression都放在“Classify”选项卡中,这是有原因的。
在这两个任务中,都有一个目标属性(输出变量。
我们希望根据一个样本(WEKA中称作实例的一组特征(输入变量,对目标进行预测。
为了实现这一目的,我们需要有一个训练数据集,这个数据集中每个实例的输入和输出都是已知的。
观察训练集中的实例,可以建立起预测的模型。
有了这个模型,我们就可以新的输出未知的实例进行预测了。
衡量模型的好坏就在于预测的准确程度。
在WEKA中,待预测的目标(输出被称作Class属性,这应该是来自分类任务的“类”。
一般的,若Class属性是分类型时我们的任务才叫分类,Class属性是数值型时我们的任务叫回归。
选择算法
我们使用C4.5决策树算法对bank-data建立起分类模型。
我们来看原来的“bank-data.csv”文件。
“ID”属性肯定是不需要的。
由于C4.5算法可以处理数值型的属性,我们不用像前面用关联规则那样把每个变量都离散化成分类型。
尽管如此,我们还是把“Children”属性转换成分类型的两个值“YES”和“NO”。
另外,我们的训练集仅取原来数据集实例的一半;而从另外一半中抽出若干条作为待预测的实例,它们的“pep”属性都设为缺失值。
经过了这些处理的训练集数据在这里下载;待预测集数据在这里下载。
我们用“Explorer”打开训练集“bank.arff”,观察一下它是不是按照前面的要求处理好了。
切换到“Classify”选项卡,点击“Choose”按钮后可以看到很多分类或者回归的算法分门别类的列在一个树型框里。
3.5版的WEKA中,树型框下方有一个“Filter...”按钮,点击可以根据数据集的
特性过滤掉不合适的算法。
我们数据集的输入属性中有“Binary”型(即只有两个类的分类型和数值型的属性,而Class变量是“Binary”的;于是我们勾选“Binaryattributes”“Numericattributes”和“Binaryclass”。
点“OK”后回到树形图,可以发现一些算法名称变红了,说明它们不能用。
选择“trees”下的“J48”,这就是我们需要的C4.5算法,还好它没有变红。
点击“Choose”右边的文本框,弹出新窗口为该算法设置各种参数。
点“More”查看参数说明,点“Capabilities”是查看算法适用范围。
这里我们把参数保持默认。
现在来看左中的“TestOption”。
我们没有专门设置检验数据集,为了保证生成的模型的准确性而不至于出现过拟合(overfitting的现象,我们有必要采用10折交叉验证(10-foldcrossvalidation来选择和评估模型。
若不明白交叉验证的含义可以Google一下。
建模结果OK,选上“Cross-validation”并在“Folds”框填上“10”。
点“Start”按钮开始让算法生成决策树模型。
很快,用文本表示的一棵决策树,以及对这个决策树的误差分析等等结果出现在右边的“Classifieroutput”中。
同时左下的“Resultslist”出现了一个项目显示刚才的时间和算法名称。
如果换一个模型或者换个参数,重新“Start”一次,则“Resultslist”又会多出一项。
我们看到“J48”算法交叉验证的结果之一为CorrectlyClassifiedInstances20668.6667%也就是说这个模型的准确度只有69%左右。
也许我们需要对原属性进行处理,或者修改算法的参数来提高准确度。
但这里我们不管它,继续用这个模型。
右键点击“Resultslist”刚才出现的那一项,弹出菜单中选择“Visualizetree”,新窗口里可以看到图形模式的决策树。
建议把这个新窗口最大化,然后点右键,选“Fittoscreen”,可以把这个树看清楚些。
看完后截图或者关掉。
这里我们解释一下“ConfusionMatrix”的含义。
===ConfusionMatrix===
ab<--classifiedas
7464|a=YES
30132|b=NO
这个矩阵是说,原本“pep”是“YES”的实例,有74个被正确的预测为“YES”,有64个错误的预测成了“NO”;原本“pep”是“NO”的实例,有30个被错误的预测为“YES”,有132个正确的预测成了“NO”。
74+64+30+132=300是实例总数,而(74+132/300=0.68667正好是正确分类的实例所占比例。
这个矩阵对角线上的数字越大,说明预测得越好。
模型应用
现在我们要用生成的模型对那些待预测的数据集进行预测了,注意待预测数据集和训练用数据集各个属性的设置必须是一致的。
WEKA中并没有直接提供把模型应用到带预测数据集上的方法,我们要采取间接的办法。
“TestOpion”中选择“Suppliedtestset”,并且“Set”成“bank-new.arff”文件。
重新“Start”一次。
注意这次生成的模型没有通过交叉验证来选择,“Classifieroutput”给出的误差分析也没有多少意义。
这也是间接作预测带来的缺陷吧。
现在,右键点击“Resultlist”中刚产生的那一项,选择“Visualizeclassifiererrors”。
我们不去管新窗口中的图有什么含义,点“Save”按钮,把结果保存成“bank-predicted.arff”。
这个ARFF文件中就有我们需要的预测结果。
在“Explorer”的“Preprocess”选项卡中打开这个新文件,可以看到多了两个属
性“Instance_number”和“predictedpep”“Instance_number”是指一个实例。
在原“bank-new.arff”文件中的位置,“predictedpep”就是模型预测的结果。
点“Edit”按钮或者在“ArffViewer”模块中打开可以查看这个数据集的内容。
比如,我们对实例0的pep预测值为“YES”,对实例4的预测值为“NO”使。
用命令行(推荐)虽然使用图形界面查看结果和设置参数很方便,但是最直接最灵活的建模及应用的办法仍是使用命令行。
打开“SimpleCLI”模块,像上面那样使用“J48”算法的命令格式为:
javaweka.classifiers.trees.J48-C0.25-M2-tdirectory-path\bank.arff-ddirectory-path\bank.model其中参数“-C0.25”和“-M2”是和图形界面中所设的一样的。
“-t”后面跟着的是训练数据集的完整路径(包括目录和文件名),“-d”后面跟着的是保存模型的完整路径。
注意!
这里我们可以把模型保存下来。
输入上述命令后,所得到树模型和误差分析会在“SimpleCLI”上方显示,可以复制下来保存在文本文件里。
误差是把模型应用到训练集上给出的。
把这个模型应用到“bank-new.arff”所用命令的格式为:
javaweka.classifiers.trees.J48-p9-ldirectory-path\bank.model-Tdirectory-path\bank-new.arff其中“-p9”说的是模型中的Class属性是第9个(也就是“pep”,)“-l”后面是模型的完整路径,“-T”后面是待预测数据集的完整路径。
输入上述命令后,在“SimpleCLI”上方会有这样一些结果:
0YES0.75?
1NO0.7272727272727273?
2YES0.95?
3YES0.8813559322033898?
4NO0.8421052631578947?
...这里的第一列就是我们提到过的“Instance_number”,第二列就是刚才的“predictedpep”,第四列则是“bank-new.arff”中原来的“pep”值(这里都是“?
”缺失值)。
第三列对预测结果的置信度(confidence)。
比如说对于实例0,我们有75%的把握说它的“pep”的值会是“YES”,对实例4我们有84.2%的把握说它的“pep”值会是“NO”。
我们看到,使用命令行至少有两个好处。
一个是可以把模型保存下来,这样有新的待预测数据出现时,不用每次重新建模,直接应用保存好的模型即可。
另一个是对预测结果给出了置信度,我们可以有选择的采纳预测结果,例如,只考虑那些置信度在85%以上的结果。
可惜,命令行仍不能保存交叉验证等方式选择过的模型,也不能将它们应用到待预测数据上。
要实现这一目的,须用到“KnowledgeFlow”模块的“PredictionAppender”。
Lab5.2用WEKA进行关联分析单元目标:
掌握WEKA进行关联分析的步骤。
工作步骤:
目前,WEKA的关联规则分析功能仅能用来作示范,不适合用来挖掘大型数据集。
我们打算对前面的“bank-data”数据作关联规则的分析。
用“Explorer”打开“bank-data-final.arff”后,切换到“Associate”选项卡。
默认关联规则分析是用Apriori算法,我们就用这个算法,但是点“Choose”右边的文本框修改默认的参数,弹出的窗口中点“More”可以看到各参数的说明。
背景知识首先我们来温习一下Apriori的有关知识。
对于一条关联规则L->R,我们常用支持度(Support)和置信度(Confidence)来衡量它的重要性。
规则的支
持度是用来估计在一个购物篮中同时观察到L和R的概率P(L,R,而规则的置信度是估计购物栏中出现了L时也出会现R的条件概率P(R|L。
关联规则的目标一般是产生支持度和置信度都较高的规则。
有几个类似的度量代替置信度来衡量规则的关联程度,它们分别是Lift(提升度?
)P(L,R/(P(LP(RLift=1时表示L和R独立。
这个数越大,越表明L和:
R存在在一个购物篮中不是偶然现象。
Leverage(不知道怎么翻译):
P(L,R-P(LP(R它和Lift的含义差不多。
Leverage=0时L和R独立,Leverage越大L和R的关系越密切。
Conviction(更不知道译了)P(LP(!
R/P(L,!
R(!
R:
表示R没有发生)Conviction也是用来衡量L和R的独立性。
从它和lift的关系(对R取反,代入Lift公式后求倒数)可以看出,我们也希望这个值越大越好。
值得注意的是,用Lift和Leverage作标准时,L和R是对称的,Confidence和Conviction则不然。
参数设置现在我们计划挖掘出支持度在10%到100%之间,并且lift值超过1.5且lift值排在前100位的那些关联规则。
我们把“lowerBoundMinSupport”和“upperBoundMinSupport”分别设为0.1和1,“metricType”设为lift,“minMetric”设为1.5,“numRules”设为100。
其他选项保持默认即可。
“OK”之后在“Explorer”中点击“Start”开始运行算法,在右边窗口显示数据集摘要和挖掘结果。
下面是挖掘出来的lift排前5的规则。
Bestrulesfound:
1.age=52_maxsave_act=YEScurrent_act=YES113==>income=43759_max61conf:
(0.54(4.05>lev:
(0.0[45]conv:
(1.852.income=43759_max80==>age=52_maxsave_act=YEScurrent_act=YES61conf:
(0.76(4.05>lev:
(0.0[45]conv:
(3.253.income=43759_maxcurrent_act=YES63==>age=52_maxsave_act=YES61conf:
(0.97(3.85>lev:
(0.0[45]conv:
(15.724.age=52_maxsave_act=YES151==>income=43759_maxcurrent_act=YES61conf:
(0.4(3.85>lev:
(0.0[45]conv:
(1.495.age=52_maxsave_act=YES151==>income=43759_max76conf:
(0.5(3.77>lev:
(0.09[55]conv:
(1.72对于挖掘出的每条规则,WEKA列出了它们关联程度的四项指标。
命令行方式我们也可以利用命令行来完成挖掘任务,在“SimlpeCLI”模块中输入如下格式的命令:
javaweka.associations.Apriorioptions-tdirectory-path\bank-data-final.arff即可完成Apriori算法。
注意,“-t”参数后的文件路径中不能含有空格。
在前面我们使用的option为-N100-T1-C1.5-D0.05-U1.0-M0.1-S-1.0命令行中使用这些参数得到的结果和前面利用GUI得到的一样。
我们还可以加上I”“-参数,得到不同项数的频繁项集。
我用的命令如下:
javaweka.associations.Apriori-N100-T1-C1.5-D0.05-U1.0-M0.1-S-1.0-I-td:
\weka\bank-data-final.arff挖掘结果在上方显示。
Lab5.3用WEKA进行聚类分析单元目