最具影响力的数字化技术在线社区

bdhhs 发表于 2015-8-11 19:52:05

Smartbi数据挖掘示例--异常诊断

该案例介绍是聚类算法的另外一种灵活运用。采用的是聚类的思想对异常对象进行判断,主要思想是这样的:首先,我们使用聚类算法将对象(每条记录为一个对象)分成两类,其次,计算每一个对象到类中心的距离,距离类中小较远的点即为异常点。工作流如下:
http://wiki.smartbi.com.cn/download/attachments/13599862/worddavceb9445dacad0145d063ac097aef51c9.png?version=1&modificationDate=1432784159000&api=v2
1、商业目标业务理解:该案例所用的数据是一份关于农业补贴的数据,如下:
http://wiki.smartbi.com.cn/download/attachments/13599862/worddave2c71959ff3f77426056c04bc8940b10.png?version=1&modificationDate=1432784159000&api=v2

表1:数据视图
其中,农业补贴数据包括住户姓名、所在区域、拥有田地的大小、降雨量、田地质量水平、田地收入、主要农作物、申请补贴的类型和申请补贴的金额。
业务目标:分析哪些住户领用补贴存在异常,并输出可疑的名单。
数据挖掘目标:建立异常检测模型,输出可疑名单。

注:该案例是一个典型的以业务驱动为核心的数据挖掘项目。此案例从业务入手,探索分析思路,比如,从领用次数来看,正常情况下每户都会一次领用全部补贴,因此如果领用次数在2次以上的住户即可认为存在可疑。其次,每家的田地收入主要有两方面来源,一个是农作物收入,一个是农业补贴收入。因此,如果田地收入明显超出预计田地收入,则很可能是过多的领用农业补贴。另外,判断领用是否可疑的更直接的办法是直接判断申请的补贴金额是否过多。最后,我们采用聚类算法判断异常。根据以上四个思路展开以下分析。
2、领用次数异常分析
http://wiki.smartbi.com.cn/download/attachments/13599862/worddavb0716412c777f5ac85c6b921c4061010.png?version=1&modificationDate=1432784160000&api=v2

第一步,使用平面文件节点或者CSV导入节点读取农业补贴数据。
http://wiki.smartbi.com.cn/download/attachments/13599862/worddav6610c7321f55486bc15f9c870ccf8259.png?version=1&modificationDate=1432784160000&api=v2

第二步,使用计数节点统计每个住户领用的次数。由于
http://wiki.smartbi.com.cn/download/attachments/13599862/worddavfe6a0f2747dddf3e0ff7884c6134e1a5.png?version=1&modificationDate=1432784160000&api=v2

第三步,使用行过滤节点筛选出领用次数大于1的名单。节点配置如下:
http://wiki.smartbi.com.cn/download/attachments/13599862/worddav09e9361b1b215dd7c2d371d72cb4d781.png?version=1&modificationDate=1432784160000&api=v2

过滤后的结果如下:
http://wiki.smartbi.com.cn/download/attachments/13599862/worddavfa4640fc2c4c05a50268f143eba8b963.png?version=1&modificationDate=1432784160000&api=v2

第四步,使用列重命名节点将count重命名为领用次数。配置如下:
http://wiki.smartbi.com.cn/download/attachments/13599862/worddava1a02440b0f78092d02e34cd8f87d95e.png?version=1&modificationDate=1432784161000&api=v2

第五步,使用交互表格节点输出领用次数异常名单:
http://wiki.smartbi.com.cn/download/attachments/13599862/worddav1aa8fe362a98b6a6f52f551a910b49ac.png?version=1&modificationDate=1432784161000&api=v2

表2:可疑名单13、田地收入异常分析
http://wiki.smartbi.com.cn/download/attachments/13599862/worddav8c2c37a3b4ce544b6d28358f84d2141a.png?version=1&modificationDate=1432784161000&api=v2

分析田地收入是否存在异常的核心就是估计每个住户的预计田地收入,计算实际田地收入与预计田地收入的差异。
如何计算预计田地收入呢?如果有明确的规则可以直接计算出每个住户的田地收入,则可以直接与实际值对比,但是由于田地收入所受影响因素较多,比如降雨量、土地质量、种植的农作物等,所以很难计算出准确的预计值。不过,我们可以估计一个值,这里是通过强相关的原理,计算一个与预计田地收入强相关的变量,以此变量作为预计田地收入。而这里强相关的变量可疑使用使用田地收入的主要影响因素相乘(降雨量、田地质量、田地大小)得到。
操作如下:
第一步,使用基于规则行过滤节点去除已经排除的两个住户。节点配置如下:

http://wiki.smartbi.com.cn/download/attachments/13599862/worddav2f7feb86dfe6f10f9882521afc08dd57.png?version=1&modificationDate=1432784161000&api=v2

第二步,使用Java代码段(简单)节点生成预期收入字段。节点配置如下:
http://wiki.smartbi.com.cn/download/attachments/13599862/worddavd8b1f1a9876b6f6dd9268e365a5e7432.png?version=1&modificationDate=1432784161000&api=v2

第三步,使用散点图节点验证预计收入和实际田地收入的相关性。如下图中所示,两个变量之间呈强正相关性,这验证了我们计算预计收入方法的合理性:
http://wiki.smartbi.com.cn/download/attachments/13599862/worddavbfe3b749278dd5e302b015639996701d.png?version=1&modificationDate=1432784162000&api=v2

图1:预计收入和实际田地收入相关性分析
第四步,使用Java代码段(简单)节点生成偏移字段,计算实际田地收入和预计收入的差异。节点配置如下:
http://wiki.smartbi.com.cn/download/attachments/13599862/worddav3587ae3172e0a75477c9948d5a99e537.png?version=1&modificationDate=1432784162000&api=v2

第五步,使用直方图看偏移的分布趋势,直方图配置如下:
http://wiki.smartbi.com.cn/download/attachments/13599862/worddavcd568f5208ccc2258e621c9737e8b651.png?version=1&modificationDate=1432784162000&api=v2

从执行结果可以看出,偏移字段有少数分布在尾部,这些即是偏移较大的对象,也就是可疑对象,如下图所示:
http://wiki.smartbi.com.cn/download/attachments/13599862/worddav765baf29c685fdff8597fcc2abbbb356.png?version=1&modificationDate=1432784162000&api=v2

第六步,输出可疑名单。
首先,使用行过滤节点筛选出偏移大于20的记录。配置如下:
http://wiki.smartbi.com.cn/download/attachments/13599862/worddavf1f2934dd99ae4c6f4fd5868fd3be00b.png?version=1&modificationDate=1432784163000&api=v2

其次,使用交互表格节点查看可疑名单。如下:
http://wiki.smartbi.com.cn/download/attachments/13599862/worddav99acb78374f06ab0037802217c35d179.png?version=1&modificationDate=1432784163000&api=v2

第七步,分析偏移的分布,及与申请类型的相关性。
在这里,我们使用直方图节点可视化发现,节点配置如下所示:
http://wiki.smartbi.com.cn/download/attachments/13599862/worddavdfe0ecd399e112da795fd0b170c1ad6b.png?version=1&modificationDate=1432784163000&api=v2

由执行后的结果可见,申请类型为B的偏移都在20以内(如下图所示),这说明这类申请类型应该不存在欺诈,由此可以再从业务中印证是否这种申请类型的规定没有漏洞,本身就无漏洞可钻,如果确实是,我们就没有必要再分析这种申请类型。
http://wiki.smartbi.com.cn/download/attachments/13599862/worddav00d76617e4b1ebf29636d563d8a1cedb.png?version=1&modificationDate=1432784163000&api=v2

图2:偏移直方图分布4、申请金额异常分析
http://wiki.smartbi.com.cn/download/attachments/13599862/worddavb7d7338cd4a69f8256ef9ac2ac644788.png?version=1&modificationDate=1432784164000&api=v2

分析申请金额是否存在异常的核心就是估计每个住户的预计申请金额,计算实际申请金额与预计申请金额的差异。
如何计算预计申请金额呢?这里我们不能重复使用上一节使用的方法,因为这里我们没有合适的与申请金额强相关的变量。因此,我们采用了另外一个办法,就是使用预测模型,根据输入变量预测每个住户的申请金额,以模型预测值作为申请金额的估计值。
另外,在上一节中分析得出了以下结论:如图2所示,申请类型B不易进行欺诈。因此,我们接下来可以放弃对申请类型B的分析。
操作如下:
第一步,使用行过滤节点和名义值行过滤节点过滤申请类型为B的住户。节点配置如下:
http://wiki.smartbi.com.cn/download/attachments/13599862/worddav8c97640209c708bd4d2c0212ad87a671.png?version=1&modificationDate=1432784164000&api=v2

第二步,使用列过滤节点过滤不适合参与建模的字段。节点配置如下:
http://wiki.smartbi.com.cn/download/attachments/13599862/worddav4ad130ddbf3b60563495c13ab4229b26.png?version=1&modificationDate=1432784164000&api=v2

第三步,使用线性回归算法建立以申请金额为目标的预测模型。节点配置如下:
http://wiki.smartbi.com.cn/download/attachments/13599862/worddav7093e83407bb3c09c519349c8c40b868.png?version=1&modificationDate=1432784165000&api=v2

http://wiki.smartbi.com.cn/download/attachments/13599862/worddav28b75c3b03f9aaa2aa39b766417a4e3a.png?version=1&modificationDate=1432784165000&api=v2

第四步,使用数值评估节点评估训练模型的准确性。评估结果如下:
http://wiki.smartbi.com.cn/download/attachments/13599862/worddavf7780d1dc813e3fe1dd9ed4440bd4923.png?version=1&modificationDate=1432784165000&api=v2

第五步,使用Java代码段(简单)节点派生申请金额差异字段。节点配置如下:
http://wiki.smartbi.com.cn/download/attachments/13599862/worddav537a0772bfc402edb5065ad3966c3fa9.png?version=1&modificationDate=1432784165000&api=v2

第六步,可视化分析。
首先,使用直方图节点可视化发现,节点配置如下所示:
http://wiki.smartbi.com.cn/download/attachments/13599862/worddav6d3d4a948d66a2533a6a57188565267c.png?version=1&modificationDate=1432784165000&api=v2

结果展示如下:
http://wiki.smartbi.com.cn/download/attachments/13599862/worddavd87dc0957349be1db28e5bfddf330fd7.png?version=1&modificationDate=1432784166000&api=v2

第七步,生成可疑名单。
首先,使用行过滤节点筛选出申请金额差异大于20的住户。节点配置如下:
http://wiki.smartbi.com.cn/download/attachments/13599862/worddav07787fda986f67be380b3fedad189ad3.png?version=1&modificationDate=1432784166000&api=v2

其次,使用交互表格节点查询可疑名单,如下所示:
http://wiki.smartbi.com.cn/download/attachments/13599862/worddav4251ee92c5a52d08ca456cd9839c608d.png?version=1&modificationDate=1432784166000&api=v2

表4:可疑名单35、聚类法异常分析
http://wiki.smartbi.com.cn/download/attachments/13599862/worddav4718b2d63c38a3f845cacc2b9feda75e.png?version=1&modificationDate=1432784166000&api=v2

第一步,使用计算距离矩阵节点计算距离矩阵。节点配置如下:
http://wiki.smartbi.com.cn/download/attachments/13599862/worddavf1a3054cb0cc5e794f207f87cfa939ec.png?version=1&modificationDate=1432784167000&api=v2

第二步,计算类中心。
首先,使用列过滤节点过滤掉其余变量,仅保留表示距离矩阵的Distance字段。
http://wiki.smartbi.com.cn/download/attachments/13599862/worddav4a9451b6aefee0f2eae0369b5852a156.png?version=1&modificationDate=1432784167000&api=v2

其次,使用K-Mediods算法计算类中小。配置如下:
http://wiki.smartbi.com.cn/download/attachments/13599862/worddav1300d513dd7d5ea6e8e65a065e78d1d8.png?version=1&modificationDate=1432784167000&api=v2

执行后,右击聚类节点,选择查看"中心和大小",弹出如下窗口:
http://wiki.smartbi.com.cn/download/attachments/13599862/worddav46eaff9ea12495f96361b7643c0b687a.png?version=1&modificationDate=1432784167000&api=v2

即两个类中心分别是id812和id805。


第三步,使用距离矩阵对提取节点计算类中心到每条记录的距离,节点配置如下:
http://wiki.smartbi.com.cn/download/attachments/13599862/worddav768cb798e320350bf5d6bba36e2cfd81.png?version=1&modificationDate=1432784167000&api=v2

第四步,生成到类中心id805的最远记录名单。
首先,使用行过滤节点仅保留类中心id805。节点配置如下:
http://wiki.smartbi.com.cn/download/attachments/13599862/worddav6ac0f0bd40e10e19168f59ce85c77a7e.png?version=1&modificationDate=1432784168000&api=v2

其次,使用排序节点对distance字段进行降序排列,配置如下:
http://wiki.smartbi.com.cn/download/attachments/13599862/worddav103e69960b6f717454c0bd3b0e88283d.png?version=1&modificationDate=1432784168000&api=v2

然后,再次使用行过滤节点筛选距离大于600000的记录,节点配置如下:
http://wiki.smartbi.com.cn/download/attachments/13599862/worddav2c27a63dc8a662d7d87b567c89a40a1a.png?version=1&modificationDate=1432784168000&api=v2
第五步,同理生成到类中心id812的最远记录名单。
第六步,生成可疑名单4。
首先,使用追加节点(默认配置)将两个类中的可疑对象合并到一起。
其次,使用交互表格节点查询可疑名单,并定义为可疑名单4。如下图所示:
http://wiki.smartbi.com.cn/download/attachments/13599862/worddav7b2368df049d1944bd58cd9b6e38de55.png?version=1&modificationDate=1432784168000&api=v2
6、小结以上我们用了四种方法去发现异常,得到了四个可疑名单。而这四个名单中重复度越高的对象,可疑性越大。另外,我们最终输出的可疑名单,应该以上四个名单的并集。还有一点要注意的是,我们做异常分析,诊断的是可疑人员,而不是欺诈分子。我们通过数据挖掘的技术只是将搜索的范围尽可能缩小了,降低了搜索的难度,这只是完成了抓欺诈分子的第一步,接下来要从更多的方面去求证,判断名单中的人是不是存在欺诈。
本文源自:http://wiki.smartbi.com.cn/pages/viewpage.action?pageId=13599862

页: [1]
查看完整版本: Smartbi数据挖掘示例--异常诊断