数据仓库与数据挖掘实验报告-焦永赞.doc

上传人:jian****018 文档编号:9156861 上传时间:2020-04-03 格式:DOC 页数:34 大小:1.79MB
返回 下载 相关 举报
数据仓库与数据挖掘实验报告-焦永赞.doc_第1页
第1页 / 共34页
数据仓库与数据挖掘实验报告-焦永赞.doc_第2页
第2页 / 共34页
数据仓库与数据挖掘实验报告-焦永赞.doc_第3页
第3页 / 共34页
点击查看更多>>
资源描述
数据仓库与数据挖掘实验报告册2013- 2014学年 第 一 学期班 级: T1153-8 学 号: 20110530816 姓 名: 焦 永 赞 授课教师: 杨丽华 实验教师: 杨丽华 实验学时: 16 实验组号: 1 信息管理系目录实验一 Microsoft SQL Server Analysis Services的使用3实验二 使用WEKA进行分类与预测15实验三 使用WEKA进行关联规则与聚类分析22实验四 数据挖掘算法的程序实现28实验一 Microsoft SQL Server Analysis Services的使用实验类型:验证性 实验学时:4实验目的:学习并掌握Analysis Services的操作,加深理解数据仓库中涉及的一些概念,如多维数据集,事实表,维表,星型模型,雪花模型,联机分析处理等。实验内容:在实验之前,先通读自学SQL SERVER自带的Analysis Manager概念与教程。按照自学教程的步骤,完成对FoodMart数据源的联机分析。建立、编辑多维数据集,进行OLAP操作,看懂OLAP的分析数据。实验步骤(写主要步骤,可以打印):1、 启动联机分析管理器:开始-程序Microsoft SQL ServerAnalysis Manager。2、 按照 Analysis Service的自学教程完成对FoodMart数据源的联机分析。3、 在开始-设置-控制面板-管理工具-数据源(ODBC),数据源管理器中设置和源数据的连接,“数据源名”为你的班级+学号+姓名,如T3730101张雨。(1)打开管理工具中的数据源:(2)选择系统DNS(3)建立名为“.”的数据源(4)添加,选择“Microsoft Access 驱动程序 (*.mdb)”,然后单击“完成”按钮(5)选择数据库(6)在“ODBC Microsoft Access 安装”对话框中单击“确定”按钮。 在“ODBC 数据源管理器”对话框中单击“确定”按钮。4、在开始-设置-控制面板-管理工具-服务-MSSQLServerOLAPService, 启动该项服务。在Analysis Manager中,单击服务器名称,即可建立与 Analysis Servers 的连接;否则,在Analysis Servers 上单击右键,注册服务器,在服务器名称中输入本地计算机的名字,如pc56。本地计算机的名字可右击:我的电脑,选择属性,网络标志,里面有本地计算机的名字。建立新的数据库,数据库名与数据源名相同,如T3730101张雨。在你所建立的数据库中,单击“新数据源”,和早期在 ODBC 数据源管理器中建立的数据源连接。(1)启动MSSQLServerOLAPService服务(2)注册服务器(3)建立名为“”的新数据库(4)建立数据源5、假设你是 FoodMart Corporation 的数据库管理员。FoodMart 是一家大型的连锁店,在美国、墨西哥和加拿大有销售业务。市场部想要按产品和顾客分析 1998 年进行的所有销售业务数据。要求建立Sales多维数据集,多维数据集是由维度和事实定义的。其维度有“Time”维度、“Product”维度、“Customer”维度、“Store”维度和“Promotion” 维度,事实表为sales_fact_1998,事实表中的度量为:store_sales、store_cost、unit_sales。理解每个维度的级别。(1) “Time”维度(2)Product维度(3)“Customer”维度(4)“Store”维度(5)“Promotion” 维度6、可以使用多维数据集编辑器对现有多维数据集进行更改。在使用或浏览多维数据集中的数据之前,要求设计多维数据集中的数据和聚合的存储选项。即设计好 Sales 多维数据集的结构之后,需要选择要使用的存储模式并指定要存储的预先计算好的值的数量。完成此项操作之后,需要用数据填充多维数据集。这里选择 MOLAP 作为存储模式,创建 Sales 多维数据集的聚合设计,然后处理该多维数据集。处理 Sales 多维数据集时将从 ODBC 源中装载数据并按照聚合设计中的定义计算汇总值。7、使用多维数据集浏览器,可以用不同的方式查看数据:可以筛选出可见的维度数据量,可以深化以看到数据的细节,还可以浅化以看到较为概括的数据。这里可以使用多维数据集浏览器对 Sales 数据进行切片和切块操作。要求理解OLAP操作下数据的含义,从而可以分析数据。8、人力资源部想按商店来分析雇员的工资。本节将建立一个 HR(人力资源)多维数据集,以进行雇员工资分析。将把 Employee(雇员)维度创建为父子维度。然后使用该维度以及常规维度来生成 HR 多维数据集。其中,事实数据表为salary(工资), 维度为Employee(雇员)、Store(商店)、Time(时间)。了解如何建立父子维度。9、建立计算成员和成员属性。在Sales 多维数据集中建立“Average price” 计算成员,思考建立该计算成员的目的。市场部希望将 Sales 多维数据集分析功能扩展到根据客户的下列特征分析客户销售数据:性别、婚姻状况、教育程度、年收入、在家子女数和会员卡。需要向 Customer 维度添加以下六个成员属性:Gender(性别)、Marital status(婚姻状况)、Education(教育程度)、Yearly Income(年收入)、Num Children At Home(在家子女数)和 Member Card(会员卡)。这些成员属性将限制 Customer 维度中的每个成员。理解什么是计算成员和成员属性,为什么要建立?10、已经为客户维度添加了六个成员属性,可以创建一个带有 Yearly Income(年收入)成员属性的虚拟维度,然后将这个新创建的维度添加到 Sales 多维数据集中。使用虚拟维度,可以基于多维数据集中的维度成员的成员属性对多维数据集数据进行分析。 其优点是不占用磁盘空间或处理时间。(1)为客户维度添加属性 (2)创建Yearly Income虚拟维度11、理解多维数据集角色和数据库角色的联系和区别、建立角色的目的。(1)在sales中创建marketing角色(2)在HR中创建HR角色12、查看销售多维数据集的元数据和维度的元数据,加深对元数据概念和分类的理解。(1)查看销售元数据(2)查看Customer元数据思考题(要求手写)给出一个数据仓库成功应用的案例,包括所解决的问题,功能等。实验小结(要求手写):实验中遇到的问题及解决办法、心得、体会等等.实验二 使用WEKA进行分类与预测实验类型:综合性 实验学时:4实验目的:掌握数据挖掘平台WEKA的使用。综合运用数据预处理、分类与预测的挖掘算法、结果的解释等知识进行数据挖掘。从而加深理解课程中的相关知识点。实验内容:阅读并理解WEKA的相关中英文资料,熟悉数据挖掘平台WEKA,针对实际数据,能够使用WEKA进行数据的预处理,能选择合适的分类与预测算法对数据进行分析,并能解释分析结果。实验步骤(可以打印):1、 在开始-程序-启动WEKA,进入Explorer界面,熟悉WEKA的界面功能。2、 选择数据集(实验中的数据可以从网络获取),如泰坦尼克号数据集,将要处理的数据集转换成WEKA能处理的格式,如.ARFF格式。思考:如何将其它格式的数据文件(如.XLS)转换为.ARFF格式?3、 根据选择的数据挖掘算法,如果有必要,在Weka Explorer界面,Preprocess选项中,进行相应的数据预处理。要求:熟悉Preprocess界面中各个功能选项的含义,理解数据的特征。思考:在filter中,supervised和unsupervised的区别?4、 在Weka Explorer界面,单击Visualize选项,进入WEKA 的可视化页面,可以对当前的关系作二维散点图式的可视化浏览。要求: 熟悉Visualize界面中各个功能选项的含义,理解可视化图形的意义。5、 选择相应的分类与预测挖掘算法对数据集进行分析,进行算法参数的具体设置。如利用WEKA-Classifier-trees-J48 决策树算法,对泰坦尼克号数据集进行分析;如利用回归模型对连续数值进行预测。要求:对你选择的分类和预测算法思想分别进行介绍,熟悉classify界面的内容,对classifier中的参数含义分别进行介绍。思考:classifier-trees-J48算法与classifier-trees-id3算法的区别与联系。ID3算法:J48算法:6、 对分析所获得的结果进行解释。如,根据决策树和分类规则尝试讨论泰坦尼克号幸存者的特征。理解评估分类和预测优劣的一些准则。思考题(要求手写)给出数据挖掘中分类与预测成功应用的案例,并简要介绍。实验小结(要求手写):实验中遇到的问题及解决办法、心得、体会等等.实验三 使用WEKA进行关联规则与聚类分析实验类型:综合性 实验学时:4实验目的:掌握数据挖掘平台WEKA的使用。综合运用数据预处理、关联规则与聚类的挖掘算法、结果的解释等知识进行数据挖掘。从而加深理解课程中的相关知识点。实验内容:阅读并理解WEKA的相关中英文资料,熟悉数据挖掘平台WEKA,针对实际数据,能够使用WEKA进行数据的预处理,了解属性选择,能选择合适的关联规则与聚类算法对数据进行分析,并能解释分析结果。实验步骤(可以打印):1、 在开始-程序-启动WEKA,进入Explorer界面,熟悉WEKA的界面功能。2、 选择数据集(实验中的数据可以从网络获取),将要处理的数据集转换成WEKA能处理的格式,如 .ARFF格式。根据选择的数据挖掘算法,如果有必要,在Weka Explorer界面,Preprocess选项中,进行相应的数据预处理。3、 在Weka Explorer界面,单击Select attributes选项,进入WEKA 的属性选择页面。要求: 了解该界面中主要功能选项的含义,理解该界面的功能。4、 在Weka Explorer界面,单击Associate选项,进入WEKA 的关联规则页面。选择一个关联规则算法对数据集进行分析,进行算法参数的具体设置。要求:对你选择的关联规则算法思想进行介绍,熟悉Associate界面的内容,对Associate中的参数含义分别进行介绍。理解用来衡量规则的关联程度的几个度量指标。理解并解释分析所获得的结果。5、 在Weka Explorer界面,单击Cluster选项,进入WEKA 的聚类页面。选择一个聚类算法(如K均值)对数据集进行分析,进行算法参数的具体设置。要求:对你选择的聚类算法思想进行介绍,熟悉Cluster界面的内容,对Cluster中的参数含义进行介绍。理解并解释分析所获得的结果。思考题(要求手写)给出数据挖掘中关联规则与聚类成功应用的一些案例,并简要介绍。实验小结(要求手写):实验中遇到的问题及解决办法、心得、体会等等.实验四 数据挖掘算法的程序实现实验类型:设计性 实验学时:4实验目的:运用数据挖掘、程序设计等相关知识,选择一个数据挖掘的常用算法进行程序设计实现。加深对数据挖掘算法基本原理、详细执行过程和具体应用情况的理解。实验内容:采用任何一种自己熟悉的编程语言,完成算法的程序设计,并在每个程序设计语句后面进行详细的注释。能够运用实现的算法来解决某个具体的问题,得到并解释程序运行的结果。推荐的算法: 1 关联规则:Apriori算法2 分类与预测:ID3, C4.5, KNN, BP,3 聚类:k-means实验步骤(可以打印):1. 提前预习,选择算法,理解原理。2. 针对具体问题,选择熟悉的编程平台,进行算法的程序实现,尽量在每个程序语句后面进行详细注释。C+程序源代码:/* 这个程序是数据挖掘中的Apriori算法*/#include #include#define D 9 /*D数事务的个数*/#define MinSupCount 2 /*最小事务支持度数*/void main()/*这里的a,b,c,d,e 分别代表着书上数据挖掘那章的I1,I2,I3,I4,I5 */ char a1010=a,b,e,b,d,b,c,a,b,d,a,c,b,c,a,c,a,b,c,e,a,b,c; char b20,d100,t,b210010,b2110010; int i,j,k,x=0,flag=1,c20=0,x1=0,i1=0,j1,counter=0,c1100=0,flag1=1,j2,u=0,c2100=0,n20,v=1;int count100,temp; for(i=0;iD;i+) for(j=0;aij!=0;j+) /*这个循环是用来判断之前保存的是否和aij一样,不一样就保存,一样就不保存*/ for(k=0;kx;k+) if(bk!=aij) ; else flag=0;break; /*这个if是用来判断是否相等*/ if(flag=1) bx=aij; x+; else flag=1;/*这个不保存,那就跳到下一个数*/ /*计算筛选出的元素的支持度计数*/ for(i=0;iD;i+) for(j=0;aij!=0;j+) for(k=0;kx;k+)/*这个x是上面b数组中元素个数,用b数组和aij数组中的每一行和每一列进行比较,用来记录b数组每一个元素的支持度计数*/ if(aij=bk) ck+;break; /*对选出的项集进行筛选,选出支持度计数大于2的,并且保存到dx1数组中*/ for(k=0;k=MinSupCount) dx1=bk;countx1=ck; x1+; /*对选出的项集中的元素进行排序*/ for(i=0;ix1-1;i+) for(j=0;jdj+1) t=dj;dj=dj+1;dj+1=t;temp=countj;countj=countj+1;countj+1=temp; /*打印出L1*/ printf(L1 elements are:n); for(i=0;ix1;i+) printf(%c = %d ,di,counti);if(0=(i+1)%3) printf(n); printf(b n);/*计算每一行的元素个数,并且保存到n数组中*/ for(i=0;iD;i+) for(j=0;aij!=0;j+); ni=j; /*对a数组的每一行进行排序*/ for(i=0;iD;i+) for(j=0;jni-1;j+) for(k=0;kaik+1) t=aik; aik=aik+1; aik+1=t; /*把L1中的每一个元素都放在b2i0中*/ j1=x1; for(i=0;ij1;i+) b2i0=di; /*把L1中的元素进行组合,K=2开始,表示x1个元素选K个元素的组合*/ for(k=2;b200!=0;k+) /*u是用来计数组合总数的*/ u=0;v=1;/*v 是用来在进行输出各种组合的标识数 v=1 说明正在进行输出*/ for(i=0;i100;i+) c2i=0; for(i=0;ij1;i+) for(i1=i+1;i1j1;i1+) for(j=0;jk-2;j+) if(b2ij!=b2i1j) flag1=0;break; /*进行组合的部分*/ if(flag1=1&b2ik-2!=b2i1k-2) for(j2=0;j2k-1;j2+) b21uj2=b2ij2; b21uk-1=b2i1k-2; u+; flag1=1; counter=0; for(i=0;iD;i+)/*a数组有5行元素*/ for(i1=0;i1u;i1+)/*U 代表x1个元素选K个元素的所有组合总数*/ for(j1=0;j1k;j1+)/*K 代表一个组合中的元素个数*/ for(j=0;aij!=0;j+)/*逐个比较每一行的元素*/ if(aij=b21i1j1) counter+; if(counter=k) c2i1+; /*把每种组合数记录在c2数组中*/counter=0; j1=0;temp=0;/*这里的temp 是用来分行*/*对u种情况进行选择,选出支持度计数大于2的*/ for(i=0;i=MinSupCount) if(v=1) printf(L%d elements are:n,k); v=0; printf(); for(j=0;jk;j+)/*输出每种组合k 个元素*/ b2j1j=b21ij; printf(%c,b2j1j); j1+; printf(b); printf( = %d ,c2i);if(0=(temp+1)%3) printf(n);temp+; b2j10=0; if(b200!=0) printf(b n); 程序运行结果:3. 自己选择某个数据集,应用实现的算法得到结果并解释。实验小结(要求手写):实验中遇到的问题及解决办法、心得、体会等等.
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!