数据挖掘文档精编版.docx

上传人:b****1 文档编号:14304666 上传时间:2023-06-22 格式:DOCX 页数:16 大小:78.76KB
下载 相关 举报
数据挖掘文档精编版.docx_第1页
第1页 / 共16页
数据挖掘文档精编版.docx_第2页
第2页 / 共16页
数据挖掘文档精编版.docx_第3页
第3页 / 共16页
数据挖掘文档精编版.docx_第4页
第4页 / 共16页
数据挖掘文档精编版.docx_第5页
第5页 / 共16页
数据挖掘文档精编版.docx_第6页
第6页 / 共16页
数据挖掘文档精编版.docx_第7页
第7页 / 共16页
数据挖掘文档精编版.docx_第8页
第8页 / 共16页
数据挖掘文档精编版.docx_第9页
第9页 / 共16页
数据挖掘文档精编版.docx_第10页
第10页 / 共16页
数据挖掘文档精编版.docx_第11页
第11页 / 共16页
数据挖掘文档精编版.docx_第12页
第12页 / 共16页
数据挖掘文档精编版.docx_第13页
第13页 / 共16页
数据挖掘文档精编版.docx_第14页
第14页 / 共16页
数据挖掘文档精编版.docx_第15页
第15页 / 共16页
数据挖掘文档精编版.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据挖掘文档精编版.docx

《数据挖掘文档精编版.docx》由会员分享,可在线阅读,更多相关《数据挖掘文档精编版.docx(16页珍藏版)》请在冰点文库上搜索。

数据挖掘文档精编版.docx

数据挖掘文档精编版

校本课程教材

智慧树《管理学》答案

文成公主进藏教学实录

拾贝壳阅读答案

欧洲西部教学反思

教学过程中的建议

欧洲西部教学反思

数学打电话教学反思

教学资源网站

教学过程中的建议长沙学院

 

数据挖掘课程设计说明书

题目基于FP-tree的AdventureWork的产品销售分析

系(部)信息与计算科学系

专业(班级)10级信科2班

姓名胡娟于瑶

学号20100322182010032230

指导教师陈治平谭义红胡赛

起止日期2013/5/17—2013/5/27

长沙学院

数据挖掘课程设计任务书

 

专业信息与计算科学

班级10级1、2班

指导老师陈治平谭义红胡赛

任务书发出时间2013-5-5

 

信息与计算科学系

2013年5月5日

 

课程设计任务书

课程

数据挖掘课程设计

题目

基于FP-tree的AdventureWorks产品销售分析

序号

1

基于AdventureWorks实例数据库,利用数据挖掘算法(关联规则分析)进行数据分析,要求满足以下分析需求。

1.根据关联规则(FP-tree)算法确定设计任务

2.确定与设计任务相关联的数据来源;

3.实现所选择的数据挖掘算法;

4.利用熟习的开发工具实现与数据库的连接以及数据挖掘算法的应用;

5.获取数据挖掘分析结果,并对结果进行分析与评价(关联规则方法则分析得到的关联规则并进行解析);

基本要求

1.按需求完成详细的设计;

2.按设计方案选择相关数据表以及各表的字段,表之间的关系;

3.有详细的数据准备方案;

4.完成相应的算法实现;

5.与数据库的连接;

6.能进行简单数据结果的应用分析。

高级要求

可获取较多的数据信息、能设计开发一个通用性平台,并针对应用结果进行分析。

提前两周:

分组、选题;

第12周:

明确需求分析、组内分工;

第12周五:

与指导老师讨论,确定需求、分工,并开始设计;

第12周五~第13周六:

代码编写、算法设计、数据分析;

第14周一:

完成设计说明书,答辩;

第15周前:

针对答辩意见修改设计说明书,打印、上交。

指导教师签字陈治平谭义红胡赛

2013年5月10日

教研室审定意见

同意实施

签字

2013年5月10日

 

长沙学院课程设计鉴定表

姓名

胡娟

学号

2010032218

专业

信息与计算科学

班级

10信二

设计题目

基于FP-tree的AdventureWorks产品销售分析

指导教师

陈志平

指导教师意见:

 

评定等级:

教师签名:

日期:

答辩小组意见:

 

评定等级:

     答辩小组长签名:

     日期:

    

教研室意见:

 

教研室主任签名:

日期:

 

系(部)意见:

 

系主任签名:

        日期:

     

说明

课程设计成绩分“优秀”、“良好”、“中等”、“及格”、“不及格”五类;

长沙学院课程设计鉴定表

姓名

于瑶

学号

2010032230

专业

信息与计算科学

班级

10信二

设计题目

基于FP-tree的AdventureWorks产品销售分析

指导教师

陈志平

指导教师意见:

 

评定等级:

教师签名:

日期:

答辩小组意见:

 

评定等级:

     答辩小组长签名:

     日期:

    

教研室意见:

 

教研室主任签名:

日期:

 

系(部)意见:

 

系主任签名:

        日期:

     

说明

课程设计成绩分“优秀”、“良好”、“中等”、“及格”、“不及格”五类;

 

 

第一章系统需求

企业的产品销售受经济增长、居民收入等多种因素的影响和制约,决定了市场是一个动态的、变化的市场。

面对瞬息万变的市场,有许多问题需要企业的生产经营者去调查、分析、研究,比如:

商品的销售业务收入和赢利的完成情况及存在的问题;如何策划才能打动消费者;潜在市场的分析和目标市场的判断;如何制定切实可行的经营策略和措施?

怎样寻找和培育新的经济增长点?

如何做到市场营销策略的创新?

如何为大客户提供更好的服务?

销售服务水平怎样?

如何开发适应顾客需求的产品并控制、降低生产成本?

等等。

这一系列问题与企业的生存和发展密不可分,要很好地解决这些问题,离不开企业的销售分析。

在当今激烈的竞争和复杂的动态市场环境下,正确及时的决策是企业生存和发展的重要环节。

各式业务系统如ERP在企业中应用,企业的数据越来越多,如何把业务数据迅速转化成为对市场、对运营状况的认知,从而辅助企业决策,不断优化决策管理流程,提升对市场变化的响应能力,已经成为销售部门迫切需要解决的问题。

商品的销售问题也与消费者的消费习惯息息相关,研究消费者的消费习惯以及产品之间的关联规则能改善企业的销售模式,增加企业的盈利收入,为决策者提供一个比较可靠的可选方案。

本分析采用的FP-tree算法是一种基于模式增长的频繁模式挖掘算法,避免了大量候选项集的产生,只需要两次扫描数据库。

效率比Apriori算法快一个数量级。

 

第二章数据库分析

此次的分析数据来自于数据库AdventureWorks中的表Sales.SalesOrderDetail,表的数据字典如下所示:

用户销售Sales.SalesOrderDetail表

属性名

类型

空值

说明

SalesOrderID

Int

Notnull

订单流水号

SalesOrderDetailID

Int

Notnull

订单序列号

CarrierTrackingNumber

Nvarchar(25)

Null

承运人号码

OrderQty

Smallint

Notnull

订单数量

ProductID

Int

Notnull

产品号

SpecialOfferID

Int

Notnull

优惠ID号

UnitPrice

Money

Notnull

商品总价

UnitPriceDiscount

Money

Notnull

折扣

LineTotal

Numeric

Notnull

消费总额

rowguid

Uniqueidentifier

Notnull

商品条形码

ModifiedDate

Datetime

Notnull

售出日期

由于本次分析是要考虑消费者购买某两种商品之间的联系,需要挖掘出商品之间的关联规则,则需要分析的数据只与数据表中的SalesOrderID和ProductID两个属性有关。

则将Sales.SalesOrderDetail表中需要分析的数据抽取出来,作为一个独立的表Datas,表Datas的数据字典如下表所示:

销售情况Datas表

属性名

类型

空值

说明

SalesOrderID

Int

Notnull

订单流水号

ProductID

Int

Notnull

产品号

该表只包含SalesOrderID和ProductID两个属性,表示某一个客户一次性购买的商品,一个用户若一次只购买一种商品,则不需要对数据进行处理,直接删除;一个用户若一次不止购买一种商品,则可以利用相应的挖掘技术来发现数据之间的关联规则。

 

第三章数据准备

根据对项目的分析以及需求分析,可以得出最后需要的表结构:

SalesOrderID订单流水号

ProductID产品号

对于表的操作,得到最后需要的数据操作如下:

1、删除只有一条记录的订单流水号

deletefromSales.SalesOrderDetailwhereSalesOrderIDin(selectSalesOrderIDfromSales.SalesOrderDetailgroupbySalesOrderIDhavingcount(SalesOrderID)=1)

2、将表换成横向排列的表,并将数据存在表Datas中

selectSalesOrderID,ProductID=stuff((select''+rtrim(ProductID)

fromSales.SalesOrderDetailwheret.SalesOrderID=SalesOrderID

orderbyProductIDforxmlpath('')),1,1,'')

intoDatasfromSales.SalesOrderDetailt

groupbySalesOrderID--将表化成横向表

3、将数据进行处理,去掉出现次数很少的数据

selectProductID,

count(ProductID)count_1,

(count(ProductID)*1000/(selectcount(*)afromdbo.data))percents

fromdbo.data

groupbyProductID

orderbyProductID--查看数据所占的百分比,插入表datas中

4、将数据从数据库中导出,并将数据改成字符型数据

字符与数据之间的对应关系由一张map给出。

5、对处理过的数据,编程实现fp_tree,并输出最后的频繁项目集

//主函数

intmain()

{

stringrpath;

rpath="tst1.txt";

if(!

(readFile(rpath.c_str())))//将数据(已经存在tst1.txt中)读入到容器中

{

cout<<"文件打开错误,算法退出"<

return0;

}

orderbyTime();//产品按次序排序并去掉小于支持数的产品

createTree();//创建fp_tree

modeBase();//产生条件模式基

stringwpath;

wpath="pinfan.txt";

if(!

(writeFile(wpath.c_str())))//将频繁项目集写入pinfan.Txt中

{

cout<<"文件写入错误,算法退出"<

return0;

}

Change();//将数字型数据转换成字符型数据

Rules();//将生成的频繁项目集进行关联规则的算法

return1;

}

6、产生的频繁模式将保存在名为:

pinfan.Txt的文件中,而最终由字符型数据变换成数字型数据的文件保存在change.txt中。

7、最终生成的强关联规则的数据将被保存在rules.txt中。

 

第四章Fp_tree关联规则算法

在本次分析中,主要采用Fp_tree的关联规则方法,Fp_tree算法只进行2次数据库扫描。

它不使用候选集,直接将符合最小支持度的数据压缩成一个频繁模式树,最后通过这棵树来生成关联规则。

Fp_tree的算法主要包括:

一:

利用事物数据库中的数据构造Fp_tree:

(1)第一次扫描数据库:

形成1-项频繁项表L(此时对源数据按照支持度降序排列)。

(2)创建Fp_tree:

首先创建树的根结点,用root标记,然后再扫描数据库,对于每一个事物,创建一个分支。

二:

从Fp_tree中挖掘频繁模式

(1)对于每个项(符合最小支持度的1-项频繁项),由Fp_tree中与后缀模式一起出现的前缀路线一起组成条件模式基,然后生成条件Fp_tree,最后按照最小支持度生成频繁项目集。

(2)对于每条Fp_tree的分支,重复

(1)步骤,直到Fp_tree为空,算法结束,生成频繁模式。

对于生成的频繁项目集,进行关联规则的挖掘算法,输出最终符合最小置信度的数据。

关联规则算法主要包括:

(1)对于生成的频繁模式,生成与之相对应的频繁项,扫描数据库,计算每个频繁项的支持度。

(2)对于每个频繁项生成的支持度,与最小置信度相比较,若大于最小置信度,则保留频繁项,若小于等于最小置信度,则删除频繁项。

最终生成的数据,将会符合最小置信度的要求,生成的频繁项是强关联规则的数据。

 

第五章预测结果分析

数据经过由数据库的多次处理,首先将会去掉SalesOrderID下只有一条ProductID的记录,但是数据量还是比较大,然后按照数据所占的百分比,将数据占总数0.5%以下的数据全部删除,不再进行处理,将处理完的数据导出到一个名为tst1.txt的文件中。

对处理好的数据,放入编好的程序,数据经过处理之后,将会输出最终需要的频繁项目集合。

对于数据处理最终的最小支持数,开始讲min_sup设为:

100,产生的频繁项最后有11-项集,数据量太大,后来将min_sup设为:

200,产生的频繁项有7-项集,数据量依然很大,最终将min_sup设为:

500,则产生的频繁项目集适合于最终需要的结果。

将最小支持数设为100,输出的结果如下图5.1所示:

图5.1

将最小支持数设为200时输出的结果如下图5.2所示:

图5.2

将最小支持数设为500,结果如下图5.3所示:

图5.3

最终要将输出频繁项目集由字符型数据替还原成数字型数据,调用函数change(),并产生名为change的文本文件,最后的部分结果如下所示:

712,711,715,716,------543

712,715,714,716,------531

频繁5-项集为:

707,708,715,714,716,------517

711,707,708,714,716,------518

711,707,708,715,714,------614

711,707,708,715,716,------529

711,707,715,714,716,------517

711,708,715,714,716,------515

712,707,708,714,716,------519

712,707,708,715,714,------616

712,707,708,715,716,------527

712,707,715,714,716,------516

712,708,715,714,716,------516

712,711,707,708,714,------612

712,711,707,708,715,------716

712,711,707,708,716,------527

712,711,707,714,716,------516

712,711,707,715,714,------611

712,711,707,715,716,------525

712,711,708,714,716,------515

712,711,708,715,714,------617

712,711,708,715,716,------529

712,711,715,714,716,------513

频繁6-项集为:

711,707,708,715,714,716,------501

712,707,708,715,714,716,------502

712,711,707,708,714,716,------501

712,711,707,708,715,714,------597

712,711,707,708,715,716,------511

712,711,708,715,714,716,------500

将生成的频繁项目集进行关联规则算法,将置信度设为60%,最终的结果将保存在rules.txt中。

最终的部分结果如下所示:

频繁1-项集为:

707,------3083

708,------3007

711,------3090

712,------3382

714,------1218

715,------1635

716,------1076

779,------1094

780,------1040

782,------1252

783,------1177

784,------1059

793,------705

794,------712

797,------725

801,------723

频繁2-项集为:

707,708,------792

707,714,------711

707,715,------836

707,716,------630

708,714,------717

708,715,------880

708,716,------625

711,707,------793

711,708,------848

711,714,------729

711,715,------905

711,716,------625

712,707,------955

712,708,------988

712,711,------1011

712,714,------741

712,715,------1172

712,716,------644

714,716,------586

结论

经过此次的试验,最终能输出对应的频繁项目集,并且能对生成的频繁项目集进行关联规则的挖掘,将生成的频繁项目集进行最终的分析,产生最后需要的满足强关联规则的数据。

对于大型数据的处理,不仅仅需要对其编程来实现,更重要的是之前的数据处理过程,要将数据在数据库中处理好再进行后面的处理,否则,对于后面的编程,很容易出现问题。

数据挖掘过程是处理大型的数据,然后得到最终想要的结果。

对于此次的数据挖掘过程,没有关联数据库,是将处理好的数据直接导出到文件,然后从文件读取数据进行最后的挖掘,并且需要将导出的数字型数据利用转换规则转换成字符型数据,最后再由规则将字符型数据转换成数字型数据,最终得到结果。

参考文献

[1].毛国君等,数据挖掘原理与算法(第二版),清华大学出版社,2011-1

结束语

几天的数据挖掘设计,让我们体验到了活学活用,用新鲜出炉的现学的知识来解决问题的乐趣,这种感觉很好,我们喜欢这种不沉闷又学到了知识的方式,能将我们所学转化成所用,让我们实实在在体会到了知识是如何转化成力量的,课程设计这几天虽然很短,但是却是这一门课的一个句号。

在我和我的队友在共同努力之下完成了企业销售分析一题,和队友合作的过程中虽然有分歧,但更多的学会了如何去沟通,去协调,最终圆满完成了题目的要求。

期间参考了网上相关资料,经过分工,各有负责。

网络上的资料有很多,当然良莠不齐,我们需要选择性的提取其中内容进行思考。

网络的资料为我们集思广益,帮助我们拓展了思路,但网络上的资料也让我们走了很多弯路。

经过老师的指导我们理清思路,所以后半部分基本很顺利就完成了。

数据挖掘是一个非常需要耐心的工作,因为有时虽然计算方法相同但还是需要一步一步计算出来,这个时候坚持很重要,千万不能半途而废。

坚持下去我们喜欢上了数据挖掘过程中的专注。

喜欢全身心投入去做一件事情的感觉!

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2