一种基于多阶段MapReduce模型的纳税人偷漏税嫌疑群组检测方法

文档序号:9811173阅读:271来源:国知局
一种基于多阶段MapReduce模型的纳税人偷漏税嫌疑群组检测方法
【技术领域】
[0001]本发明涉及一种基于多阶段MapReduce模型的纳税人偷漏税嫌疑群组检测方法。
【背景技术】
[0002]随着信息技术的不断发展,国家税务信息化已初步建立了统一的电子申报、缴税、 审批的一体化技术支撑与服务平台,并生成海量税务数据。但是对于企业偷税漏税的分析 都是人工分析,且税务数据跨区域异质存储,难以发现纳税人之间隐式的利益关联。
[0003 ]专利"基于纳税人利益关联网络模型的偷漏税关联企业识别方法" (CN103383767B)利用着色加权图进行建模,并给出了基于边和节点颜色的五种聚合算子, 结合这些聚合算子发现纳税人利益关联最小网络,同时对基于着色加权图的纳税人利益关 联网络进行简化;然后,引入了节点环介数的概念,在简化后的网络中发现最大介数约束的 有向闭环集的纳税人利益关联集团,最后,利用企业之间的交易行为权重,识别纳税人利益 关联最小网络和纳税人利益关联集团中的偷漏税行为。
[0004] 专利"一种基于纳税人利益关联网络的可疑纳税人识别方法"(CN104103011B)提 出了一种基于纳税人利益关联网络的拓扑特征来识别可疑纳税人的方法。首先,对纳税人 利益关联网络进行拓扑特征的分析,采用Motif寻找频繁子图,并根据度中心度和聚集系数 拓扑指标寻找正常和可疑纳税人的差异;其次,选择拓扑特征,使用C4.5分类器实验,从而 实现自动识别可疑纳税人的功能。
[0005] 以上现有的纳税人偷漏税嫌疑群组检测方法存在如下问题:1.所构建纳税人利益 关联网络没有考虑大规模节点和复杂的边关系导致的图处理时间和空间复杂度高的问题; 2.图约减与图挖掘方面存在模式组合爆炸问题;3.专利CN104103011B难以发现非motif结 构(如五边形、六边形等)的偷漏税企业群组。以上三点导致了它们必然在处理大规模图数 据时效率低下。

【发明内容】

[0006] 为克服现有技术中的问题,本发明的目的在于提供基于多阶段MapReduce模型的 纳税人偷漏税嫌疑群组检测方法。
[0007] 为了达到以上目的,本发明是采取如下技术方案予以实现的:
[0008] -种基于多阶段MapReduce模型的纳税人偷漏税嫌疑群组检测方法,包括以下步 骤:
[0009] ( - )基于着色图的纳税人利益关联网络的构建
[0010] 纳税人利益关联网络表示为四元组1?1預=(¥3,(:〇1(^3(:〇1(^);其中¥={¥1) p=l,···,NP}表示节点集合,其中Np表示网络中的节点个数;E表示图中所有存在边的集合, 且令E = {eM} = {(vp,Vq) | 0<p,q < Np},其中eM = (vp,Vq)表示存在从第p个节点到第q个节点 的有向连线;节点着色集合表示为VCo 1 or = {LC,CC,BC},其中LC表示法人代表颜色;CC表示 企业颜色;BC表示董事颜色;通过VColor中的颜色对TPIIN中的V节点分类可得:V = L U C U 8,其中1^={¥1|1 = 1,'",见,汍〈化}表示所有标记颜色为]^的法人代表节点,汍表示网络中的 法人代表节点的个数,C= {ν。I c = l,···,Nc,N(;〈NP}表示所有标记颜色为CC的企业节点,Nc表 示网络中的企业节点的个数,B = {vb | b = 1,…,Nb,Nb〈Np }表示所有标记颜色为BC的董事节 点,Nb表示网络中的董事节点的个数,则有Nl + Nc + Nb = NP;有向边着色集合表示为 EC dor = ///?,成?,7^丨,其中表示法人代表与企业之间的单向实际控制人关 系;///?表示董事与企业之间的单向控股关系;表示企业之间的单向控股关系;备表示法 人代表之间双向的亲属关系;丘表示多个董事间的双向互锁关系;1?表示企业间的单向交 易关系;
[0011] 基于着色图的纳税人利益关联网络的构建是采用多网融合方法来生成一个纳税 人利益关联网络,具体步骤如下:
[0012] Stepl:从证监会、公安户籍部门、税务局获得的相关税务信息中,提取出所有的企 业C、法人代表L、董事B的信息以及它们之间不同的关系信息,具体包括:企业之间的控股关 系士和交易关系法人代表与企业之间的实际控制人关系董事与企业之间的控股 关系,法人代表之间的亲属关系/?,以及董事之间的互锁关系£;
[0013] Step2:利用上述6种同构关系分别构建相关的同构关系网络;
[0014] Step3:合并Step2中生成的六种同构关系网络,则构成了一个纳税人利益关联网 络TPIIN;
[0015] (二)基于强连通分量的纳税人利益关联网络的约减
[0016] 依据以下步骤对纳税人利益关联网络TPIIN进行逐次约减操作:
[0017] Stepl:将TPIIN中法人代表与企业之间的控制人关系、董事与企业之间的控股关 系与企业之间的控股关系统一归约为"利益控制关系",用f表示,即= 因 此,由上述三种利益控制关系所分别构成的三种同构关系网络,包括企业控股关系网络IN-Net、实际控制人关系网络CL-Net以及董事控股关系网络HR-Net,也合并为一个同构关系网 络,称为"利益控制关系网络",用I C-Net表示,即IC-Net = CL-Net U HR-Net U IN-Net,则 TPIIN简化为约减纳税人利益关联网络,用STPIIN表示,即STPIIN= IC-Net U IR-Net U IL-Net U TR-Net;
[0018] Step2:对于亲属关系网络IR-Net,利用Tar jan算法找到IR-Net中所有的强连通分 量,这些强连通分量的集合表示为IR-Scc,然后,基于IR-Scc中的强连通分量在STPIIN上进 行亲属关系聚合操作,STPIIN变为约减后的I型纳税人利益关联网络,用STPIIN-Ι表示;
[0019] 3丨叩3:对于互锁关系网络11^-此丨,利用了&幻 &11算法找到其中所有的强连通分量, 这些强连通分量的集合表示为IL-Scc,然后,基于IL-Scc中的强连通分量在STPIIN-Ι上进 行互锁关系聚合操作,STPIIN-Ι变为约减后的II型纳税人利益关联网络,用STPIIN-Π 表 示;
[0020] Step4:对于利益控制关系网络IC-Net,利用Tar jan算法找到其中所有的强连通分 量,这些强连通分量的集合表示为IC-Scc,然后,基于IC-Scc中的强连通分量在STPIIN-II 上进行利益控制关系聚合操作,STPIIN-II变为约减后的III型纳税人利益关联网络,用 STPIIN-III 表示;
[0021] 经过上述步骤,由纳税人利益关联网络TPIIN得到网络TN,即TN=STPIIN-III; [0022](三)利益前件网络中的所有极大弱连通子图的发现 [0023] ①生成利益前件网络Ante-TN和交易关系网络Tr-TN
[0024]对于网络TN,将其中除交易关系边之外的利益控制关系边及相应的法人代表、董 事、企业节点组成的网络称为利益前件网络,用Ante-TN表示,将所有的交易关系边及相应 的企业节点组成的网络称为交易关系网络,用Tr-TN表示;
[0025]②在Ante-TN中发现所有的极大弱连通子图及其相应的交易边 [0026]对于上述①中生成的利益前件网络Ante-TN,利用改进的深度优先搜索算法寻找 其中所有的极大弱连通子图,这些极大弱连通子图的集合表示为subgraph ={ subgraph (i) i = l, 2,…,num}中,其中num表示所发现的极大弱连通子图的个数;同时,利用上述①中生 成的交易关系网络Tr-TN,寻找每个极大弱连通子图subgraph( i)中的所有交易关系边,这 些交易关系边的集合表示为trade= {trade(i) | i = l,2,…,num};
[0027]利用改进的深度优先搜索算法寻找Ante-TN中所有的极大弱连通子图的具体步骤 如下:
[0028] Stepl:搜索Ante-TN中的所有入度为0的节点,存入集合node-0-L中;
[0029] Step2:访问node-0-L中的任意一个节点V,并令i = l;
[0030] Step3:得到Ante-TN所对应的无向利益前件网络,用Undirected-Ante-TN表示; [0031 ] Step4:在Undirected-Ante-ΤΝ中,从V的任一邻接点W出发,若W属于node-O-L,则 从node _0_L中移除W;
[0032] Step5:若W未被访问过,则访问之,转Step4;若W已被访问,转Step6;
[0033] Step6:构建从V到W方向的有向边ew=(V,W),若evw属于Ante-TN,则将evw存入 subgraph(i)中,若evw属于Tr_TN,则将evw存入trade(i)中;若evw既不属于Ante-TN也不属于 Tr-TN,则构建从W至ijV方向的边ewv= (W,V),若ewv属于Ante-TN,则将ewv存入subgraph(i)中, 若ewv属于Tr-TN,则将ewv存入trade(i)中,并构建二元组(subgraph(i),trade(i));
[0034] Step7:若node-O-L不为空,则从中任选一个节点,令i = i+Ι,转Step4;若node-O-L 为空,则输出(subgraph,trade),即利益前件网络Ante-TN中所有的极大弱连通子图及其对 应的交易关系边所构成的二元组;
[0035](四)基于多阶段MapReduce模型的纳税人偷漏税嫌疑群组发现 [0036]①构建模式树
[0037] Stepl :Maperl端以二元组(subgraph,trade)为输入,并按照Hadoop分布式文件系 统的块大小对其进行分片,设分片个数为Mi,则每个分片所包含的极大弱连通子图的个数 为ηιι = Νιι/Μι,其中Νιι为subgraph中的极大弱连通子图的总数,Μι为Maperl任务的个数,然 后,作业调度器Jobl将每个分片分别交给其对应的一个Maperl任务进行处理;
[0038] Step2:调用Maperl任务的方法函数遍历分片中的subgraph(i),计算subgraph(i) 中每个节点Vm的入度indegreem和出度outdegreem,将subgraph(i)中所有节点的集合表示 为丫(:0 = 1>1!1|111=1,2,'",1},将81^8以口11(;〇中所有节点的入度;[11(16 816 6111和出度 outdegreem的集合分另lj表示为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)由大到小进行排 序,得到排序之后的三元组(i),indegree' (i),outdegree' (i)),用sorted3Tuple( i)表 不,并生成键/值对〈i,sorted3Tuple(i )>,存入集合keyValuesListl 中,keyValuesListl暂 时放在本地的内存缓冲区,若缓冲区存满,则将缓冲区的数据写入本地创建的溢写文件中; [00 39] Step3:对于keyValuesListl中的所有键/值对,首先在本地进行合并,并按键的值 进行排序,然后通过分区类?81'1:;[1:;[01161'1将1^5^3111681^81:1中的键/值对分为1?1个分区,每 个分区包含的键/值对的个数为rmrNu/Ri,其中N12为keyValuesListl中的键/值对的总 数,Ri为Reducer 1任务的个数,每个分区分别交给其对应的一个Reducer 1任务进行处理; [0040] Step4:Reducerl任务接收Maperl任务传来的有序数据,并顺序读取,把具有相同 键的键/值对合并为一类,形成新的键/值对<i,sorted3TupleList>,其中, sorted3TupleList为同一个键所对应的所有三元组sorted3Tuple(i)的集合,合并后的值 传给Reducerl任务的方法函数,执行对应的算法;
[0041 ] Step5:RedUCerl任务的方法函数构建模式树的过程如下,其中,所有的模式树存 入patternTreeList= {patternTree(i) | i = l,2,…,num}中:
[0042] Step5.1:对键值为i的键/值对<i,sorted3TupleList>,创建一个根节点rooti;
[0043] Step5 · 2:遍历所有输入的<i,sorted3TupleList>,对于sorted3TupleList 中的每 个三元组sorted3Tuple(i),根据indegree' (i)找到ν' (i)中所有入度为0的节点,存入集合 startNodes(i)中,同时,将rooti到startNodes(i)中的节点的所有边存入patternTree(i) 中;
[0044] Step5 · 3:根据outdegreV (i)判断startNodes(i)中是否存在出度不为0的节点, 若存在,转Step5 · 4,若不存在,则输出patternTree(i),存入模式树列表patternTreeList 中;
[0045] Step5.4:遍历subgraph(i)和trade(i),判断是否存在以这些出度不为0的节点为 起始节点的边,若存在,则将这些边存入集合arcs ( i )中,转Step5.5,若不存在,则输出 patternTree(i),存入模式树列表patternTreeList中;
[0046] Step5 · 5:将arcs (i)中的边的终止节点存入集合endNodes (i)中,并将arcs (i)中 的边存入patternTree (i )中,然后令startNodes (i ) = endNodes (i ),并清空arcs (i)和 endNodes(i),转Step5·4;
[0047] ②生成模式库
[0048] Stepl :Maper2端将第1个MapReduce过程输出的模式树列表patternTreeList按照 Hadoop分布式文件系统的块大小划分为M2个分片,每个分片包含的模式树的个数为n2i = Ν21/Μ2,其中N2i为patternTreeList中的模式树的总数,M2为Maper2任务的个数,然后,作业 调度器J〇b2将每个分片分别交给其对应的一个Maper2任务进行处理;
[0049] Step2:调用Maper2任务的方法函数从每个模式树的根节点rooti开始遍历,遍历 历经节点4〖,若遇到出度为0的节点4〖,则模式(1'〇〇1^,41,'"人),用〇1(1?31^1'111^61表示, 并形成键/值对〈1'0〇1^,〇1(1?31^61'111^861>,若首次到达某条交易边的终止节点¥,则生成模 式(rooti,Ai,…,A r)-v,用 oldPatternBase2 表示,并形成键 / 值对〈rooti, oldPatternBase2>,将上述两种键/值对均存入集合oldKeyValuesList中, oldKeyValuesList暂时放在本地的内存缓冲区,若缓冲区存满,则将缓冲区的数据写入本 地创建的溢写文件中;
[0050] Step3:对于oldKeyValuesLi st中的所有键/值对,首先在本地进行合并,并按键的 值进行排序,然后分区类Part it ioner2将oldKeyValuesList中的键/值对分为R2个分区,每 个分区包含的键/值对的个数为n22 = N22/R2,其中N22为oldKeyValuesList中的键/值对的总 数,R2为Reducer2任务的个数,每个分区分别交给其对应的一个Reducer2任务进行处理; [00511 Step4:ReduCer2任务接收Maper2任务传来的有序数据并顺序读取,把具有相同键 的键/值对合并为一类,形成新的键/值
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1