CN108596750A - 一种基于并行关联规则挖掘的发票虚开识别方法 - Google Patents
一种基于并行关联规则挖掘的发票虚开识别方法 Download PDFInfo
- Publication number
- CN108596750A CN108596750A CN201810436908.5A CN201810436908A CN108596750A CN 108596750 A CN108596750 A CN 108596750A CN 201810436908 A CN201810436908 A CN 201810436908A CN 108596750 A CN108596750 A CN 108596750A
- Authority
- CN
- China
- Prior art keywords
- hymx
- industry
- detail code
- invoice
- item
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000011144 upstream manufacturing Methods 0.000 claims abstract description 29
- 238000004364 calculation method Methods 0.000 claims abstract description 14
- 238000005065 mining Methods 0.000 claims abstract description 11
- 238000000605 extraction Methods 0.000 claims abstract description 5
- 238000012545 processing Methods 0.000 claims description 26
- 230000006399 behavior Effects 0.000 claims description 20
- 238000013461 design Methods 0.000 claims description 14
- 238000012217 deletion Methods 0.000 claims description 12
- 230000037430 deletion Effects 0.000 claims description 12
- 238000004321 preservation Methods 0.000 claims description 9
- 101000993812 Mus musculus Protein inscuteable homolog Proteins 0.000 claims description 7
- 238000013138 pruning Methods 0.000 claims description 5
- 238000003860 storage Methods 0.000 claims description 4
- 238000012216 screening Methods 0.000 claims description 3
- 210000004209 hair Anatomy 0.000 claims description 2
- 239000012141 concentrate Substances 0.000 claims 1
- 230000002159 abnormal effect Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 12
- 238000001514 detection method Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000029305 taxis Effects 0.000 description 3
- 238000007418 data mining Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 206010000117 Abnormal behaviour Diseases 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/12—Accounting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/26—Government or public services
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Theoretical Computer Science (AREA)
- Educational Administration (AREA)
- Technology Law (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Primary Health Care (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于并行关联规则挖掘的发票虚开识别方法,包括以下步骤:提取所需会计期间内的发票记录,构建事务集;对不同行业明细的事务子集分别挖掘频繁项集,生成关联规则;基于不同行业明细的关联规则,计算企业的自洽性,并通过自洽性计算结果识别存在发票虚开行为的企业。本发明基于Spark并行框架进行程序设计,利用并行Apriori算法对企业上下游企业的所属行业进行关联规则挖掘,分析异常的行业组合,能够细粒度地针对不同行业明细企业的经营特点,具有并行高效的特点,能够自动、快速、有效地识别发票虚开行为。
Description
技术领域
本发明涉及税控技术领域,特别涉及一种基于并行关联规则挖掘的发票虚开识别方法。
背景技术
发票在我国社会经济活动中具有极其重要的意义和作用。发票是税务机关控制税源,征收税款的重要依据,同时也是国家监督经济活动,维护经济秩序,保护国家财产安全的重要手段。发票虚开客观表现为没有货物购销或者没有提供或接受应税劳务而为他人、为自己、让他人为自己、介绍他人开具增值税专用发票或用于出口退税、抵扣税款的其他发票或者即使有货物购销或提供或接受了应税劳务但为他人、为自己、让他人为自己、介绍他人开具数量或者金额不实的增值税专用发票或用于骗取出口退税、抵扣税款的其他发票或者进行了实际经营活动,但让他人为自己代开增值税专用发票或用于骗取出口退税、抵扣税款的其他发票的行为。虚开发票行为违反了发票管理制度,会造成国家税款的大量流失,严重地破坏了社会主义经济秩序。
目前,虚开发票行为识别主要通过稽查人员依靠经验对企业是否出现与虚开发票相关的异常情况和异常行为来判断,在现如今庞大的企业规模和交易规模的情况下,存在工作量大、效率低下、识别滞后的难题。因此,通过数据挖掘算法自动、快速、有效地识别发票虚开行为已成为一个亟待解决的问题。
针对如何识别发票虚开行为,以下专利文献提供了技术方案:
文献1.一种通过商品构成监控企业虚开发票的方法及其系统(201310547651.8);
文献2.一种发票虚开企业监控识别方法及系统(201611220015.4);
文献3.一种基于并行环路检测的虚开增值税专用发票检测方法(201710147850.8);
文献1通过查询企业销项商品数据构建销项商品数据集合,并对销项商品数据集合中的商品,按照金额占比降序排序,得到主要的销项商品构成数据集合,然后逐条取出商品名称,与企业进项商品数据的商品名称集合进行精确匹配,将未匹配到的商品名称列为虚开疑点。
文献2利用决策树算法和样本集进行相应的模型训练,创建企业类型预测模型,提取目标企业的特征信息,并将其输入至企业类型预测模型,以企业类型预测结果确定目标企业的企业类型是否为虚开发票企业。
文献3通过环路检测的方法来进行虚开增值税专用发票检测,基于分布式并行计算方法对环路检测进行了改进,将计算任务分配给分布式集群中的多台计算机中,大大提高了计算效率。
以上文献所述方法主要存在以下问题:文献1中没有考虑到企业在生产经营过程中通常会对进项商品进行加工、制造、处理等过程,销项商品是进一步得到的产品,其名称会和进项商品不同,不能在进项商品数据集合中匹配到对应的名称,这将会导致发票虚开疑点定位不准。文献2依赖于标明企业是否为虚开发票企业的样本集,在实际应用中,存在样本集获取难度大、样本数量少的难题。文献3仅能对资金经过多个账户后重新回到源点账户的虚开发票情况进行检测,而实际发票虚开具有多种形式,资金流向不一定构成环路,该方法的识别类型具有一定的局限性。
发明内容
为了克服上述现有技术的不足,本发明的目的在于一种基于并行关联规则挖掘的发票虚开识别方法。基于数据挖掘中的关联规则挖掘的思想,提出一种并行Apriori算法对目标企业的上下游企业所属行业进行关联规则挖掘,通过构建事务集、挖掘频繁项集、生成关联规则、计算自洽性,进而识别发票虚开行为,以解决背景技术的方法中发票虚开疑点定位不准、依赖样本集、识别类型具有局限性的问题。
本发明采用分布式计算框架Spark处理数据,采用分布式文件系统HDFS(HadoopDistributed File System)存储运算结果。HDFS是一个具有高容错性、成本低廉性等特点的分布式文件系统,可提供高吞吐量的数据访问,适合大规模数据集上的应用。Spark是专为大规模数据处理而设计的快速通用的计算引擎,采用Master/Slave的集群架构,支持各种各样的运算需求,并可访问数据库、HDFS等数据源,是当前广泛使用的并行计算框架。
为达到上述目的,本发明是采取如下技术方案予以实现的:
一种基于并行关联规则挖掘的发票虚开识别方法,包括以下步骤:
步骤1:设计事务集构建模块,查询数据库中的企业信息表和发票记录表,得到所需会计期间内的有效发票记录,以及发票记录中购销方纳税人识别号对应的行业明细代码。汇总发票记录,得到各企业的上下游企业的行业明细代码集合,构建以上下游企业的行业明细代码集合为项集的事务,以企业的纳税人识别号作为事务唯一标识,以企业的行业明细代码作为事务所属行业,然后将所有事务汇总得到事务集。其中,所述企业信息表为存储纳税人识别号和行业明细等企业信息的数据表;所述发票记录表为存储购销方纳税人识别号、金额、税额、开票日期、作废标志等发票信息的数据表;所述会计期间为在时间上把连续不断的企业经营活动及其结果用起止日期加以划分形成的时间区间;
步骤2:设计频繁项集挖掘模块,查询数据库中的行业明细代码表,得到行业明细代码集合,遍历行业明细代码集合,对每种行业明细代码,从步骤1得到的事务集中提取所属行业为该行业明细代码的事务子集,然后基于并行Apriori算法挖掘该行业明细代码的频繁项集。其中,所述行业明细代码表为存储行业明细代码、行业明细名称等行业信息的数据表;所述频繁项集为支持度大于等于最小支持度minSup的项集,其中支持度为项集在事务集中出现的频率;
步骤3:设计关联规则生成模块,遍历步骤2得到的行业明细代码集合,对每种行业明细代码,读取步骤2中得到的该行业明细代码对应的频繁项集,并行处理各频繁项集生成该行业明细代码的关联规则。其中,所述关联规则为置信度大于等于最小置信度minConf的强关联规则,其中置信度为关联规则前件出现时后件出现的条件概率;
步骤4:设计自洽性计算模块,遍历步骤2得到的行业明细代码集合,对每种行业明细代码,从步骤1得到的事务集中提取所属行业为该行业明细代码的事务子集,读取步骤3中得到的该行业明细代码对应的关联规则,并行计算事务子集中每条事务对应企业的自洽性。其中,所述自洽性为遍历事务的项集,以当前遍历项作为关联规则后件,以项集中除当前遍历项外的子集作为关联规则前件,生成的关联规则能在该事务行业明细代码对应的关联规则中匹配到的项占项集的比例;
步骤5:设计发票虚开识别模块,遍历步骤2得到的行业明细代码集合,对每种行业明细代码,读取步骤4中得到的该行业明细代码计算自洽性后的事务集,对事务集中自洽性低于设定的自洽性阈值minSC的事务进行过滤,并行识别过滤后的事务集中每条事务中存在发票虚开行为的纳税人识别号,汇总得到该行业明细代码的发票虚开纳税人识别号集合,基于纳税人识别号与企业一一对应的关系,则可获得对应的存在发票虚开行为的企业。
本发明进一步改进在于,事务集构建模块,包括以下步骤:
Step1:通过SQL语句查询数据库中的企业信息表和发票记录表,以开票日期属于所需会计期间且作废标志为否为条件,得到开票日期属于所需会计期间内的有效发票记录,从中提取以下四个字段:
{GF_NSRSBH,GF_HYMX,XF_NSRSBH,XF_HYMX}
其中,GF_NSRSBH表示购方纳税人识别号,GF_HYMX表示购方行业明细代码,XF_NSRSBH表示销方纳税人识别号,XF_HYMX表示销方行业明细代码。
然后,将提取结果读入Spark集群的内存中,并将其划分为P个分区,其中P表示Spark集群中所有核心数目的总和;
Step2:将Step1得到的发票记录按照购方纳税人识别号和购方行业明细代码进行分组,得到各企业上游企业的行业明细代码集合,格式为:
{(GF_NSRSBH,GF_HYMX),Sup}
其中,Sup表示上游企业的行业明细代码集合;
Step3:将Step1得到的发票记录按照销方纳税人识别号和销方行业明细代码进行分组,得到各企业下游企业的行业明细代码集合,格式为:
{(XF_NSRSBH,XF_HYMX),Sdown}
其中,Sdown表示下游企业的行业明细代码集合;
Step4:将Step2和Spep3得到的结果进行合并,然后按照纳税人识别号和行业明细代码进行分组,得到各企业上游企业的行业明细代码集合和下游企业的行业明细代码集合,格式为:
{(NSRSBH,HYMX),Sup,Sdown}
其中,NSRSBH表示纳税人识别号,HYMX表示行业明细代码;
Step5:将各企业上游企业的行业明细代码和下游企业的行业明细代码进行合并,为区分上下游信息,在Sup中的上游行业明细代码前添加字母U,在Sdown中的下游行业明细代码前添加字母D,然后将Sup与Sdown合并为S,并将S按照字典序排序,合并后将每一个企业的数据表示为一条事务,将S作为事务的项集,将企业的纳税人识别号NSRSBH作为事务唯一标识,将企业的行业明细代码HYMX作为事务所属行业,然后将所有事务汇总得到事务集,记为Trans,每条事务的格式为:
{(NSRSBH,HYMX),S}
Step6:将事务集Trans保存至HDFS中。
本发明进一步改进在于,频繁项集挖掘模块,包括以下步骤:
Step1:读取HDFS中步骤1生成的事务集Trans到Spark集群的内存中,将事务集Trans划分为P个分区;
Step2:通过SQL语句查询数据库中的行业明细代码表,得到行业明细代码集合SHYMX;
Step3:从SHYMX中取出一个行业明细代码,记为HYMXi,并在内存中初始化一个空的频繁项集的集合Sfreq,用于存储该行业明细代码的频繁项集,频繁项集格式为:
{Sitems,Supp}
其中,Sitems表示项集,Supp表示支持度;
Step4:从事务集Trans中提取所属行业为HYMXi的事务子集Transi;
Step5:基于Spark中的MapReduce编程模型统计事务子集Transi项集中各项的出现频率,记为freq,并计算各项的支持度,计算方式为:
其中,Size(Trani)表示事务子集Transi的事务数量。
然后筛选支持度大于等于最小支持度minSup的项,作为频繁1项集,并将该频繁1项集加入到Sfreq中,若频繁1项集规模大于1,执行Step6,否则执行Step7;
Step6:对频繁k-1项集进行连接操作生成频繁k项候选集,若频繁k项候选集为空,则执行下一步,否则,基于Spark中的MapReduce编程模型计算频繁k项候选集中各候选项集的支持度,以支持度大于等于最小支持度minSup为条件对频繁k项候选集进行剪枝,得到频繁k项集,将该频繁k项集加入到Sfreq中,判断频繁k项集规模是否大于1,若大于1,再次执行本步骤,否则执行下一步;
Step7:保存行业明细代码为HYMXi的频繁项集的集合Sfreq至HDFS中,并从行业明细代码集合SHYMX中删除行业明细代码HYMXi,若SHYMX不为空,执行Step3,否则结束。
本发明进一步改进在于,关联规则生成模块,包括以下步骤:
Step1:读取步骤2得到的行业明细代码集合SHYMX;
Step2:从SHYMX中取出一个行业明细代码,记为HYMXi,读取HDFS中步骤2生成的行业明细为HYMXi的频繁项集的集合Sfreq到Spark集群的内存中,将其划分为P个分区;
Step3:将Sfreq转换为键值对形式,以项集为键,以支持度为值,格式为:
Map<Sitems,Supp>
然后将其作为广播变量广播至Spark集群所有从节点中,记为Bfreq;
Step4:并行处理Sfreq,生成该行业明细代码的关联规则,关联规则格式为X→Y,其中,X表示关联规则前件,Y表示关联规则后件,关联规则置信度计算方式为:
其中,Supp(X)表示X的支持度,Supp(X∪Y)表示X和Y同时出现的支持度。
对Sfreq中各频繁项集处理过程具体为:首先,为Sfreq各频繁项集初始化一个空的关联规则集合Sfreq-rule,然后,处理频繁项集生成关联规则,并加入到Sfreq-rule中,具体处理方式为:
若频繁项集中仅包含一项时,以空集φ表示关联规则前件X,以该频繁项集中唯一一项作为后件Y,然后计算该关联规则置信度,计算方式为:
其中,Supp(φ)取值为1,Supp(Y)为该频繁项集支持度。判断其置信度是否大于等于最小置信度minConf,若满足,则加入到Sfreq-rule中。
若频繁项集中包含不止一项时,遍历频繁项集,每次从中取出1项作为关联规则后件Y,其余项作为关联规则前件X,得到关联规则X→Y,Supp(X)通过查询Bfreq获得,Supp(X∪Y)为该频繁项集支持度,计算置信度,若置信度大于等于最小置信度minConf,则加入到Sfreq-rule中。
最后,将各频繁项集生成的关联规则Sfreq-rule进行汇总,得到行业明细代码为HYMXi的关联规则Srule;
Step5:保存行业明细代码为HYMXi的关联规则Srule至HDFS中,并从行业明细代码集合SHYMX中删除行业明细代码HYMXi,若SHYMX不为空,执行Step2,否则结束。
本发明进一步改进在于,自洽性计算模块,包括以下步骤:
Step1:读取HDFS中步骤1生成的事务集Trans到Spark集群的内存中,将事务集Trans划分为P个分区;
Step2:读取步骤2得到的行业明细代码集合SHYMX;
Step3:从SHYMX中取出一个行业明细代码,记为HYMXi,并读取步骤3中生成的行业明细代码为HYMXi的关联规则Srule,然后将Srule作为广播变量广播至Spark集群所有从节点中,记为Brule。
Step4:从事务集Trans中提取所属行业为HYMXi的事务子集Transi;
Step5:并行处理事务子集Transi中的事务,对事务中的项集S进行遍历,每次从中取出1项作为待预测项,其余项作为已知项,匹配该行业明细代码的关联规则Brule,若当已知项某一子集作为关联规则前件时,待预测项出现在关联规则后件中,则将该待预测项加入到集合Sknown中,否则将该待预测项加入到集合Sunknown中,遍历完成后,计算其自洽性,计算方式为:
其中,Size(Sknown)表示集合Sknown的规模大小,Size(Sunknown)表示Sunknown的规模大小。
经过上述处理,各条事务格式为:
{(NSRSBH,HYMXi),S,Sknown,Sunknown,SelfConsistent}
其中,Sknown表示能够预测出的项集,Sunknown表示未能预测出的项集,SelfConsistent表示自洽性;
Step6:将Step5计算自洽性后的行业明细代码为HYMXi的事务子集保存至HDFS中,并从行业明细代码集合SHYMX中删除行业明细代码HYMXi,若SHYMX不为空,执行Step3,否则结束。
本发明进一步改进在于,发票虚开识别模块,包括以下步骤:
Step1:通过SQL语句查询数据库中的企业信息表和发票记录表,以开票日期属于所需会计期间且作废标志为否为条件,得到开票日期属于所需会计期间内的有效发票记录,从中提取以下四个字段:
{GF_NSRSBH,GF_HYMX,XF_NSRSBH,XF_HYMX}
其中,GF_NSRSBH表示购方纳税人识别号,GF_HYMX表示购方行业明细代码,XF_NSRSBH表示销方纳税人识别号,XF_HYMX表示销方行业明细代码。
然后,将提取结果读入Spark集群的内存中,并将其划分为P个分区;
Step2:读取步骤2得到的行业明细代码集合SHYMX;
Step3:从SHYMX中取出一个行业明细代码,记为HYMXi,读取步骤4中该行业明细代码计算自洽性后的事务集到Spark集群的内存中,记为Transi,将其划分为P个分区;
Step4:过滤事务集Transi,得到自洽性低于设定的自洽性阈值minSC的事务集,并行处理过滤后的事务集,对各事务,查询发票记录得到与事务对应企业进行交易,且行业明细代码属于事务中Sunknown的纳税人识别号的集合SNSRSBH,并将事务对应纳税人识别号NSRSBH加入到SNSRSBH,然后对各事务的SNSRSBH进行汇总,得到存在虚开发票行为的纳税人识别号集合Staxpayer;
Step5:保存行业明细代码为HYMXi的存在发票虚开行为的识别号集合Staxpayer至HDFS中,并从行业明细代码集合SHYMX中删除行业明细代码HYMXi,若SHYMX不为空,执行Step3,否则结束。
与现有技术相比,本发明的优点是:
1、本发明利用并行Apriori算法对企业上下游企业的所属行业进行关联规则挖掘,分析异常的行业组合,不会受到商品因生产、制造、处理等过程而发生的名称变动的影响,虚开疑点定位更加准确。
2、本发明不依赖带标注的样本集,能够应用于标注代价的较大的发票虚开的场景。
3、本发明能够识别资金流向未构成环路的发票虚开行为,更具通用性。
附图说明
图1是本发明方法的整体流程示意图。
图2是企业信息表TNSRXX主要字段的结构示意图。
图3是发票记录表TFP主要字段的结构示意图。
图4时行业明细代码表TDM_HYMX主要字段的结构示意图。
图5是事务集构建模块的流程示意图。
图6是根据某一行业明细的事务生成频繁1项集的流程示意图。
图7是根据频繁1项集生成所有频繁项集的流程示意图。
图8是并行处理各频繁项集生成关联规则的流程示意图。
图9是频繁项集挖掘模块的流程示意图。
图10是关联规则生成模块的流程示意图。
图11是自洽性计算模块的流程示意图。
图12是发票虚开识别模块的流程示意图。
具体实施方式
以下结合附图,对本发明基于并行关联规则挖掘的发票虚开识别方法的具体内容做细致描述。
如图1所示,基于并行关联规则挖掘的发票虚开识别方法,包括下述步骤:
步骤1:设计事务集构建模块,查询数据库中的企业信息表和发票记录表,得到所需会计期间内的有效发票记录,以及发票记录中购销方纳税人识别号对应的行业明细代码。汇总发票记录,得到各企业的上下游企业的行业明细代码集合,构建以上下游企业的行业明细代码集合为项集的事务,以企业的纳税人识别号作为事务唯一标识,以企业的行业明细代码作为事务所属行业,然后将所有事务汇总得到事务集;
步骤2:设计频繁项集挖掘模块,查询数据库中的行业明细代码表,得到行业明细代码集合,遍历行业明细代码集合,对每种行业明细代码,从步骤1得到的事务集中提取所属行业为该行业明细代码的事务子集,然后基于并行Apriori算法挖掘该行业明细代码的频繁项集;
步骤3:设计关联规则生成模块,遍历步骤2得到的行业明细代码集合,对每种行业明细代码,读取步骤2中得到的该行业明细代码对应的频繁项集,并行处理频繁项集生成该行业明细代码的关联规则;
步骤4:设计自洽性计算模块,遍历步骤2得到的行业明细代码集合,对每种行业明细代码,从步骤1得到的事务集中提取所属行业为该行业明细代码的事务子集,读取步骤3中得到的该行业明细代码对应的关联规则,并行计算事务子集中每条事务对应企业的自洽性;
步骤5:设计发票虚开识别模块,遍历步骤2得到的行业明细代码集合,对每种行业明细代码,读取步骤4中得到的该行业明细代码计算自洽性后的事务集,对事务集中自洽性低于设定的自洽性阈值minSC的事务进行过滤,并行识别过滤后的事务集中每条事务中存在发票虚开行为的纳税人识别号,汇总得到该行业明细代码的发票虚开纳税人识别号集合,基于纳税人识别号与企业一一对应的关系,则可获得对应的存在发票虚开行为的企业。
如图5所示,设计事务集构建模块,查询数据库中的企业信息表和发票记录表,得到所需会计期间内的有效发票记录,以及发票记录中购销方纳税人识别号对应的行业明细代码。汇总发票记录,得到各企业的上下游企业的行业明细代码集合,构建以上下游企业的行业明细代码集合为项集的事务,以企业的纳税人识别号作为事务唯一标识,以企业的行业明细代码作为事务所属行业,然后将所有事务汇总得到事务集。
企业信息表TNSRXX部分字段如图2所示,本发明用到了该表中的纳税人识别号NSRSBH以及行业明细代码DM_HYMX,部分无关字段未列出。
发票记录表TFP部分字段如图3所示,本发明用到了该表中的购方纳税人识别号GF_NSRSBH,销方纳税人识别号XF_NSRSBH,开票日期KPRQ,作废标志ZFBZ,若ZFBZ表示Y,则表示已作废,若ZFBZ为N,则表示未作废,部分无关字段未列出。
事务集构建模块的具体过程为:
Step1:通过SQL语句查询数据库中的企业信息表TNSRXX和发票记录表TFP,以KPRQ属于所需会计期间且ZFBZ为N为条件,得到开票日期属于所需会计期间内的有效发票记录,从中提取以下四个字段:
{GF_NSRSBH,GF_HYMX,XF_NSRSBH,XF_HYMX}
其中,GF_NSRSBH表示购方纳税人识别号,GF_HYMX表示购方行业明细代码,XF_NSRSBH表示销方纳税人识别号,XF_HYMX表示销方行业明细代码。
然后,将提取结果读入Spark集群的内存中,并将其划分为P个分区;
Step2:将Step1得到的发票记录按照购方纳税人识别号和购方行业明细代码进行分组,得到各企业上游企业的行业明细代码集合,格式为:
{(GF_NSRSBH,GF_HYMX),Sup}
其中,Sup表示上游企业的行业明细代码集合;
Step3:将Step1得到的发票记录按照销方纳税人识别号和销方行业明细代码进行分组,得到各企业下游企业的行业明细代码集合,格式为:
{(XF_NSRSBH,XF_HYMX),Sdown}
其中,Sdown表示下游企业的行业明细代码集合;
Step4:将Step2和Spep3得到的结果进行合并,然后按照纳税人识别号和行业明细代码进行分组,得到各企业上游企业的行业明细代码集合和下游企业的行业明细代码集合,格式为:
{(NSRSBH,HYMX),Sup,Sdown}
其中,NSRSBH表示纳税人识别号,HYMX表示行业明细代码;
Step5:将各企业上游企业的行业明细代码和下游企业的行业明细代码进行合并,为区分上下游信息,在Sup中的上游行业明细代码前添加字母U,在Sdown中的下游行业明细代码前添加字母D,然后将Sup与Sdown合并为S,并将S按照字典序排序,合并后将每一个企业的数据表示为一条事务,将S作为事务的项集,将企业的纳税人识别号NSRSBH作为事务唯一标识,将企业的行业明细代码HYMX作为事务所属行业,然后将所有事务汇总得到事务集,记为Trans,每条事务的格式为:
{(NSRSBH,HYMX),S}
Step6:将事务集Trans保存至HDFS中。
如图9所示,设计频繁项集挖掘模块,查询数据库中的行业明细代码表,得到行业明细代码集合,遍历行业明细代码集合,对每种行业明细代码,从步骤1得到的事务集中提取所属行业为该行业明细代码的事务子集,然后基于并行Apriori算法挖掘该行业明细代码的频繁项集。
行业明细代码表TDM_HYMX部分字段如图4所示,本发明用到了该表中的行业明细代码HYMX_DM,部分无关字段未列出。
频繁项集挖掘模块的具体过程为:
Step1:读取HDFS中步骤1生成的事务集Trans到Spark集群的内存中,将事务集Trans划分为P个分区;
Step2:通过SQL语句查询数据库中的行业明细代码表TDM_HYMX,得到行业明细代码集合SHYMX;
Step3:从SHYMX中取出一个行业明细代码,记为HYMXi,并在内存中初始化一个空的频繁项集的集合Sfreq,用于存储该行业明细代码的频繁项集,频繁项集格式为:
{Sitems,Supp}
其中,Sitems表示项集,Supp表示支持度;
Step4:从事务集Trans中提取所属行业为HYMXi的事务子集Transi;
Step5:基于Spark中的MapReduce编程模型统计事务子集Transi项集中各项的出现频率,记为freq,并计算各项的支持度,计算方式为:
其中,Size(Trani)表示事务子集Transi的事务数量。
然后筛选支持度大于等于最小支持度minSup的项,作为频繁1项集,并将该频繁1项集加入到Sfreq中,若频繁1项集规模大于1,执行Step6,否则执行Step7。
如图6所示,以行业明细代码为5273的事务为例,图中NSRXX为事务对应企业的纳税人识别号和行业明细代码,图中ITMES表示项集,并设定最小支持度minSup为0.5,计算各项的支持度,得到大于等于最小置信度的频繁1项集{{A},{B},{C},{E}};
Step6:对频繁k-1项集进行连接操作生成频繁k项候选集,若频繁k项候选集为空,则执行下一步,否则,基于Spark中的MapReduce编程模型计算频繁k项候选集中各候选项集的支持度,以支持度大于等于最小支持度minSup为条件对频繁k项候选集进行剪枝,得到频繁k项集,将该频繁k项集加入到Sfreq中,判断频繁k项集规模是否大于1,若大于1,再次执行本步骤,否则执行下一步。
其中,连接操作是指在频繁k-1项集中,若两项频繁项集前k-2个项相同,则可将两个频繁项集合并,按照字典序排序,得到频繁k项候选集,假设频繁2项集中包括{A,B}和{A,C},两者第一项均为A,第二项不同,将两者合并为{A,B,C},得到频繁3项候选项集。剪枝操作是指滤除支持度小于最小支持度minSup的频繁k项候选集。
如图7所示,由频繁1项集通过连接操作得到频繁2项候选集,以支持度大于等于最小支持度为条件对频繁2项候选集进行剪枝,得到频繁2项集,同理,再由频繁2项集经连接剪枝操作得到频繁3项集,得到的频繁3项集无法再进行连接操作,则已得到该行业明细所有频繁项集,执行下一步;
Step7:保存行业明细代码为HYMXi的频繁项集的集合Sfreq至HDFS中,并从行业明细代码集合SHYMX中删除行业明细代码HYMXi,若SHYMX不为空,执行Step3,否则结束。
如图10所示,设计关联规则生成模块,遍历步骤2得到的行业明细代码集合,对每种行业明细代码,读取步骤2中得到的该行业明细代码对应的频繁项集,并行处理频繁项集生成该行业明细代码的关联规则。具体过程为:
Step1:读取步骤2得到的行业明细代码集合SHYMX;
Step2:从SHYMX中取出一个行业明细代码,记为HYMXi,读取HDFS中步骤2生成的行业明细为HYMXi的频繁项集的集合Sfreq到Spark集群的内存中,将其划分为P个分区;
Step3:将Sfreq转换为键值对形式,以项集为键,以支持度为值,格式为:
Map<Sitems,Supp>
然后将其作为广播变量广播至Spark集群所有从节点中,记为Bfreq;
Step4:并行处理Sfreq,生成该行业明细代码的关联规则,关联规则格式为X→Y,其中,X表示关联规则前件,Y表示关联规则后件,关联规则置信度计算方式为:
其中,Supp(X)表示X的支持度,Supp(X∪Y)表示X和Y同时出现的支持度。
对Sfreq中各频繁项集处理过程具体为:首先,为Sfreq各频繁项集初始化一个空的关联规则集合Sfreq-rule,然后,处理频繁项集生成关联规则,并加入到Sfreq-rule中,具体处理方式为:
若频繁项集中仅包含一项时,以空集φ表示关联规则前件X,以该频繁项集中唯一一项作为后件Y,然后计算该关联规则置信度,计算方式为:
其中,Supp(φ)取值为1,Supp(Y)为该频繁项集支持度。判断其置信度是否大于等于最小置信度minConf,若满足,则加入到Sfreq-rule中。
若频繁项集中包含不止一项时,遍历频繁项集,每次从中取出1项作为关联规则后件Y,其余项作为关联规则前件X,得到关联规则X→Y,Supp(X)通过查询Bfreq获得,Supp(X∪Y)为该频繁项集支持度,计算置信度,若置信度大于等于最小置信度minConf,则加入到Sfreq-rule中。
最后,将各频繁项集生成的关联规则Sfreq-rule进行汇总,得到行业明细代码为HYMXi的关联规则Srule。
如图9所示,并行处理各频繁项集,对每个频繁项集生成其对应关联规则并计算各关联规则的置信度,将置信度小于设定的最小置信度阈值0.7的关联规则删去,得到该行业明细代码的关联规则;
Step5:保存行业明细代码为HYMXi的关联规则Srule到HDFS中,并从行业明细代码集合SHYMX中删除行业明细代码HYMXi,若SHYMX不为空,执行Step2,否则结束。
如图11所示,设计自洽性计算模块,遍历步骤2得到的行业明细代码集合,对每种行业明细代码,从步骤1得到的事务集中提取所属行业为该行业明细代码的事务子集,读取步骤3中得到的该行业明细代码对应的关联规则,并行计算事务子集中每条事务对应企业的自洽性。具体过程为:
Step1:读取HDFS中步骤1生成的事务集Trans到Spark集群的内存中,将事务集Trans划分为P个分区;
Step2:读取步骤2得到的行业明细代码集合SHYMX;
Step3:从SHYMX中取出一个行业明细代码,记为HYMXi,并读取步骤3中生成的行业明细代码为HYMXi的关联规则Srule,然后将Srule作为广播变量广播至Spark集群所有从节点中,记为Brule。
Step4:从事务集Trans中提取所属行业为HYMXi的事务子集Transi;
Step5:并行处理事务子集Transi中的事务,对事务中的项集S进行遍历,每次从中取出1项作为待预测项,其余项作为已知项,匹配该行业明细代码的关联规则Brule,若当已知项某一子集作为关联规则前件时,待预测项出现在关联规则后件中,则将该待预测项加入到集合Sknown中,否则将该待预测项加入到集合Sunknown中,遍历完成后,计算其自洽性,计算方式为:
其中,Size(Sknown)表示集合Sknown的规模大小,Size(Sunknown)表示Sunknown的规模大小。
经过上述处理,各条事务格式为:
{(NSRSBH,HYMXi),S,Sknown,Sunknown,SelfConsistent}
其中,Sknown表示能够预测出的项集,Sunknown表示未能预测出的项集,SelfConsistent表示自洽性。
以图8中关联规则为例,对于事务{(610xxx03,5273),{A,B,C,E}}中的项集,A可由规则预测得出,B可由规则{A,C}→{B}预测得出,C可由规则{A,B}→{C}预测得出,E无法由现有关联规则预测得出,则Sknown={A,B,C},Sunknown={E},进而可计算自洽性为:
对于事务{(610xxx04,5273),{A,D,F}}中的项集,A可由规则预测得出,D和F无法由现有关联规则预测得出,则Sknown={A},Sunknown={D,F},进而可计算自洽性为:
Step6:将Step5计算自洽性后的行业明细代码为HYMXi的事务子集保存至HDFS中,并从行业明细代码集合SHYMX中删除行业明细代码HYMXi,若SHYMX不为空,执行Step3,否则结束。
如图12所示,设计发票虚开识别模块,遍历步骤2得到的行业明细代码集合,对每种行业明细代码,读取步骤4中得到的该行业明细代码计算自洽性后的事务集,对事务集中自洽性低于设定的自洽性阈值minSC的事务进行过滤,并行识别过滤后的事务集中每条事务中存在发票虚开行为的纳税人识别号,汇总得到该行业明细代码的发票虚开纳税人识别号集合,基于纳税人识别号与企业一一对应的关系,则可获得对应的存在发票虚开行为的企业。具体过程为:
Step1:通过SQL语句查询数据库中的企业信息表TNSRXX和发票记录表TFP,以KPRQ属于所需会计期间且ZFBZ为N为条件,得到开票日期属于所需会计期间内的有效发票记录,从中提取以下四个字段:
{GF_NSRSBH,GF_HYMX,XF_NSRSBH,XF_HYMX}
其中,GF_NSRSBH表示购方纳税人识别号,GF_HYMX表示购方行业明细代码,XF_NSRSBH表示销方纳税人识别号,XF_HYMX表示销方行业明细代码。
然后,将提取结果读入Spark集群的内存中,并将其划分为P个分区;
Step2:读取步骤2得到的行业明细代码集合SHYMX;
Step3:从SHYMX中取出一个行业明细代码,记为HYMXi,读取步骤4中该行业明细代码计算自洽性后的事务集到Spark集群的内存中,记为Transi,将其划分为P个分区;
Step4:过滤事务集Transi,得到自洽性低于设定的自洽性阈值minSC的事务集,并行处理过滤后的事务集,对各事务,查询发票记录得到与事务对应企业进行交易,且行业明细代码属于事务中Sunknown的纳税人识别号的集合SNSRSBH,并将事务对应纳税人识别号NSRSBH加入到SNSRSBH,然后对各事务的SNSRSBH进行汇总,得到存在虚开发票行为的纳税人识别号集合Staxpayer;
以事务1:{(610xxx03,5273),{A,B,C,E}}和事务2:{(610xxx04,5273),{A,D,F}}为例,设定自洽性阈值为60%,事务1的自洽性为75%,大于60%,则该事务对应的企业不存在虚开发票嫌疑;而事务2的自洽性为33.3%,小于60%,则该事务对应的企业存在虚开发票嫌疑,此外,与该企业进行交易,且其交易行业属于{D,F}的企业也存在虚开发票嫌疑。假设,D为“D2826”,F为“U1512”,则在发票记录中寻找与纳税人识别号为610xxx04的纳税进行交易的购方企业中行业明细代码为2826的纳税人识别号集合以及销方企业中行业明细代码为1512的纳税人识别号集合,将两者合并为SNSRSBH,并将610xxx04加入到SNSRSBH中,得到的SNSRSBH为从该事务中识别得到的存在发票虚开嫌疑的纳税人识别号集合。
Step5:保存行业明细代码为HYMXi的存在发票虚开行为的识别号集合Staxpayer到HDFS中,并从行业明细代码集合SHYMX中删除行业明细代码HYMXi,若SHYMX不为空,执行Step3,否则结束。
Claims (6)
1.一种基于并行关联规则挖掘的发票虚开识别方法,其特征在于,包括以下步骤:
步骤1:设计事务集构建模块,查询数据库中的企业信息表和发票记录表,得到所需会计期间内的有效发票记录,以及发票记录中购销方纳税人识别号对应的行业明细代码,汇总发票记录,得到各企业的上下游企业的行业明细代码集合,构建以上下游企业的行业明细代码集合为项集的事务,以企业的纳税人识别号作为事务唯一标识,以企业的行业明细代码作为事务所属行业,然后将所有事务汇总得到事务集,其中,所述企业信息表为存储纳税人识别号和行业明细等企业信息的数据表;所述发票记录表为存储购销方纳税人识别号、金额、税额、开票日期、作废标志等发票信息的数据表;所述会计期间为在时间上把连续不断的企业经营活动及其结果用起止日期加以划分形成的时间区间;
步骤2:设计频繁项集挖掘模块,查询数据库中的行业明细代码表,得到行业明细代码集合,遍历行业明细代码集合,对每种行业明细代码,从步骤1得到的事务集中提取所属行业为该行业明细代码的事务子集,然后基于并行Apriori算法挖掘该行业明细代码的频繁项集,其中,所述行业明细代码表为存储行业明细代码、行业明细名称等行业信息的数据表;所述频繁项集为支持度大于等于最小支持度minSup的项集,其中支持度为项集在事务集中出现的频率;
步骤3:设计关联规则生成模块,遍历步骤2得到的行业明细代码集合,对每种行业明细代码,读取步骤2中得到的该行业明细代码对应的频繁项集,并行处理各频繁项集生成该行业明细代码的关联规则,其中,所述关联规则为置信度大于等于最小置信度minConf的强关联规则,其中置信度为关联规则前件出现时后件出现的条件概率;
步骤4:设计自洽性计算模块,遍历步骤2得到的行业明细代码集合,对每种行业明细代码,从步骤1得到的事务集中提取所属行业为该行业明细代码的事务子集,读取步骤3中得到的该行业明细代码对应的关联规则,并行计算事务子集中每条事务对应企业的自洽性,其中,所述自洽性为遍历事务的项集,以当前遍历项作为关联规则后件,以项集中除当前遍历项外的子集作为关联规则前件,生成的关联规则能在该事务行业明细代码对应的关联规则中匹配到的项占项集的比例;
步骤5:设计发票虚开识别模块,遍历步骤2得到的行业明细代码集合,对每种行业明细代码,读取步骤4中得到的该行业明细代码计算自洽性后的事务集,对事务集中自洽性低于设定的自洽性阈值minSC的事务进行过滤,并行识别过滤后的事务集中每条事务中存在发票虚开行为的纳税人识别号,汇总得到该行业明细代码的发票虚开纳税人识别号集合,基于纳税人识别号与企业一一对应的关系,则可获得对应的存在发票虚开行为的企业。
2.根据权利要求1所述的一种基于并行关联规则挖掘的发票虚开识别方法,其特征在于,所述的事务集构建模块,包括以下步骤:
Step1:通过SQL语句查询数据库中的企业信息表和发票记录表,以开票日期属于所需会计期间且作废标志为否为条件,得到开票日期属于所需会计期间内的有效发票记录,从中提取以下四个字段:
{GF_NSRSBH,GF_HYMX,XF_NSRSBH,XF_HYMX}
其中,GF_NSRSBH表示购方纳税人识别号,GF_HYMX表示购方行业明细代码,XF_NSRSBH表示销方纳税人识别号,XF_HYMX表示销方行业明细代码;
然后,将提取结果读入Spark集群的内存中,并将其划分为P个分区,其中P表示Spark集群中所有核心数目的总和;
Step2:将Step1得到的发票记录按照购方纳税人识别号和购方行业明细代码进行分组,得到各企业上游企业的行业明细代码集合,格式为:
{(GF_NSRSBH,GF_HYMX),Sup}
其中,Sup表示上游企业的行业明细代码集合;
Step3:将Step1得到的发票记录按照销方纳税人识别号和销方行业明细代码进行分组,得到各企业下游企业的行业明细代码集合,格式为:
{(XF_NSRSBH,XF_HYMX),Sdown}
其中,Sdown表示下游企业的行业明细代码集合;
Step4:将Step2和Spep3得到的结果进行合并,然后按照纳税人识别号和行业明细代码进行分组,得到各企业上游企业的行业明细代码集合和下游企业的行业明细代码集合,格式为:
{(NSRSBH,HYMX),Sup,Sdown}
其中,NSRSBH表示纳税人识别号,HYMX表示行业明细代码;
Step5:将各企业上游企业的行业明细代码和下游企业的行业明细代码进行合并,为区分上下游信息,在Sup中的上游行业明细代码前添加字母U,在Sdown中的下游行业明细代码前添加字母D,然后将Sup与Sdown合并为S,并将S按照字典序排序,合并后将每一个企业的数据表示为一条事务,将S作为事务的项集,将企业的纳税人识别号NSRSBH作为事务唯一标识,将企业的行业明细代码HYMX作为事务所属行业,然后将所有事务汇总得到事务集,记为Trans,每条事务的格式为:
{(NSRSBH,HYMX),S}
Step6:将事务集Trans保存至HDFS中。
3.根据权利要求1所述的一种基于并行关联规则挖掘的发票虚开识别方法,其特征在于,所述的频繁项集挖掘模块,包括以下步骤:
Step1:读取HDFS中步骤1生成的事务集Trans到Spark集群的内存中,将事务集Trans划分为P个分区;
Step2:通过SQL语句查询数据库中的行业明细代码表,得到行业明细代码集合SHYMX;
Step3:从SHYMX中取出一个行业明细代码,记为HYMXi,并在内存中初始化一个空的频繁项集的集合Sfreq,用于存储该行业明细代码的频繁项集,频繁项集格式为:
{Sitems,Supp}
其中,Sitems表示项集,Supp表示支持度;
Step4:从事务集Trans中提取所属行业为HYMXi的事务子集Transi;
Step5:基于Spark中的MapReduce编程模型统计事务子集Transi项集中各项的出现频率,记为freq,并计算各项的支持度,计算方式为:
其中,Size(Trani)表示事务子集Transi的事务数量;
然后筛选支持度大于等于最小支持度minSup的项,作为频繁1项集,并将该频繁1项集加入到Sfreq中,若频繁1项集规模大于1,执行Step6,否则执行Step7;
Step6:对频繁k-1项集进行连接操作生成频繁k项候选集,若频繁k项候选集为空,则执行下一步,否则,基于Spark中的MapReduce编程模型计算频繁k项候选集中各候选项集的支持度,以支持度大于等于最小支持度minSup为条件对频繁k项候选集进行剪枝,得到频繁k项集,将该频繁k项集加入到Sfreq中,判断频繁k项集规模是否大于1,若大于1,再次执行本步骤,否则执行下一步;
Step7:保存行业明细代码为HYMXi的频繁项集的集合Sfreq至HDFS中,并从行业明细代码集合SHYMX中删除行业明细代码HYMXi,若SHYMX不为空,执行Step3,否则结束。
4.根据权利要求1所述的一种基于并行关联规则挖掘的发票虚开识别方法,其特征在于,,所述的关联规则生成模块,包括以下步骤:
Step1:读取步骤2得到的行业明细代码集合SHYMX;
Step2:从SHYMX中取出一个行业明细代码,记为HYMXi,读取HDFS中步骤2生成的行业明细为HYMXi的频繁项集的集合Sfreq到Spark集群的内存中,将其划分为P个分区;
Step3:将Sfreq转换为键值对形式,以项集为键,以支持度为值,格式为:
Map<Sitems,Supp>
然后将其作为广播变量广播至Spark集群所有从节点中,记为Bfreq;
Step4:并行处理Sfreq,生成该行业明细代码的关联规则,关联规则格式为X→Y,其中,X表示关联规则前件,Y表示关联规则后件,关联规则置信度计算方式为:
其中,Supp(X)表示X的支持度,Supp(X∪Y)表示X和Y同时出现的支持度;
对Sfreq中各频繁项集处理过程具体为:首先,为Sfreq各频繁项集初始化一个空的关联规则集合Sfreq-rule,然后,处理频繁项集生成关联规则,并加入到Sfreq-rule中,具体处理方式为:
若频繁项集中仅包含一项时,以空集φ表示关联规则前件X,以该频繁项集中唯一一项作为后件Y,然后计算该关联规则置信度,计算方式为:
其中,Supp(φ)取值为1,Supp(Y)为该频繁项集支持度。判断其置信度是否大于等于最小置信度minConf,若满足,则加入到Sfreq-rule中;
若频繁项集中包含不止一项时,遍历频繁项集,每次从中取出1项作为关联规则后件Y,其余项作为关联规则前件X,得到关联规则X→Y,Supp(X)通过查询Bfreq获得,Supp(X∪Y)为该频繁项集支持度,计算置信度,若置信度大于等于最小置信度minConf,则加入到Sfreq-rule中;
最后,将各频繁项集生成的关联规则Sfreq-rule进行汇总,得到行业明细代码为HYMXi的关联规则Srule;
Step5:保存行业明细代码为HYMXi的关联规则Srule至HDFS中,并从行业明细代码集合SHYMX中删除行业明细代码HYMXi,若SHYMX不为空,执行Step2,否则结束。
5.根据权利要求1所述的一种基于并行关联规则挖掘的发票虚开识别方法,其特征在于,所述的自洽性计算模块,包括以下步骤:
Step1:读取HDFS中步骤1生成的事务集Trans到Spark集群的内存中,将事务集Trans划分为P个分区;
Step2:读取步骤2得到的行业明细代码集合SHYMX;
Step3:从SHYMX中取出一个行业明细代码,记为HYMXi,并读取步骤3中生成的行业明细代码为HYMXi的关联规则Srule,然后将Srule作为广播变量广播至Spark集群所有从节点中,记为Brule。
Step4:从事务集Trans中提取所属行业为HYMXi的事务子集Transi;
Step5:并行处理事务子集Transi中的事务,对事务中的项集S进行遍历,每次从中取出1项作为待预测项,其余项作为已知项,匹配该行业明细代码的关联规则Brule,若当已知项某一子集作为关联规则前件时,待预测项出现在关联规则后件中,则将该待预测项加入到集合Sknown中,否则将该待预测项加入到集合Sunknown中,遍历完成后,计算其自洽性,计算方式为:
其中,Size(Sknown)表示集合Sknown的规模大小,Size(Sunknown)表示Sunknown的规模大小。
经过上述处理,各条事务格式为:
{(NSRSBH,HYMXi),S,Sknown,Sunknown,SelfConsistent}
其中,Sknown表示能够预测出的项集,Sunknown表示未能预测出的项集,SelfConsistent表示自洽性;
Step6:将Step5计算自洽性后的行业明细代码为HYMXi的事务子集保存至HDFS中,并从行业明细代码集合SHYMX中删除行业明细代码HYMXi,若SHYMX不为空,执行Step3,否则结束。
6.根据权利要求1所述的一种基于并行关联规则挖掘的发票虚开识别方法,其特征在于,所述的发票虚开识别模块,包括以下步骤:
Step1:通过SQL语句查询数据库中的企业信息表和发票记录表,以开票日期属于所需会计期间且作废标志为否为条件,得到开票日期属于所需会计期间内的有效发票记录,从中提取以下四个字段:
{GF_NSRSBH,GF_HYMX,XF_NSRSBH,XF_HYMX}
其中,GF_NSRSBH表示购方纳税人识别号,GF_HYMX表示购方行业明细代码,XF_NSRSBH表示销方纳税人识别号,XF_HYMX表示销方行业明细代码;
然后,将提取结果读入Spark集群的内存中,并将其划分为P个分区;
Step2:读取步骤2得到的行业明细代码集合SHYMX;
Step3:从SHYMX中取出一个行业明细代码,记为HYMXi,读取步骤4中该行业明细代码计算自洽性后的事务集到Spark集群的内存中,记为Transi,将其划分为P个分区;
Step4:过滤事务集Transi,得到自洽性低于设定的自洽性阈值minSC的事务集,并行处理过滤后的事务集,对各事务,查询发票记录得到与事务对应企业进行交易,且行业明细代码属于事务中Sunknown的纳税人识别号的集合SNSRSBH,并将事务对应纳税人识别号NSRSBH加入到SNSRSBH,然后对各事务的SNSRSBH进行汇总,得到存在虚开发票行为的纳税人识别号集合Staxpayer;
Step5:保存行业明细代码为HYMXi的存在发票虚开行为的识别号集合Staxpayer至HDFS中,并从行业明细代码集合SHYMX中删除行业明细代码HYMXi,若SHYMX不为空,执行Step3,否则结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810436908.5A CN108596750B (zh) | 2018-05-09 | 2018-05-09 | 一种基于并行关联规则挖掘的发票虚开识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810436908.5A CN108596750B (zh) | 2018-05-09 | 2018-05-09 | 一种基于并行关联规则挖掘的发票虚开识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108596750A true CN108596750A (zh) | 2018-09-28 |
CN108596750B CN108596750B (zh) | 2019-08-23 |
Family
ID=63635980
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810436908.5A Active CN108596750B (zh) | 2018-05-09 | 2018-05-09 | 一种基于并行关联规则挖掘的发票虚开识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108596750B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109634804A (zh) * | 2018-11-16 | 2019-04-16 | 北京奇虎科技有限公司 | 数据异动分析方法及装置 |
CN110162566A (zh) * | 2019-04-15 | 2019-08-23 | 平安普惠企业管理有限公司 | 业务数据的关联分析方法、装置、计算机设备及存储介质 |
CN110599189A (zh) * | 2019-09-24 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种票据风险分析方法、相关设备及计算机存储介质 |
CN110716957A (zh) * | 2019-09-23 | 2020-01-21 | 珠海市新德汇信息技术有限公司 | 类案可疑对象智能挖掘分析方法 |
CN111031017A (zh) * | 2019-11-29 | 2020-04-17 | 腾讯科技(深圳)有限公司 | 一种异常业务账号识别方法、装置、服务器及存储介质 |
CN111210324A (zh) * | 2019-12-27 | 2020-05-29 | 大象慧云信息技术有限公司 | 一种基于并行计算的通用发票数据处理方法及系统 |
CN111311340A (zh) * | 2018-12-10 | 2020-06-19 | 航天信息股份有限公司 | 一种识别虚开发票行为的方法及装置 |
CN111506671A (zh) * | 2020-03-17 | 2020-08-07 | 北京捷通华声科技股份有限公司 | 处理实体对象的属性的方法、装置、设备及存储介质 |
CN112241420A (zh) * | 2020-10-26 | 2021-01-19 | 浪潮云信息技术股份公司 | 一种基于关联规则算法的政务服务事项推荐方法 |
TWI726423B (zh) * | 2019-09-23 | 2021-05-01 | 建國科技大學 | 人工智慧輔助會計出納自動化方法 |
CN113361514A (zh) * | 2021-06-08 | 2021-09-07 | 上海商米科技集团股份有限公司 | 基于关键字知识库的购物小票信息解析方法及系统 |
CN114092215A (zh) * | 2022-01-20 | 2022-02-25 | 南京擎天全税通信息科技有限公司 | 一种出口退税贷款的审核方法及系统 |
WO2024060652A1 (zh) * | 2022-09-20 | 2024-03-28 | 云南电网有限责任公司楚雄供电局 | 电力物资智能成套推荐的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104636973A (zh) * | 2013-11-06 | 2015-05-20 | 航天信息股份有限公司 | 一种通过商品构成监控企业虚开发票的方法及其系统 |
CN104715073A (zh) * | 2015-04-03 | 2015-06-17 | 江苏物联网研究发展中心 | 基于改进Apriori算法的关联规则挖掘系统 |
CN105045780A (zh) * | 2015-07-15 | 2015-11-11 | 广州敦和信息技术有限公司 | 一种发票字条语义信息的识别方法及装置 |
-
2018
- 2018-05-09 CN CN201810436908.5A patent/CN108596750B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104636973A (zh) * | 2013-11-06 | 2015-05-20 | 航天信息股份有限公司 | 一种通过商品构成监控企业虚开发票的方法及其系统 |
CN104715073A (zh) * | 2015-04-03 | 2015-06-17 | 江苏物联网研究发展中心 | 基于改进Apriori算法的关联规则挖掘系统 |
CN105045780A (zh) * | 2015-07-15 | 2015-11-11 | 广州敦和信息技术有限公司 | 一种发票字条语义信息的识别方法及装置 |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109634804A (zh) * | 2018-11-16 | 2019-04-16 | 北京奇虎科技有限公司 | 数据异动分析方法及装置 |
CN111311340A (zh) * | 2018-12-10 | 2020-06-19 | 航天信息股份有限公司 | 一种识别虚开发票行为的方法及装置 |
CN111311340B (zh) * | 2018-12-10 | 2024-02-13 | 航天信息股份有限公司 | 一种识别虚开发票行为的方法及装置 |
CN110162566A (zh) * | 2019-04-15 | 2019-08-23 | 平安普惠企业管理有限公司 | 业务数据的关联分析方法、装置、计算机设备及存储介质 |
CN110162566B (zh) * | 2019-04-15 | 2024-09-10 | 林爱珊 | 业务数据的关联分析方法、装置、计算机设备及存储介质 |
WO2020211357A1 (zh) * | 2019-04-15 | 2020-10-22 | 平安普惠企业管理有限公司 | 数据的关联分析方法、装置、计算机设备及存储介质 |
TWI726423B (zh) * | 2019-09-23 | 2021-05-01 | 建國科技大學 | 人工智慧輔助會計出納自動化方法 |
CN110716957A (zh) * | 2019-09-23 | 2020-01-21 | 珠海市新德汇信息技术有限公司 | 类案可疑对象智能挖掘分析方法 |
CN110716957B (zh) * | 2019-09-23 | 2022-09-02 | 珠海市新德汇信息技术有限公司 | 类案可疑对象智能挖掘分析方法 |
CN110599189A (zh) * | 2019-09-24 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 一种票据风险分析方法、相关设备及计算机存储介质 |
CN111031017A (zh) * | 2019-11-29 | 2020-04-17 | 腾讯科技(深圳)有限公司 | 一种异常业务账号识别方法、装置、服务器及存储介质 |
CN111210324A (zh) * | 2019-12-27 | 2020-05-29 | 大象慧云信息技术有限公司 | 一种基于并行计算的通用发票数据处理方法及系统 |
CN111506671A (zh) * | 2020-03-17 | 2020-08-07 | 北京捷通华声科技股份有限公司 | 处理实体对象的属性的方法、装置、设备及存储介质 |
CN112241420A (zh) * | 2020-10-26 | 2021-01-19 | 浪潮云信息技术股份公司 | 一种基于关联规则算法的政务服务事项推荐方法 |
CN113361514A (zh) * | 2021-06-08 | 2021-09-07 | 上海商米科技集团股份有限公司 | 基于关键字知识库的购物小票信息解析方法及系统 |
CN114092215A (zh) * | 2022-01-20 | 2022-02-25 | 南京擎天全税通信息科技有限公司 | 一种出口退税贷款的审核方法及系统 |
CN114092215B (zh) * | 2022-01-20 | 2022-04-19 | 南京擎天全税通信息科技有限公司 | 一种出口退税贷款的审核方法及系统 |
WO2024060652A1 (zh) * | 2022-09-20 | 2024-03-28 | 云南电网有限责任公司楚雄供电局 | 电力物资智能成套推荐的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108596750B (zh) | 2019-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108596750B (zh) | 一种基于并行关联规则挖掘的发票虚开识别方法 | |
CN110751371B (zh) | 基于统计四分位距的商品库存风险预警方法、系统及计算机可读存储介质 | |
CN108647993B (zh) | 一种识别招投标过程中投标者之间关系的方法 | |
Stehel et al. | Prediction of institutional sector development and analysis of enterprises active in agriculture | |
CN104424613A (zh) | 一种增值税发票的监控方法及其系统 | |
US11580339B2 (en) | Artificial intelligence based fraud detection system | |
CN108595621A (zh) | 一种虚开增值税发票的预警分析方法及系统 | |
CN113902535A (zh) | 一种消费税的自动核算方法及系统 | |
CN110597796B (zh) | 基于全生命周期的大数据实时建模方法及系统 | |
CN108062632A (zh) | 风险评估方法及装置、设备和存储介质 | |
CN111160717A (zh) | 一种企业创新潜力评估方法和装置 | |
CN107766500A (zh) | 固定资产卡片的审计方法 | |
CN107358519A (zh) | 发票监控方法及系统 | |
CN115310766A (zh) | 一种基于大数据分析的企业管理系统 | |
CN115018651A (zh) | 一种基于互联网的金融风险预警系统 | |
CN104636971A (zh) | 一种增值税发票一号多名的检测方法及其系统 | |
CN115204995A (zh) | 一种税务数据采集分析方法、系统及计算机存储介质 | |
CN109583773A (zh) | 一种纳税信用积分确定的方法、系统及相关装置 | |
CN109919667A (zh) | 一种用于识别企业ip的方法和装置 | |
CN113537758A (zh) | 基于大数据技术的制造业高质量发展综合评价方法和系统 | |
CN116308843A (zh) | 一种财务资金管理方法 | |
CN107133864B (zh) | 一种基于大数据的集团员工挂账审计方法及装置 | |
CN111460052B (zh) | 一种基于监察数据关联分析的低保资金监督方法与系统 | |
CN114119237A (zh) | 养老金产品筛选方法及装置 | |
CN114066173A (zh) | 资金流动行为分析方法及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |