返回
计算机世界1999年第20期

关联规则挖掘在保险业务中的应用

田金兰 黄 刚

  现在有很多数据挖掘软件工具可以实现关联规则的发现,下面讨论如何用MineSet 对保险业务数据进行关联规则的挖掘。出于行业保密,其中有些数据做了加工处理。

数据准备

  首先需要连接数据。MineSet 提供了一些主流关系数据库的接口(包括Oracle7.2 或以上版本、Informix、Sybase,既可以访问本地数据库,也可以通过网络访问远程主机的数据库),可以直接读取存放在数据库中的数据;MineSet 也支持以文本文件方式存储的数据文件,这些文件必须以一定的格式组织数据。
  在实际应用中,如果用户的数据由MineSet 不支持的数据库系统来管理,那么可以用一些第三方产品或自己实现,把数据转存到文本文件中。由于使用数据文件的方式速度要快一些,因此如果用户的数据变化不大,而且需要反复多次使用数据做知识发现,那么也可以转存到文本文件中,以提高效率。

  数据挖掘的过程是不会修改源数据的。

  这里我们使用的保险数据是存储在本地数据文件中,所以直接打开数据文件就可以了。

  用MineSet 的集成工具记录浏览器(Record Viewer)观察数据,表1 是其中的一小部分。
dada012_1.jpg (37675 字节)
  我们可以看到这是一份保单数据,一条记录存储了一个投保人的一些基本信息以及其索赔次数。我们主要想通过数据挖掘找出索赔过的投保人有什么特征,没索赔过的投保人有什么特征。我们主要关心索赔次数以及与此相关的信息,可以认为保单号、单位代号、单位名称是一些无关信息,因此从源数据中挑选年龄、年工资、单位类别、单位地区、索赔次数这几列做进一步的分析。

  再注意到年龄、年工资是数值数据(连续数据),而前面讲述的关联规则定义提到的物品集都是离散的数据,关联规则产生算法是无法处理这种连续数据的,需要做转换。为了离散化,我们根据数据值的范围对数据进行分组:年龄分为(,40〗,(40,50〗,(50,60〗,(60,70〗,(70...〗五个组,年工资分为(,6000〗,(6000,10000〗,(10000,∞) 三个组。

  至于索赔次数,我们主要关心某投保人是否索赔过,而不关心具体的索赔次数。因此,根据索赔次数产生一个新的数据列:是否索赔,原索赔次数为0,是否索赔也为0;原索赔次数大于0,是否索赔则为1。索赔次数列不再出现在以后的分析中。

  上面的数据转换后如表2 所示。
dada012_2.jpg (22176 字节)
  在转换后的数据之上,就可以挖掘关联规则了。

挖掘关联规则

  关联规则挖掘的任务是:给定一个事务数据库D,求出所有满足最小支持度和最小可信度的关联规则。
  需要指定最小支持度和最小可信度。MineSet 中默认的最小支持度为1 %。要求的最小支持度越高,挖掘出的规则越少,挖掘的过程也越快。MineSet 中默认的最小可信度为50 %。这里最小支持度和最小可信度都取默认值,然后只需按一下“执行”按钮,MineSet 就会开始挖掘。

规则可视化显示及理解

  在发现关联规则后,MineSet 自动调出可视化工具Scatter Visualize 显示结果,下图是显示结果的某个角度的图像:
dada012_3.jpg (23460 字节)
  这是一个三维的立体图,可以放大、缩小、平移、旋转以及从不同角度观看。

  三维中,有一维叫LHS(Left hand side),代表物品集A;相对的一维叫RHS(Right hand side),代表物品集B;图上的一个方长条就代表一条规则A→B,其中A 是它对应的LHS 上的值,B 是它对应的RHS 上的值。

  另一维是方长条的高度,代表规则的可信度;方长条的颜色代表作用度的大小(一种颜色对应作用度的一段区间,我们可以看到在图像的左下角给出了这种对应关系)。

  当把鼠标指向一个方长条,屏幕的左上方就会显示该方长条代表的关联规则的信息,如图中所指的方长条的信息是:

  单位类别=3 是否索赔=0;

  此规则的四个参数的具体数值分别是:支持度为60.77 %,可信度是85.18 %,期望可信度是84.00 %,作用度是1.03。

  这条规则告诉我们:在所有的投保人中,60.77 %的投保人单位类别是3 并且没有索赔过;有84.00 %的投保人没有索赔过;在单位类别是3 的投保人当中,共有85.18 %的投保人没有索赔过;作用度是1.03,说明“单位类别=3"这个条件对投保人是否索赔没有太大的影响,因为有没有这个条件,投保人的索赔率并没有太大的区别。

  从挖掘得到的关联规则中,有一些是对保险业务没有太大意义的规则,比如工资与单位类别之间的关联规则可以不考虑。

  以上挖掘得到的关联规则,LHS 和RHS 中都只包含一种物品(条件),是1 对1 的单路规则;如果允许LHS 和RHS 中包含多种物品,用同样的数据和限制条件可以得到多路规则,用记录浏览器来观察结果,如表3 所示。其中,行是一条关联规则,各列分别给出了关联规则的LHS、RHS 及四个参数的值。
dada012_4.jpg (17682 字节)
  从表3 可以看出,单位类别是3 并且年龄在40 岁到50 岁的投保人当中,93.1 %没有索赔过,明显高于期望可信度;而单位类别是2 并且年龄在40 岁到50 岁的投保人中索赔比例为84.77 %。如果有客观原因存在(例如,3 这种类别的单位可能压力不大,不很疲劳,故而发病率不高),那么保险公司就可以多针对满足这些条件的潜在客户开展工作, 从而可以减少风险,提高公司盈利。

  通过以上步骤,得到了一些关联规则。实际运用中,还应该反复作一些调整、比较,力求得到最符合实际、最能达到目标要求的结果。例如在数据准备中,年龄、工资到底如何分组比较好;数据的取舍是否合理;数据能否作进一步的转换、组合,特别是数据本身有些特点,像数据中没有索赔的比率很高(84 %),如果想要体现曾经索赔过的投保人的特征,那么应该如何去做;关联规则挖掘中,最小支持度和最小可信度、挖掘的类型(单路或多路)怎么选取;最后对关联规则如何理解、判断等。

  关联规则应用面很广,如识别欺诈。电子通信行业和信用卡公司在这方面是两个先行者,股票交易所和银行也有这方面的需要;推销商可以用关联规则帮助他们确定客户的主要来源,从而在不减少收入的前提下节约不必要的开支;商场根据关联规则计划进什么货、如何摆放货物;关联规则在医学上的应用也有重大意义,可以预测一次手术、药物检验、药物治疗的效果。

  关联规则可以广泛应用于各个领域,既可以检验行业内长期形成的知识模式,也能够发现隐藏的新规律。有效地发现、理解、运用关联规则,是完成数据挖掘任务的一个重要手段。