超市数据挖掘.docx

上传人:b****8 文档编号:9385121 上传时间:2023-02-04 格式:DOCX 页数:17 大小:418.66KB
下载 相关 举报
超市数据挖掘.docx_第1页
第1页 / 共17页
超市数据挖掘.docx_第2页
第2页 / 共17页
超市数据挖掘.docx_第3页
第3页 / 共17页
超市数据挖掘.docx_第4页
第4页 / 共17页
超市数据挖掘.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

超市数据挖掘.docx

《超市数据挖掘.docx》由会员分享,可在线阅读,更多相关《超市数据挖掘.docx(17页珍藏版)》请在冰豆网上搜索。

超市数据挖掘.docx

超市数据挖掘

河南科技大学

课程设计说明书

 

课程名称__软件项目综合实践__

题目_超市商品销售数据挖掘系统

 

院系_国际教育学院_

班级_________

学生姓名__________

指导教师_

日期_2013.9.2~2013.9.13_

软件项目综合实践任务书

软件项目综合实践题目

超市商品销售数据挖掘系统

姓名

学号

专业班级

组长

同组成员

指导教师

白秀玲、赵海霞、张蕾、王志强

软件项目综合实践目的

通过综合实践,使学生巩固数据库技术、数据结构、数据挖掘等知识,将理论与实际相结合,完成一个小型数据挖掘系统的设计与实现。

在此基础上强化学生的实践意识,提高其实际动手能力和创新能力。

软件项目综合实践环境

硬件:

装有windows7操作系统的计算机

软件:

SQLServer2008及VisualStdioC#2010

软件项目综合实践任务和要求

任务:

1.进行超市商品销售数据挖掘系统的数据管理、数据采集、数据预处理、数据挖掘、解释评估等步骤的设计;2.实现超市商品销售数据挖掘系统的算法及调试功能。

要求:

1.功能满足需求说明、界面友好、保证一定性能要求。

2.撰写出符合要求的软件项目综合实践报告。

参考

文献

1.毛国君等,数据挖掘原理与算法.北京:

清华大学出版社

2.王珊等数据库系统概论高等教育出版社

3.范建华.数据挖掘在面向ERP数据集市中的研究与应用.复旦大学硕士论文[D],2008.

时间进度安排

序号

起止日期

工作内容

1

2013年9月2日

讲授数据挖掘概念及其算法,学生分组

2

2013年9月3日

数据预处理,形成挖掘处理所需要的数据格式

3

2013年9月4日-9月6日

算法设计

4

2013年9月9日

界面设计:

参数设置,阈值设定;结果显示

5

2013年9月10日

程序组装调试

6

2013年9月11-12日

讲授文档撰写方法,形成文档内容及格式撰写要求,撰写软件综合实践报告,检查程序

7

2013年9月13日

检查程序,上交软件综合实践报告

 

指导教师签字:

年月日

目录

第一章需求分析2

一、题目分析2

二、设计要求2

三、开发与运行环境2

第二章概要设计3

一、算法设计3

二、算法分析3

三、算法流程3

第三章详细设计5

一、界面设计11

二、系统功能实现13

1、数据管理13

2、数据采集15

3、数据预处理16

4、数据挖掘16

5、解释评估系统显示18

第四章结果显示19

1、K项频繁集19

2、关联规则20

第五章系统调试与测试20

一、组装程序调试20

二、运行记录20

三、测试结果21

第六章课程设计体会21

第七章参考文献22

第一章需求分析

一、题目分析

现代的超市管理概念,要求以最少的投入,获得最大的利润。

超市的经营,一方面要……另一方面要能通过自己已有的数据资源,获得意想不到的关系,包括商品之间的关系,客户与商品之间的关系,以及不同时期,不同种类的商品之间的关系。

从而对超市的盈利有较大的支持。

数据挖掘系统,就是通过计算机原理与各种挖掘技术,并通过某些算法,对已有的历史销售记录进行分析,从而得到销售商品之间的关系,例如商品的摆放,库存的管理等等。

即时购物者能够方便的找到自己想要的商品,同时,能够尽可能的多购买商品,为超市创造利润。

系统主要处理销售记录中某些商品出现的概率,以及不同商品之间的采购关联关系。

同时可以通过此调整商品的摆放位置,使商品能够分区摆放,并为客户选购商品提供方便。

二、设计要求

系统的设计,要求在提供销售记录数据的情况下,分析出各种商品之间的采购关系,那些商品往往会一起被购买。

对于数据要求,由于此系统是测试系统,未作为正式使用系统,因此数据采用了最小结构,无关数据都没有涉及。

首先需要一个销售记录表(销售编号,销售明细编号),

一个明细表(销售明细编号,商品编号),一个商品信息表(商品编号,商品名称)。

对于挖掘时的精度要求,支持度与信任度,可以用户手动输入。

数据量越大,挖掘出来的关系准确度越高。

但是花费的时间往往也越长。

最终显示结果包括在一定支持度上的各种商品组合,以及他的支持度,各种关联规则的显示,以及他的信任度。

三、开发与运行环境

系统使用的数据库平台为SQLserver2000,开发平台为VisualStudio2010,开发语言采用C#快速开发。

运行环境:

装有WindowsXP的PC机,同时拥有SQLserver2000以上的数据库服务器。

运行时,启动数据库服务器,附加数据库。

启动程序即可。

第二章概要设计

一、算法设计

Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法。

其核心是基于两阶段频集思想的递推算法。

该关联规则在分类上属于单维、单层、布尔关联规则。

在这里,所有支持度大于最小支持度的项集称为频繁项集,简称频集。

该算法的基本思想是:

首先找出所有的频集,这些项集出现的频繁性至少和预定义的最小支持度一样。

然后由频集产生强关联规则,这些规则必须满足最小支持度和最小可信度。

然后使用第1步找到的频集产生期望的规则,产生只包含集合的项的所有规则,其中每一条规则的右部只有一项,这里采用的是中规则的定义。

一旦这些规则被生成,那么只有那些大于用户给定的最小可信度的规则才被留下来。

为了生成所有频集,使用了递推的方法。

以下为生成频繁集的算法。

  

(1)L1=find_frequent_1-itemsets(D);

  

(2)for(k=2;Lk-1≠Φ;k++){

  (3)Ck=apriori_gen(Lk-1,min_sup);

  (4)foreachtransactiont∈D{//scanDforcounts

  (5)Ct=subset(Ck,t);//getthesubsetsoftthatarecandidates

  (6)foreachcandidatec∈Ct

  (7)c.count++;

  (8)}

  (9)Lk={c∈Ck|c.count≥min_sup}

  (10)}

  (11)returnL=∪kLk;

可能产生大量的候选集,以及可能需要重复扫描数据库,是Apriori算法的两大缺点。

关联规则定义为:

信任度:

confidence(A=>B)=P(A|B)=support(AUB)/support(B)

获得关联规则的算法为:

1、对于产生的每一个频繁集L;生成他的非空子集。

2、对于子集的每一个项S,如果有support(L)/support(S)>_minconfidence,则可以退出一条关联规则:

S=>(L-S)。

二、算法分析

此算法需要频繁的读取数据库,进行数据的比较与筛选,时间复杂度比较高,同时中间变量也有,单不算太大,其空间复杂度不算太大。

算法还有待改进。

三、算法流程

算法开始,首先进行数据预处理,从数据库里提取数据,使其形成集合列表形式,以便在程序中扫描数据库的时候,可以直接遍历此集合列表,即达到扫描数据的目的。

然后生成K项频繁集。

最后通过K项频繁集与最小信任度比较获得关联规则。

并显示关联规则。

生成K项频繁集的过程,首先是生成1项频繁集,之后利用递归方法,知道不能在生成频繁集为止。

第三章详细设计

一、界面设计

系统的模块分为:

商品信息维护,销售记录维护,开始挖掘界面,解释评估显示界面,分别作为TAB控件的一个页面。

图表1商品信息维护

图表2交易记录信息维护

图表3开始挖掘界面

图表4解释评估显示

二、系统功能实现

1、数据管理

数据管理包括商品信息的管理,商品销售记录的管理,商品销售明细管理等。

对于商品信息的管理,系统设计有商品信息添加,删除操作。

首先,添加的商品代码不能重复,商品名称不能重复。

删除功能,提供按照编号删除和按照名称删除。

因为在数据库设计时,二者都是唯一的,因此,可以按照任意一个字段进行删除操作。

代码实现主要有以下一些:

添加商品:

if(CheckInPutText()){

stringProductID=textBox4.Text;

stringProductName=textBox3.Text;

Product.AddProduct(ProductID,ProductName);

ShowProductInfoToDataGridView();

}else

MessageBox.Show("编号输入不合法,或者该编号商品已存在");

删除商品:

if(radioButton1.Checked==true){

if(!

History.IsContainProduct(textBox2.Text))

{

Product.DeleteByID(textBox2.Text);

ShowProductInfoToDataGridView();

}

else

MessageBox.Show("请先删除含有该商品的销售记录,在尝试删除该商品信息");

}

if(radioButton2.Checked==true)

{if(!

History.IsContainProduct(Product.ConvertToIDByName(textBox1.Text)))

{

Product.DeleteByName(textBox1.Text);

ShowProductInfoToDataGridView();

}

else

MessageBox.Show("请先删除含有该商品的销售记录,在尝试删除该商品信息");

}

对于商品销售记录的管理,系统有商品销售记录的添加,但不提供销售记录的删除操作。

添加时,首先检查是否输入了正确的历史编号,然后再检查是不是存在这样的历史编号,如果都通过了,在检查商品明细列表是不是空。

如果一切都就绪了,那么就可以进行添加记录的操作了。

主要代码实现如下:

if(CheckVoucherID())

{

try

{

//写入历史表

HistoryHistoryRecord=newHistory();

HistoryRecord.HistoryID1=textBox10.Text;

HistoryRecord.PerProList1=textBox10.Text;

HistoryRecord.AddRecord();

//写入明细表

PerProListPerProSetList=newPerProList();

PerProSetList.PerProListID=textBox10.Text;

for(inti=0;i

{

PerProSetList.ProductsID.Add(Product.ConvertToIDByName(listBox6.Items[i].ToString()));

}

PerProSetList.AddRecord();

}

catch(Exceptionex)

{

MessageBox.Show(ex.Message);

}

}

else

MessageBox.Show("您的输入号码可能已经有记录了,请仔细核对后在添¬加);

商品明细的管理,在销售记录管理中嵌套着,在执行销售记录的添加时,销售明细显然已经添加到数据库了。

因此,此处不再详述。

2、数据采集

将数据库中的数据按照一定规则形成集合列表形式,以便在以后的程序中可以扫描,已达到扫描数据库的效果。

代码实现:

privateListGetAprioriSetList()

{

ListapprioriSetList=newList();

//获取销售记录编号列表

try

{

stringsql="selectHistoryIDfromHistory";

DataSetds=SqlHelper.ExecuteDataSet(sql);

ListHistoryIDList=newList();//存放编号列表ª

for(inti=0;i

{

stringid=ds.Tables[0].Rows[i][0].ToString();

HistoryIDList.Add(id);

}

//依照列表查询每次交易记录中的商品编号列表list<每次的交易商品编号列表for(inti=0;i

{

Listproductidset=newList();

//默认商¦品销¨售记录编号和交易明细记录编号一样,在写数据库时,按一个字串填写即可

sql="selectProductIDfromPerProListwherePerProListID='"+HistoryIDList[i].ToString()+"'";

ds=SqlHelper.ExecuteDataSet(sql);//获得每次的交易记录商品编号

for(intj=0;j

{productidset.Add(ds.Tables[0].Rows[j][0].ToString());

}

AprioriSetapprioriSet=newAprioriSet(HistoryIDList[i].ToString(),productidset);

apprioriSetList.Add(apprioriSet);}

}

catch(Exceptionex)

{

throwex;

}

returnapprioriSetList;

}

第四章结果显示

1、K项频繁集

2、关联规则

第五章系统调试与测试

一、组装程序调试

程序编译后运行即可。

二、运行记录

输入支持度2,输入信任度70%。

然后开始挖掘。

三、测试结果

第六章课程设计体会

此次的课程设计,通过相互合作,我们深刻体会到了集体的力量,懂得了合作做项目的重要性。

通过相互帮助,分工合作,使整个课题的制作很顺利的进行,同时让我们认识到了算法在实际生活的应用以及数据挖掘的原理与重要性,它可以从大量的数据中找到我们意想不到的数据关系,为我们的实际生活与商业销售领域等贡献出其自身的价值。

因此,在计算机领域和数学领域,应该还有很多很有用的算法与理论有待我们去发现与发展。

同时,也认识到了我们的技术的不过关,总是因循守旧,并没有很好的利用新的技术,都是一些老的技术,低效率的算法。

在以后的学习和工作中,我们要更进一步的学习新的技术,提升我的算法效率,提升我们的程序的效率。

虽然课题制作过程中出现过很多错误,但是到错误得以很好的解决的时候,我们深刻体会到了对于计算机的学习一定要注重实践,在实践中学习,在实践中进步,切不可闭门造车,做一个只知道死读书的书呆子,只知理论不明实践。

所以从今以后一定要注重具体的实现而不是纯理论。

第七章参考文献

1、C#2.0完全自学手册,张立等主编,机械工业出版社。

2、数据挖掘原理与应用,ZhaoHuiTang,JamieMacLennan著,清华大学出版社。

3、SQL查询初学者指南,JohnL.Viescas,MichaelJ.Hernandez著,机械工业出版社。

4、数据仓库与数据挖掘技术,刘翔编著,上海交通大学出版社。

课程设计题目

超市商品销售数据挖掘系统

姓名

学号

专业班级

指导教师评语:

 

指导教师签名:

年月日

成绩评定

项目

分值

评分要素

成绩

1设计过程中出勤、学习态度等方面

20

上机出勤及端正的学习态度、认真刻苦程度等

2软件设计质量

40

采用的算法、设计方案,设计结果,界面友好等方面进行综合评定

3答辩

20

能简明扼要地阐述设计的主要内容,能准确流利地回答各种问题

4设计报告书写

10

条理清晰,表述清楚、措词得当

5实际动手能力

10

组长全面负责,承担复杂的模块设计分值就高

总成绩

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1