基于随机森林的偷漏税行为自动识别
2018-10-29吴超罗璟
吴超 罗璟
摘要:企业偷漏税手段呈多样化、专业化、普遍化、隐蔽化趋势。为更好地识别企业是否存在偷漏税行为,基于Python语言,在Anaconda集成开发环境下通过机器学习的Scikit-Learn包构建随机森林模型,通过交叉验证算法选择最优模型。对汽车销售行业纳税人是否存在偷漏税行为进行自动识别。结果表明,基于随机森林模型的偷漏税行为自动识别相对于其它常见的分类模型(k-近邻算法、逻辑回归模型、决策树模型和Adaboost算法),具有较高的准确率,分类性能更好,可以满足偷漏税行为的自动识别需求。
关键词:
随机森林;机器学习;偷漏税行为;分类算法
DOIDOI:10.11907/rjdk.181865
中图分类号:TP312
文献标识码:A 文章编号文章编号:1672-7800(2018)008-0013-04
英文摘要Abstract:In recent years, tax evasion has become a diversification, specialization, universalization and concealment. Therefore, in order to better identify whether the company has tax evasion behavior, it builds a random forest model based on Python language in the Anaconda integrated development environment through the Scikit-Learn package of Machine learning, selects the optimal model through cross validation algorithm, and then sells the automobile. Whether the industry taxpayer has tax evasion and conduct automatic identification. The results show that the automatic identification of tax evasion behavior based on random forest model has better accuracy than other common classification models (k-nearest neighbor algorithm, logistic regression model, decision tree model and Adaboost algorithm) and has more Good classification performance can satisfy the automatic identification of tax evasion behavior. Based on this, it will automatically identify 15 taxpayers in the automobile sales industry for tax evasion.
In view of the diversified, specialized, universal, and concealed development trend of corporate tax evasion in recent years, in order to better identify whether the company has tax evasion, A random forest model is constructed by the Scikit-Learn package through machine learning in the Anaconda integrated development environment and the optimal model is selected by a cross-validation algorithm. Whether the taxpayers in the automobile sales industry are automatically identified for tax evasion. The results show that the automatic identification of tax evasion behavior based on random forest model has higher accuracy than other common classification models (k-nearest neighbor, logistic regression model, decision tree model and Adaboost algorithm), and the classification performance is better so that the automatic identification of tax evasion is successfully conducted.
英文關键词Key Words:random forest;machine learning;tax evasion behavior;classification algorithm
0 引言
税收是国家赖以生存的物质基础,与国家兴衰息息相关,然而税收涉及的两个主体:征税人和纳税人之间永远存在“博弈”关系[1]。近年来,企业偷漏税现象屡见不鲜,给国家造成了很大的经济损失和不良的社会影响[2]。税务稽查对打击偷逃骗税等违法活动,增强纳税人守法意识发挥着重要作用。传统的稽查选案以举报信息为依据,主要依靠专业稽查人员的经验和直觉识别偷漏税行为[3]。但企业偷漏税手段已呈多样化、专业化、普遍化、隐蔽化的趋势[4]。机器学习模型和算法应用于税务稽查效果明显。相关研究有:李亘[5]利用决策树模型和SLIQ算法进行简单分类,然后对税务稽查进行计算机选案。刘鹏[6]在决策树模型分类的基础上进行聚类分析,验证了基于划分的分析方法在实际税务稽查工作中存在一定的问题。所以,决策树模型对于偷漏税行为的识别并非最佳。
随机森林是基于Bagging实现的一种机器学习模型,是以决策树算法为机器学习的集成学习模型。随机森林模型在医学、水利工程、电力工程、企业决策等不同领域有很好的应用,能取得很高的预测准确率[7-13]。汽车产业存在偷漏税现象[14-15],汽车销售行业在税收上存在少开发票金额、少计收入,上牌、按揭、保险等一条龙服务不入账,不及时确认保修索赔等情况,造成大量税收流失[16-17]。本文将随机森林模型应用于税务稽查的计算机选案,针对汽车销售行业进行偷漏税行为自动识别。通过收集汽车销售行业的部分经营数据,基于机器学习方法,结合汽车销售行业纳税人属性,衡量纳税人经营特征,利用随机森林算法建立偷漏税行为识别模型,对纳税人进行识别。
1 CART决策树与随机森林算法
1.1 CART决策树
决策树(Decision Tree, DT)是一种集成学习算法,属于一种描述分类的树形结构,由节点和向边组成,根据递归特征对数据集进行分割,使子数据集有一个最好的分类过程。这个过程是对特征空间的划分,也是对决策树的构建。
分类与回归(classification and regression tree,CART)算法由Breiman等在1984年提出,是一种决策树学习方法。CART决策树的生成是递归构建二叉决策树过程,分类树用基尼指数(Gini index)最小化准则选择最优特征,同时决定该特征的最优二值切分点。
CART决策树的生成通过计算基尼指数,使基尼指数最小作为特征选择的准则。从根节点开始,递归产生决策树,将训练集分割为基本正确分类的子集。
1.2 随机森林算法
Bagging是一种并行式集成学习框架,基于自助采样法(bootstrap sampling)。给定包含m个样本的数据集,先随机取出一个样本放入采样集,再把该样本放回到初始数据集,保证下次该样本仍有可能被选中,这样m次随机采样得到包含m个样本的采样集。然后采样出T个含m个训练样本的采样集,基于每个采样集训练出一个基学习器,再将这些基学习器结合。在对预测输出进行结合时,Bagging通常采用簡单投票法。
随机森林(Random Forest,RF)是基于Bagging 实现的,以决策树算法为基学习器,在构建Bagging采样基础上,进一步在决策树训练中引入随机属性。
随机森林算法实现步骤:①采用自助采样法(bootstrap sampling)从样本集中选取n个样本作为一个训练集;②用抽样得到的样本集生成一棵决策树。在生成的每一个节点随机不重复地选择d个特征,然后利用这d个特征分别对样本集进行划分,找到最佳的划分特征(使用基尼指数最小作为特征选择的准则);③重复步骤①、步骤②共k次,k为随机森林中决策树的个数;④用训练得到的随机森林对测试样本进行预测,并用票选法决定预测结果。
2 自动识别模型建立与评价
2.1 样本和指标选取
偷漏税指纳税人以不缴或少缴税款为目的,采取各种不公开手段,隐瞒真实情况,欺骗税务机关的行为。本文参照税务稽查指标,针对汽车销售行业选择12个指标作为偷漏税行为自动识别模型的预测指标,包括汽车销售平均毛利(x1)、维修毛利(x2)、企业维修收入占销售收入比重(x3)、增值税税负(x4)、存货周转率(x5)、成本费用利润率(x6)、整体理论税负(x7)、整体税负控制数(x8)、办牌率(x9)、单台办牌手续费收入(x10)、代办保险率(x11)和保费返还率(x12)。
根据这12个指标,选择汽车销售行业124个纳税人的124组数据作为样本,各企业销售模式包括4S店、多品牌经营店、一级代理商、二级及二级以下代理商和其它类型。其中124个纳税人中有55个存在偷漏税行为,69个不存在偷漏税行为。样本数据中,输出为“正常”和“异常”,分别用“1”代表“正常”,表示不存在偷漏税行为,“0”代表“异常”,表示存在偷漏税行为。
基于上述12个指标,本文采用Python的集成开发环境Anaconda,借助机器学习的Scikit-Learn包构建基于随机森林的偷漏税行为自动识别模型。
2.2 数据预处理
2.2.1 缺失值处理
在原始数据中发现存在数据缺失现象,如果删除这组数据将会影响最终的计算结果。因此,为了达到较好的建模效果,需要对缺失值进行处理,本文采用拉格朗日插值法对缺失值进行插补。
其中,x为缺失值对应的下标序号,Ln(x)为插值结果,xi为非缺失值yi的下标序号。
2.2.2 规范化
2.3 模型构建
2.3.1 数据划分
对样本数据随机选取20%作为测试样本,剩下的80%作为训练数据,用训练集样本在各种条件下(不同的参数)训练模型,从而得到不同的模型。在测试集上评价各个模型,然后选出最优模型。
2.3.2 交叉验证
“k折交叉验证”是将数据D划分为k个大小相似的子集,且D=D1∪D1∪…∪Dk,Di∩Dj=φ(i≠j),子集Di保持数据分布的一致性。选择k-1个子集的并集作为训练集,剩下的那个子集作为测试集进行k次训练和测试,最终选择最优的模型和参数。
预测结果如图1所示,其中Training score表示验证集上的准确率,n_estimators表示决策树的数量。从图中可以看出,当决策树数量(n_estimators)比较小时(小于150),随着决策树数目的增加,模型预测精度会有一定提升;当决策树数量达到一定数目时(大于150),随机森林模型的预测精度基本保持不变,稳定在88.90%,这说明RF模型具有良好的不易过拟合性质。因此,随机森林预测中n_estimators属性值选择150。
另外,针对同样的训练集和测试集样本,利用k-近鄰算法(KNN)、逻辑回归模型(LR)、决策树模型(DT)和Adaboost算法进行预测,与随机森林算法预测结果进行比较,预测结果见表1。从表中可以看出,KNN模型和RF模型的预测准确率都达到了80%以上,具有较好的分类效果。但相比KNN、LR和DT这样的单一机器学习模型,集成学习模型(AdaBoost和RF)训练耗时较大。另外,DT模型在验证集有较好的训练得分,但在测试集上训练准确率相对较低,模型可能存在过拟合现象,不适合作为本文的分类器。
2.3.3 模型评价
5个模型分类准确率相差不大,特别是KNN模型和RF模型。为了进一步评估模型性能,采用其它评价指标进行评价。
对于二分类问题,可将数据集按真实类别和分类器预测类别组合划分为真正例(TP)、假正例(FP)、真反例(TN)和假反例(FN)4种情况,其中,TP表示将正类预测为正类数, FN表示将正类预测为负类数,FP表示将负类预测为正类数,TN表示将负类预测为负类数。评价二分类问题性能的指标包括精确率(P)和召回率(R),单独使用这两个指标进行评价是不全面的。实际上,F1值可以反映精确率和召回率的整体性能,F1定义为精确率和召回率的调和平均,即:
为了更好地比较不同模型的预测性能,采用ROC曲线进行评价,通过比较ROC曲线下的面积(AUC值)大小,分别计算出不同模型对应的精确率、召回率、F1值和AUC值,详细结果如表2所示。
从表2可以看出,不同模型的F1值相差不大,不能很好地说明RF模型具有显著的分类性能。但是,比较5种模型的AUC值,RF模型的AUC值达到了0.831,相比其它模型更加显著,因此RF模型分类性能较好,可以应用于汽车销售行业的偷漏税自动识别。
2.3.4 自动识别结果
选择15个汽车销售行业纳税人的12个指标数据,经过数据处理得到模型输入数据,利用构建的偷漏税行为自动识别模型计算偷漏税行为识别结果,并与实际结果对比,如表3所示。其中,x1-x12是12个特征指标,y是实际输出值,y_pred是预测输出值,“*”表示预测结果错误的纳税人。从表中可以看出,总的汽车销售行业纳税人有15个,正确识别出偷漏税行为的纳税人有13个,偷漏税行为识别错误的纳税人有2个,预测准确率达到86.67%,整体上显示自动识别偷漏税行为准确率较高。
3 结语
本文基于Python语言,在Anaconda集成开发环境下,通过机器学习的Scikit-Learn包构建随机森林模型,通过交叉验证算法选择最优模型,对汽车销售行业纳税人是否存在偷漏税行为进行自动识别。结果表明,基于随机森林模型的偷漏税行为自动识别相对于其它模型(k-近邻算法、逻辑回归模型、决策树模型和Adaboost算法)具有较高的准确率。为了进一步评价模型的分类性能,计算出随机森林模型的AUC值为0.831,高于其它常见的分类模型,表示随机森林模型对于偷漏税行为的识别具有较高的准确率,而且具有更好的分类性能,可以满足偷漏税行为自动识别需求。
参考文献:
[1] 齐鑫鑫.识别偷税的税务稽查方法研究[D].长春:吉林大学,2010.
[2] 鲁华军.企业偷漏税的识别[J].湖北财税:理论版,2000(10):35-36.
[3] 陈仕鸿,张英明.二分类Logistic回归分析在税务稽查中的应用[J].华南金融电脑,2009(6):48-49.
[4] 王真华.浅析企业偷漏税原因及防范措施[J].时代经贸,2010(23):78-79.
[5] 李亘.数据挖掘技术在税务稽查选案中的应用[J].电脑知识与技术:学术交流,2007(23):1224-1225,1377.
[6] 刘鹏.数据挖掘技术在税务稽查中的研究与实现[D].西安:西安电子科技大学,2011.
[7] 王宇燕,王杜娟,王延章,等.改进随机森林的集成分类方法预测结直肠癌存活性[J].管理科学,2017(1):95-106.
[8] 胡添翼,戴波,何启,等.基于随机森林分类算法的边坡稳定预测模型[J].人民黄河,2017(5):115-118.
[9] 盛夏,李斌,张迪.基于数据挖掘的上市公司信用评级变动预测[J].统计与决策,2016(15):159-162.
[10] 孙菲菲,曹卓,肖晓雷.基于随机森林的分类器在犯罪预测中的应用研究[J].情报杂志,2014,33(10):148-152.
[11] 贺建章,王海波,季知祥,等.基于随机森林理论的配电变压器重过载预测[J].电网技术,2017,41(8):593-597.
[12] 李伟,陈海波.急倾斜煤层顶煤可放性随机森林模型分类预测及应用[J].黑龙江科技大学报,2016,26(4):373-377.
[13] 沈晶磊,虞慧群,范贵生,等.基于随机森林算法的推荐系统的设计与实现[J].计算机学报,2017,44(11):164-167,186.
[14] 刘宗巍,王悦,郝瀚,等.中国汽车产业税收分配机制及改革策略[J].税务与经济,2016(2):1-9.
[15] 刘锦君.JL汽车公司核心税种的税务筹划研究[D].沈阳:辽宁大学,2016.
[16] 张霏佳,陆伟强.完善汽车销售行业税收征管[J].浙江经济,2011(18):44-45.
[17] 饶瑶瑶.关于汽车4S店税务风险管理的调研报告[D].杭州:浙江财经大学,2016.
[18] 周志华.机器学习[M].北京:清华大学出版社,2016:173-178.
[19] 李航.统计学习方法[M].北京:清华大学出版社,2012:58-72.
[20] 张良均.Python数据分析与挖掘实战[M].北京:机械工业出版社,2015:33-37.
(责任编辑:杜能钢)