基于数据挖掘技术的保险行业决策分析研究
摘要:本文针对目前保险行业信息管理的现状,提出数据挖掘技术对保险行业的重大影响,简要说明了“保险行业决策系统v1.0”项目及其对挖掘算法的改进等。并通过实验论证了改进算法的优势,通过分析结果展示了数据挖掘技术能使保险行业有效地利用现有数据实现经营目标,预测保险业的发展趋势,进而在激烈的竞争中赢得先机。
关键词:数据挖掘;关联分析;apriori
1 引言
随着数据库技术的迅速发展以及数据库管理系统的广泛应用,各行各业积累的数据越来越多。日益剧增的数据背后隐藏着许多重要的信息,人们希望能够对其进行更高层次的分析,以便更好地利用这些数据。目前的数据库系统可以高效地实现数据的录入、查询、统计等功能,但无法发现数据中存在的关系和规则,无法根据现有的数据预测未来的发展趋势。缺乏挖掘数据背后隐藏的知识手段,导致了“数据爆炸但知识贫乏”的现象。
随着计算机及网络技术的发展,获得某一行业有关资料已切实可行。而对于数量大、涉及面广的数据,依靠传统的简单汇总、按指定模式去分析的统计方法无法完成对数据的分析。因此,一种智能化的信息分析技术——“数据挖掘”(data mining)应运而生。
数据挖掘(data mining)是从大量的、不完全的、有噪声的、模糊的、随机的数据中提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。通过挖掘数据仓库中存储的大量数据,从中发现有意义的新的关联模式和趋势的过程。数据挖掘是一种新的商业信息处理技术,是对商业数据库中的大量业务数据进行抽取、转换、分析和其他模型化处理,从中提取辅助商业决策的关键性数据。wWW.11665.cOM从而使企业在激烈的市场竞争中获得先机。就保险行业而言,目前具有广阔的市场需求。
2 项目说明
本项目开发了“保险行业决策系统v1.0”。本系统操作主界面利用asp编程实现:数据预处理、客户购买险种分析、客户购买习惯分析、分析结果输出等功能;后台数据库利用sql server 2005网络数据库实现;挖掘工具采用spss clementine 11.0;在研究实验阶段,针对apriori算法存在的“存储复杂度”及“大量冗余规则”两大缺点进行了算法改进,通过利用一个模式树结构来降低apriori算法的存储复杂度,并同时减少冗余规则的出现。
本系统共分:数据预处理、客户购买险种分析、客户购买习惯分析、分析结果输出等主要功能模块。
(1)“数据预处理”模块包括:上传、数据平台、数据处理、统计、生成数据集等功能。
● 上传:可完成保险总公司下设所有分公司数据的上传。
● 数据平台:在数据上传前允许对数据平台进行选择。
● 数据处理:对数据进行清理、格式转换等操作。
● 统计:对经过预处理的数据进行分析,提取有效性数据。
● 生成数据集:将统计过程提取的有效数据生成数据集,为数据挖掘提供较高质量的数据源。
(2)“客户购买险种分析”模块包括:数据导入、参数设定、结果分析等功能。
● 数据导入:在此操作界面上,可通过选择不同数据平台将经过“数据预处理”生成的数据集分别导入。
● 参数设定:在此操作界面上设定“支持度”“置信度”等参数,对有效数据集中有分析价值的数据记录范围进行筛选。
● 结果分析:在此操作界面上可将“客户购买险种分析”的最终分析结果以“报表”、“图表”形式展示,此分析结果为行业提供了“同一客户购买本公司多种(次)保险”的客户信息,进而为行业提供了“可争取客户”的决策依据。
(3)“客户购买习惯分析”模块包括:数据导入、参数设定、结果分析等功能。
● 数据导入:此操作同(2)“客户购买险种分析”模块中的“数据导入”。
● 参数设定:在此分别设定“输入参数”(包括:年龄、性别、职业等客户基本信息)及“输出参数”(客户购买的险种信息)。
● 结果分析:通过此操作界面可展示出客户购买习惯的分析结果,进而为行业提供了“可保持客户”的决策依据。
(4)“分析结果输出”模块包括:“客户购买险种分析”“客户购买习惯分析”等分析结果的打印输出功能。
3 项目中改进的快速算法
由于apriori算法存在时间空间复杂度高及产生大量冗余规则两大缺陷。因此本项目通过利用一个模式树结构来降低apriori算法的存储复杂度,并同时减少冗余规则的出现。
3.1 一个模式树的结构
root是一个标为“null”的根结点,root以下是作为根结点的孩子的项目前缀子树集合,以及项目头表组成;树中的每一结点包含四个域user_id,count,node_link,node_next。其中,user_id为user的标记(唯一标识一个user),count为该父结点到达该结点的路径的数目,node_link指向树中具有相同的user_id的下一个结点的下一结点,当下一个结点不存在时,node_link为null,node_next指向树中其子结点;项目头表的每一表项包含三个域:user_id,count,head of node,user_id与树中的定义相同,count为树中所有相同user_id之和,head of node指向树中具有相同user_id值的首结点的指针。
3.2 建立模式树
算法如下:
设事务数据库为a,其中的一个项集为ai。
算法:patterntree(tree,p),构造模式树
输入:用户事务数据库a
输出:用户模式树
procedure patterntree(t,p)
{create_ tree (t);//创建pattern-tree的根节点,以“null”标记
t=t; //t为当前结点
while anull do
{读入一个事务数据库项集ai
while p !=null
do
{if p.user_id==t的祖先n.user_id
then
{ n.count=n.count+l;
t=n;
}
elseif p.user_id==t的孩子c.user_id
then
{ c.count=c.count+ l;
t=c ;
}
else
insert_patterntree(t,p) ;//把p作为新结点插入树中,作为当前结点的孩子结点
p=p.next;
}
}
}
3.3 对模式树进行剪枝
模式树建立后,可能存在大量的冗余的分枝,为了保证数据挖掘结果不被这些冗余分枝产生的噪声所影响,因此需要对树进行剪枝,剔除噪声信息。
算法:spt(tree,a),通过调用此算法对模式树进行剪枝
//spt为支持度模式树,即supported access pattern tree;a为项目头表
输入:模式树patterntree,min_sup(模式树的最小支持度)
输出:经过修剪后的支持度模式树spt,模式b={bi|i=1,2,3……n}
spt(tree,a)
{ i=1;
while(ai!= null) // 为项目头表的某一项
{
if(ai.count>= min_sup)
then
{
模式bi= ai.head of node ;
p= ai.head of node ;//p指向ai在模式树中
的位置
while (p!= null and ai.count>= min_sup)
{
查找p的前缀基,将p的前缀基和p连接,构
成模式b;
if (bi.count>= min_sup)
then
{
//bi.count 为模式b中p与p的前缀基中
的最小计数
在模式bi中保留p及其前缀基;
bi = bi. node_link
}
else
{
根据模式b中的p及其前缀基删除
patterntree中的相应节点,重构子节点
与父节点,同时修改项目头表中的ai;
p=p. node_next//p指向 在模式树中的
下一个位置;
}
}
}
else
{
修改项目头结点的ai值;
删除模式树中相应的节点及其前缀基,重构父子
节点;
i++;
}
}
}
通过模式树的建立可以避免多次扫描事务数据库;同时利用count域有效的保留了项集的数目,避免大量产生频繁项集,对于减小空间时间复杂度起到了一定的作用。通过树形结构可以避免产生大量冗余规则。
通过对模式树的剪枝,可以减除在模式树产生过程中产生的大量冗余分枝,起到了减小空间复杂度的作用,同时可以利用输出模式b产生规则,避免了多项集的频繁出现,减小了时间复杂度。
4 结束语
本项目中通过模式树结构改进了apriori算法,弥补了apriori算法存在的缺陷。此种方法既能够对apriori算法从时间复杂度和空间复杂度上进行改进,同时又避免了中间规则的产生。本研究表明,通过利用一个模式树结构来降低apriori算法的存储复杂度,并同时减少冗余规则的出现,这对于apriori算法的改进是一种有效的措施。
参考文献
[1]邓纳姆.数据挖掘教程[m].郭崇慧,田凤占,靳晓明,等译.北京:清华大学出版社,2005.
[2]苏新宁,杨建林,江念南,等.数据仓库和数据挖掘[m].北京:清华大学出版社,2006.
[3]gal c s, kantor p b, shapira b. security informatics and terrorism: patrolling the web. amsterdam: ios press,2008.
[4]borges j, levene m. evaluating variable length markov chain models for analysis of user web navigation sessions.ieee transactions on knowledge and data engineering.2007,19(4): 441-452.
推荐阅读