0数据挖掘在汽车销售决策支持系统中的应用研究

(整期优先)网络出版时间:2022-08-24
/ 3

0数据挖掘在汽车销售决策支持系统中的应用研究

赵太祥,杨丹丹,周雨

空军工程大学航空机务士官学校基础部    河南信阳 464000

摘要:数据挖掘可以有效地对大数据进行管理,发现有价值的信息,以提高信息利用率。数据挖掘技术对汽车销售信息数据进行科学的统计分析为汽车销售提供决策依据。本文以汽车销售系统中部分数据为例,分析了算法选择、数据模型建立、数据训练这些数据挖掘过程。

关键词:数据挖掘;决策支持系统;关联规则

1.引言

当前社会已进入到大数据信息化时代,数据的挖掘分析为企业高层决策提供重要的依据。前期的业务系统产生大量历史数据,而数据挖掘就是从这些大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中提取隐含在其中的,人们事先不知道的、但又是潜在有用的信息和知识的过程[1]

2.汽车销售决策支持系统中的数据挖掘过程

对历史数据和现有数据进行深层次处理分析是建立一个优良的决策支持系统的关键所在。决策支持系统就是针对重大决策问题,将各决策主体的决策意见通过人工智能界面进行实时共享,计算机对接受的信息降噪,对多元已购的大规模数据进行采集、处理、存储、分析,得到知识库支持,将得出的方案反馈给决策主体[2]

汽车销售决策支持系统,数据量庞大,以其中一张表“CustomersBoughtCarsSurvey”的信息为例,这张表记录了公司来分析数据挖掘过程。具体表结构如下:

CREATE TABLE [dbo].[CustomersBoughtCarsSurvey](

    [CustomerID] [int] IDENTITY(1,1) NOT NULL,#主键ID为自增int类型

[Name] [nvarchar](50) NULL,#客户姓名

[Age] [int] NULL,  #客户年龄

[Sex] [char](1) NULL,  #客户性别

[Nation] [nvarchar](50) NULL,  #客户所在国家

[City] [nvarchar](50) NULL,  #客户所在城市

[YearlySalary] [float] NULL,  #客户年收入

[BoughtCar] [bit] NULL,..#客户是否购买了汽车

CONSTRAINT [PK_CustomersBoughtCarsSurvey] PRIMARY KEY CLUSTERED

(

[CustomerID] ASC

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

为了方便分析,现在假设这张表里面有100000行记录,其中这100000行记录中“客户ID”,“客户姓名”,“客户年龄”,“客户性别”,“客户所在国家”,“客户所在城市”,“客户年收入”都是有值的,唯独列“客户否购买汽车”只有40000行数据有记录其余60000行都是“null”值,原因是在表“客户购买车辆的信息”里面有40000个客户做过了市场调查,知道了他们是否购买了汽车,所以这40000个客户在列“客户是否购买汽车”上是有值的,但是有60000个客户还没有做市场调查,有60000行数据的“客户是否购买汽车”列都是“null”。现在我们要做的事情就是通过一个算法来预测这60000个客户中哪些人在未来是有可能买车的,买车的几率有多大。

3.数据挖掘中模型算法分析

SQL Server analysis ServiceSSAS)中的数据挖掘模型就能够将上述设想付诸于实现,SSAS中数据挖掘有九大模型算法:决策树分析算法、聚类分析算法、Naive Bayes 算法、时序算法、关联规则分析算法、顺序分析和聚类分析算法、神经网络分析算法、线性回归分析算法、逻辑回归分析算法。

汽车销售决策支持系统中的数据挖掘采用关联分析算法。

3.1关联分析(Association Analysis

关联分析就是从给定的数据集中发现频繁出现的项集模式知识(又称为关联规则和Association Rules)。[3,4]关联分析广泛应用于市场营销、事务分析等应用领域。

在大型数据库中,存在很多关联规则,对用户来说其中有些是有用的,而有些则是无用的,因此需要进行筛选。在实际进行关联规则数据挖掘时,一般用支持度(Support)和置信度(Confidence)两个阈值来淘汰那些无用的关联规则。

关联规则挖掘就是在事务数据库D中找出满足用户给定的最小支持度“minsup”和最小置信度“minconf”要求的关联规则,整个挖掘过程可分解为以下两步:

1)找出事务数据库 D 中所有支持度大于等于用户指定最小支持度的项目集。支持度不小于最小支持度的项目集称为频繁项目集,而对某一频繁项目集,若其所有超集的支持度都小于最小支持度阈值,则称该项目集为最大频繁项目集。

2)利用频繁项目集生成所需要的关联规则。对每一个频繁项目集A,找到A的所有非空子集a,如果比率support(A)/support(a)minconf,就生成关联规则a(A-a)support(A)/support(a),即规则a(A-a)的置信度。

目前有很多产生频繁项目集的算法,这些算法产生频繁k-项集时,扫描数据库的每个事务用以统计这些候选k-项集的支持度,并按照事务数确定的最小支持度在第k次迭代时找出所有频繁k-项集。然而,由于数据库的规模通常是非常大的,所以在每次迭代时产生候选项目集以统计其支持度是非常耗时的。

3.2关联规则数据挖掘算法

输入:事务数据库D,最小支持度阈值minsup

输出:D中的频繁项集L

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

(2) for(k=2;Lk-1≠φ;k++) do

(3) begin

(4)     Ck=apriori-gen(Lk-1);

(5)     forall transactions tD do

(6)     begin

(7)       Ct=subset(Ckt);

(8)       forall candidates cCt do

(9)         c.count++;

(10)     end

(11)     Lk ={cCk|c.countminsup}

(12) end

(13) Answer L=UkLk;

Procedure Search_frequent_1-itemsets( D )

(1)begin

(2)   forall transactions tD do

(3)   begin

(4)     for each item ikt do

(5)       ik.count++;

(6)   end

(7)   L1 ={ iI | i.countminsup}

(8)   return L1;

(9)end

4.数据训练

选定某一个挖掘模型,那么下一步要做的就是对挖掘模型进行数据训练,来提高挖掘模型对数据预测的准确性,数据训练就是让函数的逻辑更佳正确,能够更精准的得出“客户否购买汽车”的值。表“客户购买车辆的信息”中,列“客户否购买汽车”有40000行数据是有值的,这40000行数据就是参加做过市场调研的客户,要通过这40000行数据来做数据训练,提高数据挖掘模型算法的精度,然后来预测剩下60000行数据中列“客户否购买汽车”的值。

建立好挖掘结构后可以将其部署到SSAS服务器上,然后查看当前挖掘模型的算法的准确率,本例建立的挖掘模型的准确率只有18.65%非常低,一个重要的原因就是用于数据训练的数据量太少了。增加数据训练的数据量后这个数字会有明显改善。

最后可以通过查询得到三行列“客户否购买汽车”的值本来为“null”的数据行,通过挖掘模型计算出来预测值。

5.结束语

文中提出的这些算法都是基于内存的,由于数据库的容量会越来越大,当与数据库对应的中间结果无法完全装入内存时,算法的执行效率就会变得很低。因此,在以后的工作中将对更新挖掘的高效算法进行研究。

作者简介:赵太祥,1981.7,河南信阳硕士研究生,讲师,从事计算机应用教学和数据挖掘研究。

参考文献

[1]Jiawei Han, Micheline Kamber, DataMing:Concepts and Techniques, Beijing:Higher Education press,2001.

[2]徐婧。基于大数据的重大工程智能群体决策支持系统研究[J]。河南科学,20196):1015.

[3]Agrawal R,Srikant R. Fast algorithm for mining association rules. In: Proceedings of the 20th International Conference on VLDB. Santigo,2004:487

499.