一种基于并行关联规则挖掘的发票虚开识别方法技术

技术编号:19060246 阅读:186 留言:0更新日期:2018-09-29 12:51
本发明专利技术公开了一种基于并行关联规则挖掘的发票虚开识别方法,包括以下步骤:提取所需会计期间内的发票记录,构建事务集;对不同行业明细的事务子集分别挖掘频繁项集,生成关联规则;基于不同行业明细的关联规则,计算企业的自洽性,并通过自洽性计算结果识别存在发票虚开行为的企业。本发明专利技术基于Spark并行框架进行程序设计,利用并行Apriori算法对企业上下游企业的所属行业进行关联规则挖掘,分析异常的行业组合,能够细粒度地针对不同行业明细企业的经营特点,具有并行高效的特点,能够自动、快速、有效地识别发票虚开行为。

【技术实现步骤摘要】
一种基于并行关联规则挖掘的发票虚开识别方法
本专利技术涉及税控
,特别涉及一种基于并行关联规则挖掘的发票虚开识别方法。
技术介绍
发票在我国社会经济活动中具有极其重要的意义和作用。发票是税务机关控制税源,征收税款的重要依据,同时也是国家监督经济活动,维护经济秩序,保护国家财产安全的重要手段。发票虚开客观表现为没有货物购销或者没有提供或接受应税劳务而为他人、为自己、让他人为自己、介绍他人开具增值税专用发票或用于出口退税、抵扣税款的其他发票或者即使有货物购销或提供或接受了应税劳务但为他人、为自己、让他人为自己、介绍他人开具数量或者金额不实的增值税专用发票或用于骗取出口退税、抵扣税款的其他发票或者进行了实际经营活动,但让他人为自己代开增值税专用发票或用于骗取出口退税、抵扣税款的其他发票的行为。虚开发票行为违反了发票管理制度,会造成国家税款的大量流失,严重地破坏了社会主义经济秩序。目前,虚开发票行为识别主要通过稽查人员依靠经验对企业是否出现与虚开发票相关的异常情况和异常行为来判断,在现如今庞大的企业规模和交易规模的情况下,存在工作量大、效率低下、识别滞后的难题。因此,通过数据挖掘算法自动、快速、有效地识别发票虚开行为已成为一个亟待解决的问题。针对如何识别发票虚开行为,以下专利文献提供了技术方案:文献1.一种通过商品构成监控企业虚开发票的方法及其系统(201310547651.8);文献2.一种发票虚开企业监控识别方法及系统(201611220015.4);文献3.一种基于并行环路检测的虚开增值税专用发票检测方法(201710147850.8);文献1通过查询企业销项商品数据构建销项商品数据集合,并对销项商品数据集合中的商品,按照金额占比降序排序,得到主要的销项商品构成数据集合,然后逐条取出商品名称,与企业进项商品数据的商品名称集合进行精确匹配,将未匹配到的商品名称列为虚开疑点。文献2利用决策树算法和样本集进行相应的模型训练,创建企业类型预测模型,提取目标企业的特征信息,并将其输入至企业类型预测模型,以企业类型预测结果确定目标企业的企业类型是否为虚开发票企业。文献3通过环路检测的方法来进行虚开增值税专用发票检测,基于分布式并行计算方法对环路检测进行了改进,将计算任务分配给分布式集群中的多台计算机中,大大提高了计算效率。以上文献所述方法主要存在以下问题:文献1中没有考虑到企业在生产经营过程中通常会对进项商品进行加工、制造、处理等过程,销项商品是进一步得到的产品,其名称会和进项商品不同,不能在进项商品数据集合中匹配到对应的名称,这将会导致发票虚开疑点定位不准。文献2依赖于标明企业是否为虚开发票企业的样本集,在实际应用中,存在样本集获取难度大、样本数量少的难题。文献3仅能对资金经过多个账户后重新回到源点账户的虚开发票情况进行检测,而实际发票虚开具有多种形式,资金流向不一定构成环路,该方法的识别类型具有一定的局限性。
技术实现思路
为了克服上述现有技术的不足,本专利技术的目的在于一种基于并行关联规则挖掘的发票虚开识别方法。基于数据挖掘中的关联规则挖掘的思想,提出一种并行Apriori算法对目标企业的上下游企业所属行业进行关联规则挖掘,通过构建事务集、挖掘频繁项集、生成关联规则、计算自洽性,进而识别发票虚开行为,以解决
技术介绍
的方法中发票虚开疑点定位不准、依赖样本集、识别类型具有局限性的问题。本专利技术采用分布式计算框架Spark处理数据,采用分布式文件系统HDFS(HadoopDistributedFileSystem)存储运算结果。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表示销方行业明细代码。然后,将提取结果读入Sp本文档来自技高网
...

【技术保护点】
1.一种基于并行关联规则挖掘的发票虚开识别方法,其特征在于,包括以下步骤:步骤1:设计事务集构建模块,查询数据库中的企业信息表和发票记录表,得到所需会计期间内的有效发票记录,以及发票记录中购销方纳税人识别号对应的行业明细代码,汇总发票记录,得到各企业的上下游企业的行业明细代码集合,构建以上下游企业的行业明细代码集合为项集的事务,以企业的纳税人识别号作为事务唯一标识,以企业的行业明细代码作为事务所属行业,然后将所有事务汇总得到事务集,其中,所述企业信息表为存储纳税人识别号和行业明细等企业信息的数据表;所述发票记录表为存储购销方纳税人识别号、金额、税额、开票日期、作废标志等发票信息的数据表;所述会计期间为在时间上把连续不断的企业经营活动及其结果用起止日期加以划分形成的时间区间;步骤2:设计频繁项集挖掘模块,查询数据库中的行业明细代码表,得到行业明细代码集合,遍历行业明细代码集合,对每种行业明细代码,从步骤1得到的事务集中提取所属行业为该行业明细代码的事务子集,然后基于并行Apriori算法挖掘该行业明细代码的频繁项集,其中,所述行业明细代码表为存储行业明细代码、行业明细名称等行业信息的数据表;所述频繁项集为支持度大于等于最小支持度minSup的项集,其中支持度为项集在事务集中出现的频率;步骤3:设计关联规则生成模块,遍历步骤2得到的行业明细代码集合,对每种行业明细代码,读取步骤2中得到的该行业明细代码对应的频繁项集,并行处理各频繁项集生成该行业明细代码的关联规则,其中,所述关联规则为置信度大于等于最小置信度minConf的强关联规则,其中置信度为关联规则前件出现时后件出现的条件概率;步骤4:设计自洽性计算模块,遍历步骤2得到的行业明细代码集合,对每种行业明细代码,从步骤1得到的事务集中提取所属行业为该行业明细代码的事务子集,读取步骤3中得到的该行业明细代码对应的关联规则,并行计算事务子集中每条事务对应企业的自洽性,其中,所述自洽性为遍历事务的项集,以当前遍历项作为关联规则后件,以项集中除当前遍历项外的子集作为关联规则前件,生成的关联规则能在该事务行业明细代码对应的关联规则中匹配到的项占项集的比例;步骤5:设计发票虚开识别模块,遍历步骤2得到的行业明细代码集合,对每种行业明细代码,读取步骤4中得到的该行业明细代码计算自洽性后的事务集,对事务集中自洽性低于设定的自洽性阈值minSC的事务进行过滤,并行识别过滤后的事务集中每条事务中存在发票虚开行为的纳税人识别号,汇总得到该行业明细代码的发票虚开纳税人识别号集合,基于纳税人识别号与企业一一对应的关系,则可获得对应的存在发票虚开行为的企业。...

【技术特征摘要】
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项候选集为空,则执行下一...

【专利技术属性】
技术研发人员:郑庆华杨征宽阮建飞董博于洪潮
申请(专利权)人:西安交通大学
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1