[发明专利]一种基于多阶段MapReduce模型的纳税人偷漏税嫌疑群组检测方法有效

专利信息
申请号: 201510920257.3 申请日: 2015-12-10
公开(公告)号: CN105574649B 公开(公告)日: 2021-05-28
发明(设计)人: 田锋;乐佳;齐天亮;吴凡;郑庆华;马天;姚昀东;兰田 申请(专利权)人: 西安交通大学
主分类号: G06Q10/06 分类号: G06Q10/06;G06Q40/00;G06Q50/26
代理公司: 西安通大专利代理有限责任公司 61200 代理人: 安彦彦
地址: 710049 陕*** 国省代码: 陕西;61
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 阶段 mapreduce 模型 纳税人 偷漏税 嫌疑 检测 方法
【权利要求书】:

1.一种基于多阶段MapReduce模型的纳税人偷漏税嫌疑群组检测方法,其特征在于,包括以下步骤:

(一)基于着色图的纳税人利益关联网络的构建

纳税人利益关联网络表示为四元组:TPIIN=(V,E,VColor,EColor);其中V={vp|p=1,…,Np}表示节点集合,其中Np表示网络中的节点个数;E表示图中所有存在边的集合,且令E={epq}={(vp,vq)|0p,q≤Np},其中epq=(vp,vq)表示存在从第p个节点到第q个节点的有向连线;节点着色集合表示为VColor={LC,CC,BC},其中LC表示法人代表颜色;CC表示企业颜色;BC表示董事颜色;通过VColor中的颜色对TPIIN中的V节点分类可得:V=L∪C∪B,其中L={vl|l=1,...,NL,NLNp}表示所有标记颜色为LC的法人代表节点,NL表示网络中的法人代表节点的个数,C={vc|c=1,...,NC,NCNp}表示所有标记颜色为CC的企业节点,NC表示网络中的企业节点的个数,B={vb|b=1,...,NB,NBNp}表示所有标记颜色为BC的董事节点,NB表示网络中的董事节点的个数,则有NL+NC+NB=Np;有向边着色集合表示为其中表示法人代表与企业之间的单向实际控制人关系;表示董事与企业之间的单向控股关系;表示企业之间的单向控股关系;表示法人代表之间双向的亲属关系;表示多个董事间的双向互锁关系;表示企业间的单向交易关系;

基于着色图的纳税人利益关联网络的构建是采用多网融合方法来生成一个纳税人利益关联网络,具体步骤如下:

Step1:从证监会、公安户籍部门、税务局获得的相关税务信息中,提取出所有的企业C、法人代表L、董事B的信息以及它们之间不同的关系信息,具体包括:企业之间的控股关系和交易关系法人代表与企业之间的实际控制人关系董事与企业之间的控股关系法人代表之间的亲属关系以及董事之间的互锁关系

Step2:利用上述6种同构关系分别构建相关的同构关系网络;

Step3:合并Step2中生成的六种同构关系网络,则构成了一个纳税人利益关联网络TPIIN;

(二)基于强连通分量的纳税人利益关联网络的约减

依据以下步骤对纳税人利益关联网络TPIIN进行逐次约减操作:

Step1:将TPIIN中法人代表与企业之间的控制人关系、董事与企业之间的控股关系与企业之间的控股关系统一归约为“利益控制关系”,用表示,即因此,由上述三种利益控制关系所分别构成的三种同构关系网络,包括企业控股关系网络IN-Net、实际控制人关系网络CL-Net以及董事控股关系网络HR-Net,也合并为一个同构关系网络,称为“利益控制关系网络”,用IC-Net表示,即IC-Net=CL-Net∪HR-Net∪IN-Net,则TPIIN简化为约减纳税人利益关联网络,用STPIIN表示,即STPIIN=IC-Net∪IR-Net∪IL-Net∪TR-Net;其中,TR-Net表示企业间的单向交易关系网络;

Step2:对于亲属关系网络IR-Net,利用Tarjan算法找到IR-Net中所有的强连通分量,这些强连通分量的集合表示为IR-Scc,然后,基于IR-Scc中的强连通分量在STPIIN上进行亲属关系聚合操作,STPIIN变为约减后的I型纳税人利益关联网络,用STPIIN-I表示;

Step3:对于互锁关系网络IL-Net,利用Tarjan算法找到其中所有的强连通分量,这些强连通分量的集合表示为IL-Scc,然后,基于IL-Scc中的强连通分量在STPIIN-I上进行互锁关系聚合操作,STPIIN-I变为约减后的II型纳税人利益关联网络,用STPIIN-II表示;

Step4:对于利益控制关系网络IC-Net,利用Tarjan算法找到其中所有的强连通分量,这些强连通分量的集合表示为IC-Scc,然后,基于IC-Scc中的强连通分量在STPIIN-II上进行利益控制关系聚合操作,STPIIN-II变为约减后的III型纳税人利益关联网络,用STPIIN-III表示;

经过上述步骤,由纳税人利益关联网络TPIIN得到网络TN,即TN=STPIIN-III;

(三)利益前件网络中的所有极大弱连通子图的发现

①生成利益前件网络Ante-TN和交易关系网络Tr-TN

对于网络TN,将其中除交易关系边之外的利益控制关系边及相应的法人代表、董事、企业节点组成的网络称为利益前件网络,用Ante-TN表示,将所有的交易关系边及相应的企业节点组成的网络称为交易关系网络,用Tr-TN表示;

②在Ante-TN中发现所有的极大弱连通子图及其相应的交易边

对于上述①中生成的利益前件网络Ante-TN,利用改进的深度优先搜索算法寻找其中所有的极大弱连通子图,这些极大弱连通子图的集合表示为subgraph={subgraph(i)|i=1,2,...,num}中,其中num表示所发现的极大弱连通子图的个数;同时,利用上述①中生成的交易关系网络Tr-TN,寻找每个极大弱连通子图subgraph(i)中的所有交易关系边,这些交易关系边的集合表示为trade={trade(i)|i=1,2,...,num};

利用改进的深度优先搜索算法寻找Ante-TN中所有的极大弱连通子图的具体步骤如下:

Step1:搜索Ante-TN中的所有入度为0的节点,存入集合node-0-L中;

Step2:访问node-0-L中的任意一个节点V,并令i=1;

Step3:得到Ante-TN所对应的无向利益前件网络,用Undirected-Ante-TN表示;

Step4:在Undirected-Ante-TN中,从V的任一邻接点W出发,若W属于node-0-L,则从node-0-L中移除W;

Step5:若W未被访问过,则访问之,转Step4;若W已被访问,转Step6;

Step6:构建从V到W方向的有向边eVW=(V,W),若eVW属于Ante-TN,则将eVW存入subgraph(i)中,若eVW属于Tr-TN,则将eVW存入trade(i)中;若eVW既不属于Ante-TN也不属于Tr-TN,则构建从W到V方向的边eWV=(W,V),若eWV属于Ante-TN,则将eWV存入subgraph(i)中,若eWV属于Tr-TN,则将eWV存入trade(i)中,并构建二元组(subgraph(i),trade(i));

Step7:若node-0-L不为空,则从中任选一个节点,令i=i+1,转Step4;若node-0-L为空,则输出(subgraph,trade),即利益前件网络Ante-TN中所有的极大弱连通子图及其对应的交易关系边所构成的二元组;

(四)基于多阶段MapReduce模型的纳税人偷漏税嫌疑群组发现

①构建模式树

Step1:Maper1端以二元组(subgraph,trade)为输入,并按照Hadoop分布式文件系统的块大小对其进行分片,设分片个数为M1,则每个分片所包含的极大弱连通子图的个数为n11=N11/M1,其中N11为subgraph中的极大弱连通子图的总数,M1为Maper1任务的个数,然后,作业调度器Job1将每个分片分别交给其对应的一个Maper1任务进行处理;

Step2:调用Maper1任务的方法函数遍历分片中的subgraph(i),计算subgraph(i)中每个节点vm的入度indegreem和出度outdegreem,将subgraph(i)中所有节点的集合表示为v(i)={vm|m=1,2,...,Nv},将subgraph(i)中所有节点的入度indegreem和出度outdegreem的集合分别表示为indegree(i)={indegreem|m=1,2,...,Nv}和outdegree(i)={outdegreem|m=1,2,...,Nv},其中,Nv表示subgraph(i)中的节点总数;构建三元组(v(i),indegree(i),outdegree(i)),首先将v(i)中的各个节点按其相应的入度indegree(i)由小到大进行排序,然后将具有相同入度的节点按其出度outdegree(i)由大到小进行排序,得到排序之后的三元组(v′(i),indegree′(i),outdegree′(i)),用sorted3Tuple(i)表示,并生成键/值对i,sorted3Tuple(i),存入集合keyValuesList1中,keyValuesList1暂时放在本地的内存缓冲区,若缓冲区存满,则将缓冲区的数据写入本地创建的溢写文件中;

Step3:对于keyValuesList1中的所有键/值对,首先在本地进行合并,并按键的值进行排序,然后通过分区类Partitioner1将keyValuesList1中的键/值对分为R1个分区,每个分区包含的键/值对的个数为n12=N12/R1,其中N12为keyValuesList1中的键/值对的总数,R1为Reducer1任务的个数,每个分区分别交给其对应的一个Reducer1任务进行处理;

Step4:Reducer1任务接收Maper1任务传来的有序数据,并顺序读取,把具有相同键的键/值对合并为一类,形成新的键/值对i,sorted3TupleList,其中,sorted3TupleList为同一个键所对应的所有三元组sorted3Tuple(i)的集合,合并后的值传给Reducer1任务的方法函数,执行对应的算法;

Step5:Reducer1任务的方法函数构建模式树的过程如下,其中,所有的模式树存入patternTreeList={patternTree(i)|i=1,2,...,num}中:

Step5.1:对键值为i的键/值对i,sorted3TupleList,创建一个根节点rooti

Step5.2:遍历所有输入的i,sorted3TupleList,对于sorted3TupleList中的每个三元组sorted3Tuple(i),根据indegree′(i)找到v′(i)中所有入度为0的节点,存入集合startNodes(i)中,同时,将rooti到startNodes(i)中的节点的所有边存入patternTree(i)中;

Step5.3:根据outdegree′(i)判断startNodes(i)中是否存在出度不为0的节点,若存在,转Step5.4,若不存在,则输出patternTree(i),存入模式树列表patternTreeList中;

Step5.4:遍历subgraph(i)和trade(i),判断是否存在以这些出度不为0的节点为起始节点的边,若存在,则将这些边存入集合arcs(i)中,转Step5.5,若不存在,则输出patternTree(i),存入模式树列表patternTreeList中;

Step5.5:将arcs(i)中的边的终止节点存入集合endNodes(i)中,并将arcs(i)中的边存入patternTree(i)中,然后令startNodes(i)=endNodes(i),并清空arcs(i)和endNodes(i),转Step5.4;

②生成模式库

Step1:Maper2端将第1个MapReduce过程输出的模式树列表patternTreeList按照Hadoop分布式文件系统的块大小划分为M2个分片,每个分片包含的模式树的个数为n21=N21/M2,其中N21为patternTreeList中的模式树的总数,M2为Maper2任务的个数,然后,作业调度器Job2将每个分片分别交给其对应的一个Maper2任务进行处理;

Step2:调用Maper2任务的方法函数从每个模式树的根节点rooti开始遍历,遍历历经节点Ar,若遇到出度为0的节点Ar,则生成的模式(rooti,A1,...,Ar),用oldPatternBase1表示,并形成键/值对rooti,oldPatternBase1,若首次到达某条交易边的终止节点v,则生成模式(rooti,A1,...,Ar)→v,用oldPatternBase2表示,并形成键/值对rooti,oldPatternBase2,将上述两种键/值对均存入集合oldKeyValuesList中,oldKeyValuesList暂时放在本地的内存缓冲区,若缓冲区存满,则将缓冲区的数据写入本地创建的溢写文件中;

Step3:对于oldKeyValuesList中的所有键/值对,首先在本地进行合并,并按键的值进行排序,然后分区类Partitioner2将oldKeyValuesList中的键/值对分为R2个分区,每个分区包含的键/值对的个数为n22=N22/R2,其中N22为oldKeyValuesList中的键/值对的总数,R2为Reducer2任务的个数,每个分区分别交给其对应的一个Reducer2任务进行处理;

Step4:Reducer2任务接收Maper2任务传来的有序数据并顺序读取,把具有相同键的键/值对合并为一类,形成新的键/值对rooti,oldPatternBaseList,其中,oldPatternBaseList为同一个键所对应的模式的集合,合并后的值传给Reducer2任务的方法函数,执行对应的算法;

Step5:调用Reducer2任务的方法函数遍历所有输入的rooti,oldPatternBaseList,对于oldPatternBaseList中的每个模式,包括oldPatternBase1和oldPatternBase2,删掉其中的根节点rooti,生成模式(A1,...,Ar)和(A1,...,Ar)→v,分别用patternBase1与patternBase2表示,均存入模式列表patternBaseList中;

③生成键值对列表

Step1:Maper3端将第2个MapReduce过程输出的模式列表patternBaseList按照Hadoop分布式文件系统的块大小划分为M3个分片,每个分片包含的模式的个数为n31=N31/M3,其中N31为patternBaseList中的模式的总数,M3为Maper3任务的个数,然后,作业调度器Job3将每个分片分别交给其对应的一个Maper3任务进行处理;

Step2:调用Maper3任务的方法函数提取每个模式patternBase的前件中的所有元素(A1,...,Ar)及后件元素v分别作为键,生成N1个键/值对A1,patternBase,…,Ar,patternBase,v,patternBase,其中N1为patternBase中的节点个数,将这些键/值对存入集合keyValuesList3中,keyValuesList3暂时放在本地的内存缓冲区,若缓冲区存满,则将缓冲区的数据写入本地创建的溢写文件中;

Step3:对于keyValuesList3中的所有键/值对,首先在本地进行合并,并按键的值进行排序,然后分区类Partitioner3将keyValuesList3中的键/值对分为R3个分区,每个分区包含的键/值对的个数为n32=N32/R3,其中N32为keyValuesList3中的键/值对的总数,R3为Reducer3任务的个数,每个分区分别交给其对应的一个Reducer3任务进行处理;

Step4:Reducer3任务接收Maper3任务传来的有序数据并顺序读取,将具有相同键w的键/值对合并为一类,形成新的键/值对w,newPatternBaseList,其中,newPatternBaseList为同一个键所对应的所有值的集合,合并后的值传给Reducer3任务的方法函数,执行对应的算法;

Step5:调用Reducer3任务的方法函数遍历所有输入的w,newPatternBaseList,对于newPatternBaseList中的每个模式patternBase,若w为其前件元素,则将patternBase放入前件列表r_patternBaseList中;若w为其后件元素,则将patternBase放入后件列表v_patternBaseList中,最后,对每一个键w生成键/值对w,r_patternBaseList或w,v_patternBaseList;

④利用键值对列表进行前件匹配

Step1:Maper4端将第3个MapReduce过程的输出按照Hadoop分布式文件系统的块大小划分为M4个分片,每个分片包含的模式的个数为n41=N41/M4,其中N41为输入的所有键/值对的个数,M4为Maper4任务的个数,然后,作业调度器Job4将每个分片分别交给其对应的一个Maper4任务进行处理;

Step2:对输入的每一个键w调用Maper4任务的方法函数,首先判断其对应的前件列表r_patternBaseList和后件列表v_patternBaseList是否均存在,若均存在,则每次从r_patternBaseList和v_patternBaseList中各取出一个模式patternBase1和patternBase2进行匹配,直到所有组合匹配完毕;反之,则不考虑该键/值对;其中,上述匹配原则为:若对应的两个模式patternBase1和patternBase2存在相同的前件元素,则匹配成功,将patternBase1和patternBase2放入模式二元组(patternBase1,patternBase2)中,并生成键/值对w,(patternBase1,patternBase2),将这些键/值对存入集合keyValuesList4中,keyValuesList4暂时放在本地的内存缓冲区,若缓冲区存满,则将缓冲区的数据写入本地创建的溢写文件中;

Step3:对于keyValuesList4中的所有键/值对,首先在本地进行合并,并按键的值进行排序,然后分区类Partitioner4将keyValuesList4中的键/值对分为R4个分区,每个分区包含的键/值对的个数为n42=N42/R4,其中N42为keyValuesList4中的键/值对的总数,R4为Reducer4任务的个数,每个分区分别交给其对应的一个Reducer4任务进行处理;

Step4:Reducer4任务接收Maper4任务传来的有序数据并顺序读取,把具有相同键的键/值对合并为一类,形成新的键/值对w,patternBasePair,其中,patternBasePair为同一个键所对应的所有模式二元组(patternBase1,patternBase2)的集合,合并后的值传给Reducer4任务的方法函数,执行对应的算法;

Step5:对输入w,patternBasePair调用Reducer4任务的方法函数,取出patternBasePair中的二元组(patternBase1,patternBase2),找到patternBase1和patternBase2形成的弱连通子图,将其中包含的所有节点存入集合wccii中,然后将wccii作为输出存入偷漏税嫌疑群组列表susGroups中,即susGroups={wccii|ii=1,2,...,p},其中p表示弱连通子图的数量。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201510920257.3/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top