基于数据挖掘的图书销售分析系统设计与实现
2013-11-29刘法伦南理勇
刘法伦,南理勇
(1.滨州学院 远程教育学院,山东 滨州 256600;2.滨州学院 计算机科学技术系,山东 滨州 256603)
随着数据库技术的不断发展及数据库管理系统的广泛应用,数据库中存储的数据量急剧增大,在大量的数据背后隐藏着许多重要的信息,数据挖掘技术能把这些信息从数据库中抽取出来,为企业决策的制定提供有力的数据依据[1]。
对于商家来说,掌握客户的有效信息并做出正确的决策,在日益激烈的竞争中越来越重要。本文是基于数据挖掘技术通过对某一书店的销售业务数据进行挖掘分析,提高企业对图书销售分析的能力,从而帮助商家有效地抓住商机,创造最大利润。
1.系统设计
1.1 系统功能模块
根据系统需求分析知,系统应实现对该书店的会员分析和图书分析两大部分。会员分析是对该书店的注册会员的信息进行挖掘,实现会员级别分析、会员消费分析、会员类型分析和图书推荐等四部分内容。而图书分析则是对书店各类图书的信息进行挖掘,实现图书的销售走势分析、销量分析、销售关联分析和定价分析等四部分功能。系统功能模块图具体如图1所示。
图1 系统功能模块图
1.2 数据源设计
该系统通过一个Analysis Services项目来创建和维护数据挖掘对象,其数据来源于SQL Server数据库“BookSell”。终端的Windows应用程序通过调用Analysis Services中的挖掘模型来执行各种预测分析。
该数据库所需创建的基本表主要包括:图书信息表(Book)、图书类目表(BookCategory)、用户信息表(Customer)、打折信息表(Discount)、图书出售表(Sell)、图书出售条款信息表(SellItem)。
为更方便对数据库的操作,该数据库设计了V_Book、V_BookSell、V_WeekSell三个视图。其中,视图V_Book是对基础表Book和SellItem的综合查询,包含了图书的基本信息和销售情况汇总;视图V_BookSell包含了图书的销售明细信息;视图V_WeekSell包含了图书每周销量信息。
另外,为了方便在对数据库操作,该系统创建了4个如下存储过程:ResetScore根据用户的积分重新设置用户当前的等级;ResetSellItemSum根据当前销售额更新销售条款信息表;ResetSellSum根据销售的图书类别更新图书销售表;UpdateSell根据上述三个存储过程对图书销售情况适当更新。
2.应用实例实现
2.1 关键技术
该系统在开发过程中,使用到的关键技术主要包括:
(1)根据应用需求来创建各类挖掘模型。
(2)在客户端通过 ADOMD.NET访问 Analysis Services数据库对象;在客户端调用DMX查询命令来执行模型预测。
ADOMD.NET是受托管的数据提供程序,它实现了ADO.NET专用于Analysis Services的数据适配器和数据阅读器接口,从而使得它比通用的ADO.NET对象更快,而且在内存利用上更有效。除了标准的ADO.NET接口,ADOMD.NET还包括数据挖掘对象和特定于OLAP的对象,从而使得对数据挖掘客户端应用程序进行编程更容易[2]。
2.2 挖掘模型的创建
根据该系统的分析功能,所需要创建的挖掘结构有Customer.dmm包含模型贝叶斯挖掘模型、决策树挖掘模型、聚类分析挖掘模型,其数据源为基本表 Customer;CustomerBooks.dmm包含关联规则挖掘模型,其数据源为基本表customer和视图V_BookSell关联后的Book Sell.dsv;WeekSell.dmm包含时序挖掘模型,其数据源为视图V_WeekSell;Book.dmm包含神经网络挖掘模型,其数据源为视图V_Book;BookAssociation.dmm包含顺序分析挖掘模型,其数据源为基本表customer和视图V_BookSell关联后的Book Sell.dsv;BookPrice.dmm包含线性回归挖掘模型,其数据源为视图V_Book。
(1)贝叶斯模型
这里使用基于贝叶斯算法的挖掘模型来分析会员级别,该模型依据对现有会员级别的分析结果构建的,而其主要功能是预测新会员今后最可能达到的级别,从而帮助书店管理者制定更为有效的会员管理策略。
(2)决策树模型
决策树是以实例为基础的归纳学习算法[3]。在该系统中,该模型将实现预测会员的消费水平最有可能在哪一个消费区间的功能。根据会员以往消费的历史数据将会员的消费类型分为偶然会员、忠实会员、一般会员。
(3)聚类分析模型
聚类是在事先不规定分组规则的情况下,将数据按照其自身特征划分成不同的群组[4]。该模型用于预测会员类型,这里根据会员注册的个人信息中的年龄和学历信息将会员类型分为以下几类。
分类1:学历层次较高,年龄在26-30岁之间,消费额居中上水平者,可以判定该类会员主要是科研工作人员。
分类2:学历层次较高,年龄在30岁以上,消费额以中上为主者,可判定该类会员主要是管理人员。
分类3:学历以本科为主,年龄偏低,消费额居中者,可认为这类会员主要是在校学生。
(4)关联规则模型
该模型用于挖掘会员与图书间的关联性,通过对分析会员之前的购书信息的分析,向会员推荐其他可能感兴趣的图书。
(5)时序挖掘模型
该模型主要用于图书销售走势分析,根据图书销售的历史数据,预测某一图书的在未来几周的销售额。
(6)神经网络模型
基于神经网络的数据挖掘工具对于非线性数据据有快速建模能力[5]。通过上述时序挖掘模型我们可以根据图书销售的历史数据来预测图书未来的销量(销售额),而假设要对新书进行销售量的预测,时序挖掘模型将不再适用,而基于神经网络算法可以完成这一任务,该模型更为全面地实现了对图书信息中销量(销售额)的分析。
(7)顺序分析模型
该模型与前面所创建的关联规则模型相比,尽管他们使用的事例表和嵌套表相同,预测类型也相同的,但用途不同:关联规则模型CustomerBooks分析的是会员个人信息,并由此预测该会员最有可能购买的图书;该模型BookAssociation分析的是图书销售信息,并由此预测已购买了某一图书的顾客还有可能购买另外哪些图书。
(8)创建线性回归模型
为了实现对图书定价的分析,创建线性回归模型BookPrice。对于该系统的图书信息分析中只针对定价进行分析,所以只有一个输入列,这里得到一元线性回归公式。
2.3 客户端实现
客户端通过ADOMD.NET访问Analysis Services数据库对象以及通过DMX查询命令预测的一般步骤如下:
首先,打开关闭数据连接,这里连接对象分别是SQL Server的 BookSell数据库和 AnalysisServices的BookSellAnalysis数据库。
连接代码如下:
最后,结果显示使用AdomdDataReader对象。
图书销售分析系统中对会员信息和图书信息分析功能实现的过程基本如上述步骤。
(1)会员分析功能的实现
用于会员信息分析的Windows窗体如图2所示,主要实现的功能包括:会员等级预测、会员消费额预测、会员的类型预测以及推荐图书信息。
图2 会员分析窗体CustomerAnalysisiForm
该窗体在初始化和关闭时,将打开和关闭相应的数据连接,窗体在初始化的同时还用SQL命令把所有会员的编号载入到“会员编号”框中。在选择某会员的编号并按下“载入会员信息”时,系统将再次通过SQL命令来读取该会员的个人信息,并将其显示在各个控件中。
如图2所示,窗体的下部是一个TabControl容器控件,它的4个TabPage页分别用于实现会员的级别分析、消费分析、类型分析和图书推荐功能。当用户选择某预测功能选项卡并点击“预测(P)”后,程序会根据相关输入来构造DMX预测分析字符串,并调用相应的模型来实现预测分析功能。
(2)图书分析功能的实现
用于图书信息分析的视图如图3所示,该窗体类BookAnalysisForm的成员字段、构造函数、初始化和关闭事件以及对图书信息的各预测功能实现的过程都和会员信息分析窗体类似。
图3 图书分析窗体BookAnalysisForm
3.结束语
本文基于数据挖掘技术实现了对图书销售的相关分析与预测,结合实例实现了对数据挖掘模型的应用,各模型的功能也在实例中得到了充分的体现。对图书销售企业的管理和决策的制定有一定的实际意义,也体现了数据挖掘技术在销售分析系统中应用的重要性。
另外,本文是在关系型数据库的基础上进行挖掘的,在对于一些大型企业来说,所要分析的数据量将会非常大,不同业务数据也将会增多,创建数据仓库将成为必然;本文在设计之初所设想的对网络浏览信息的分析功能未能实现。这两方面若能实现将会使得系统更加完善。
[1]沈红超.数据挖掘技术在电子商务中的应用研究[D].无锡:江南大学,2009.
[2]杨大川.数据挖掘原理与应用[M].北京:清华大学出版社,2007.
[3]罗可,林睦纲,等.数据挖掘中分类算法综述[J].计算机工程,2005(1):3-5.
[4]左延权.聚类分析算法在图书管理系统中的应用研究[D].大连:大连交通大学,2009.
[5]程秩.常用预测方法及评价综述[J].四川师范大学学报,2002,15(1):70 -73.