汽车制造业偷漏税行为的识别与数据挖掘分析Word格式文档下载.docx
《汽车制造业偷漏税行为的识别与数据挖掘分析Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《汽车制造业偷漏税行为的识别与数据挖掘分析Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。
图1偷漏税纳税人识别流程
3建模过程与求解
3.1模型的思想
图2建模总思路
3.2模型的建立
3.2.1数据探索分析
数据探索性分析是对数据进行初步研究,发现数据的内在规律特征,有助于选择合适的数据预处理和数据分析技术。
样本数据包含15个特征属性,分别是14个输入特征和1个输出特征,有纳税人基本信息和经营指标数据,本案例主要采用了分布分析方法,对样本数据精细数据探索分析。
1.分布分析
在样本数据中,对所有显示漏税的汽车企业进行分布分析,统计出不同销售类型、销售模式的漏税分布情况。
如图1和图2,发现不同销售类型、销售模式都有漏税企业,因此,在接下来的分析中需考虑销售类型、销售模式的影响。
图3漏税企业销售模式分布
图4漏税企业销售类型分布情况
3.2.2数据预处理
1.数据清洗
数据清洗的主要目的是从业务以及建模的相关需要方面进行考虑,筛选出需要的数据,剔除无关、重复的数据,处理异常值,缺失值,重编码处理等。
本案例主要进行以下操作:
❑重编码处理。
样本数据包含销售模式、销售类型、输出三个类别型数据特征,因此对这三个数据特征进行重编处理。
重编码的处理结果如下表:
销售类型
重编码结果
销售模式
输出
大客车
1
4S店
正常
工程车
2
多品牌经营店
异常
国产轿车
3
二级及二级以下代理商
进口轿车
4
其它
卡车及轻卡
5
一级代理商
6
商用货车
7
微型面包车
8
❑缺失值检测和处理。
考虑抽取到数据有可能存在缺失的现象,这会对后面的建模产生比较大的影响。
为了达到较好的建模效果,需要对缺失值进行处理。
在本案例中,并未检测到数据缺失。
3.2.3构建模型
在专家样本准备完成后,需要对数据集进行划分为测试样本和训练样本,随机选取20%作为测试样本,其余80%的数据作为训练样本。
偷漏税行为自动识别可通过构建分类预测模型来实现,比较常用的分类预测模型有LM神经网络和CART决策树,各个模型都有各自的优点,故采用这两种方法构建偷漏税行为识别模型并从中选择最优的分类模型,并从中选择最优的分类模型。
构建LM神经网络和CART决策树模型时输入项包括{销售类型,销售模式,汽车销售平均毛利,维修毛利,企业维修收入占销售收入比重,增值税税负,存货周转率,成本费用利润率,整体理论税负,整体税负控制数,办牌率,单台办牌手续费收入,代办保险率,保费返还率},输出项为{输出}。
(1)数据划分
对专家样本随机选取20%作为测试样本,剩下的80%作为训练样本。
其代码如下:
代码清单1原始数据分为训练数据和测试数据
%%把数据分为两部分:
训练数据、测试数据
clear;
%参数初始化
datafile='
data/model.xls'
;
%数据文件
trainfile='
tmp/train_model.xls'
;
%训练数据文件
testfile='
tmp/test_model.xls'
%测试数据文件
proportion=0.8;
%设置训练数据比例
%%数据分割
[num,txt]=xlsread(datafile);
%split2train_test为自定义函数,把num变量数据(按行分布)分为两部分
%其中训练数据集占比proportion
[train,test]=split2train_test(num,proportion);
%%数据存储
xlswrite(trainfile,[txt;
num2cell(train)]);
%写入训练数据
xlswrite(testfile,[txt;
num2cell(test)]);
%写入测试数据
disp('
数据分割完成!
'
);
(2)LM神经网络模型
设定LM神经网络的输入节点数为14,输出节点数为1,隐层节点数为10,显示间隔次数为25、最大循环次数为1000,目标误差为0.0,初始mu为0.001,mu增长比率为10,mu减少比率为0.1,mu最大值为1010,最大校验失败次数为6,最小误差梯度为le-7。
训练样本建模的混淆矩阵,如图5所示,分类准确率为83.5%,正常缴税行为被误判为偷漏税行为占正常缴税行为的8.2%,偷漏税行为被误判为正常缴税行为占正常偷漏税行为的8.2%,构建LM神经网络模型的代码,如代码清单2所示。
图5利用训练样本构建LM神经网络的混淆矩阵
代码清单2构建LM神经网络模型的代码
%%LM神经网络模型构建
data/train2_model.xls'
%训练数据
netfile='
tmp/net2.mat'
%构建的神经网络模型存储路径
trainoutputfile='
tmp/lm_train2_output_data.xls'
%训练数据模型输出文件
%%读取数据并转化
[data,txt]=xlsread(trainfile);
input=data(:
1:
end-1);
targetoutput=data(:
end);
targetoutput=targetoutput+1;
%所有数据都加1,方便调用ind2vec
%输入数据变换
input=input'
targetoutput=targetoutput'
targetoutput=full(ind2vec(targetoutput));
%%新建LM神经网络,并设置参数
net=patternnet(10,'
trainlm'
net.trainParam.epochs=1000;
net.trainParam.show=25;
net.trainParam.showCommandLine=0;
net.trainParam.showWindow=0;
net.trainParam.goal=0;
net.trainParam.time=inf;
net.trainParam.mu=0.001;
net.trainParam.mu_dec=0;
net.trainParam.mu_inc=10;
net.trainParam.mu_max=1e10;
net.trainParam.min_grad=1e-7;
net.trainParam.max_fail=6;
net.performFcn='
mse'
%训练神经网络模型
net=train(net,input,targetoutput);
%%使用训练好的神经网络测试原始数据
output=sim(net,input);
%%画混淆矩阵图
plotconfusion(targetoutput,output);
%%数据写入到文件
save(netfile,'
net'
%保存神经网络模型
output=vec2ind(output);
output=output'
xlswrite(trainoutputfile,[txt,'
模型输出'
num2cell([data,output-1])]);
LM神经网络模型构建完成!
(3)CART决策树模型
利用训练样本构建CART决策树模型,得到混淆矩阵,如图6所示,分类准确率为96.9%,正常缴税行为被误判为偷漏税行为占正常缴税行为的1%,偷漏税行为被误判为正常缴税行为占正常偷漏税行为的2.1%,构建决策树模型的代码,如代码清单3所示。
图6利用训练样本构建CART决策树的混淆矩阵
代码清单3构建CART决策树模型的代码
%%构建CART决策树模型
treefile='
tmp/tree2.mat'
%构建的决策树模型存储路径
tmp/dt_train2_output_data.xls'
%%读取数据,并提取输入输出
[data,txt]=xlsread(trainfile);
%使用训练数据构建决策树
tree=fitctree(input,targetoutput);
%%使用构建好的决策树模型对原始数据进行测试
output=predict(tree,input);
%变换数据并画混淆矩阵图
output=output'
output=full(ind2vec(output+1));
targetoutput=full(ind2vec(targetoutput+1));
%%保存数据
save(treefile,'
tree'
%保存决策树模型
CART决策树模型构建完成!
3.2.4结果与分析
1.CART决策树模型测试结果
利用测试样本测试CART决策树模型,得到混淆矩阵,如图7所示,分类准确率为88.9%,正常缴税行为被误判为偷漏税行为占正常缴税行为的7.4%,偷漏税行为被误判为正常缴税行为占正常偷漏税行为的3.7%,CART决策树模型测试的代码,如代码清单4所示。
图7利用测试样本构建CART决策树的混淆矩阵
代码清单4
%%CART决策树模型测试
data/test_model.xls'
tmp/tree.mat'
%决策树模型存储路径
dttestoutputfile='
tmp/dt_test_output_data.xls'
%测试数据模型输出文件
[data,txt]=xlsread(testfile);
input=data(:
target=data(:
load(treefile);
%载入决策树模型
output_tree=predict(tree,input);
%决策树输出数据变换以及画ROC曲线图
output_tree=full(ind2vec(output_tree'
+1));
targetoutput=full(ind2vec(target'
figure
(1)
plotroc(targetoutput,output_tree);
figure
(2)
plotconfusion(targetoutput,output_tree);
%%写入数据
output_tree=vec2ind(output_tree);
output_tree=output_tree'
-1;
xlswrite(dttestoutputfile,[txt,'
num2cell([data,output_tree])]);
CART决策树模型测试完成!
2.LM神经网络模型
测试样本建模的混淆矩阵,如图8所示,分类准确率为74.1%,正常缴税行为被误判为偷漏税行为占正常缴税行为的14.8%,偷漏税行为被误判为正常缴税行为占正常偷漏税行为的11.1%,LM神经网络模型测试的代码,如代码清单5所示。
图8利用测试样本构建LM神经网络的混淆矩阵
代码清单5
%%LM神经网络模型测试
tmp/net.mat'
%神经网络模型存储路径
lmtestoutputfile='
tmp/lm_test_output_data.xls'
%%使用构建好的神经网络模型对原始数据进行测试
load(netfile);
%载入神经网络模型
output_lm=sim(net,input'
%测试数据数据变换以及画ROC曲线图
plotconfusion(targetoutput,output_lm);
plotroc(targetoutput,output_lm);
output_lm=vec2ind(output_lm);
output_lm=output_lm'
xlswrite(lmtestoutputfile,[txt,'
num2cell([data,output_lm])]);
LM神经网络模型测试完成!
3.用户类型特征分析
根据训练结果以及测试结果可以知道,CART决策树模型的分类性能更好,能应用于汽车企业偷漏税识别。
通过读取根据训练样本建立的CART决策树分类模型的规则,可以发现,CART决策树主要通过汽车销售平均毛利、维修毛利、成本费用利润率、整体理论税负、整体税负控制数五个指标进行决策分类。
偷漏税汽车企业在这五个指标的特征的具体类别五类,分别为:
整体理论税负小于0.00225、成本费用利润率小于0.0111、维修毛利小于0.5161;
整体理论税负小于0.00225、成本费用利润率大于等于0.01495;
整体理论税负大于等于0.00225、汽车销售平均毛利小于-0.01445;
整体理论税负大于等于0.00225、汽车销售平均毛利大于等于-0.01445、成本费用利润率大于等于0.06995;
整体理论税负大于等于0.00225、汽车销售平均毛利大于等于-0.01445、成本费用利润率小于0.06995、整体税负控制数大于等于0.83325。
读取决策树模型规则及结果如代码清单6所示:
代码清单6
fid=fopen('
tree.txt'
'
w'
fclose(fid);
diary('
)
决策树规则如下:
)
view(tree);
diaryoff
Decisiontreeforclassification
1ifx10<
0.00225thennode2elseifx10>
=0.00225thennode3else1
2ifx9<
0.0111thennode4elseifx9>
=0.0111thennode5else0
3ifx4<
-0.01445thennode6elseifx4>
=-0.01445thennode7else1
4ifx5<
0.5161thennode8elseifx5>
=0.5161thennode9else0
5ifx9<
0.01495thennode10elseifx9>
=0.01495thennode11else0
6class=0
7ifx9<
0.06995thennode12elseifx9>
=0.06995thennode13else1
8class=0
9class=1
10class=1
11class=0
12ifx11<
0.83325thennode14elseifx11>
=0.83325thennode15else1
13class=0
14class=1
15class=0
3.3模型的评价与改进
3.3.1.模型的评价
对于训练样本,CART决策树模型的分类准确率都比较好,为96.9%。
为了进一步说明模型分类的性能,故利用测试样本对两个模型进行评价,一个优秀分类器所对应的ROC曲线应该是尽量靠近左上角。
分别画出LM神经网络和3CART决策树在测试样本下的ROC曲线,如图9和图10所示。
LM神经网络和CART决策树对测试数据集的测试代码,如代码清单4和5所示。
图9CART决策树在测试样本下的ROC曲线
图10LM神经网络在测试样本下的ROC曲线
对比两个模型的ROC曲线,可以发现,无论是正常企业还是漏税企业的测试,CART决策树的ROC曲线比LM神经网络的ROC曲线更加靠近左上角,CART神经网络的ROC曲线下的面积更大,说明CART神经网络模型的分类性能更好,能用来识别偷漏税行为。
3.3.2.模型的不足
就现有的数据而言,我们的数据量很小,只包含127个数据,训练的效果可能存在较大误差。
3.3.3.模型的改进
收集更多的数据,增加分类模型的数据量。
4实验总结
4.1开发环境与软件配置
(1)平台:
Windows10
(2)编程语言:
MATALB
4.2小组分工
(1)黄嘉昌:
分析问题,确定建模思路、建模、编程、分析结果;
(2)赖建蓉:
分析问题,确定建模思路、分析结果、撰写论文。
4.3个人小结
参考文献
[1]
范明,孟小峰.数据挖掘概念与技术[M].北京:
机械工业出版社,2012
[2]
张良均.Matlab数据分析与挖掘实战[M].北京:
机械工业出版社,2015