python数据分析与挖掘实战-第六章拓展偷漏税用户识别
第六章分别使用了LM神经网络和CART 决策树构建了 电力窃漏电用户自动识别模型,章末提出了拓展思考–偷漏税用户识别。
第六章及拓展思考完整代码
https://github.com/dengsiying/Electric_leakage_users_automatic_identify.git
项目要求:汽车销售行业在税收上存在多种偷漏税情况导致政府损失大量税收。汽车销售企业的部分经营指标能在一定程度上评估企业的偷漏税倾向,附件数据提供了汽车销售行业纳税人的各个属性和是否偷漏税标识,请结合各个属性,总结衡量纳税人的经营特征,建立偷漏税行为识别模型。
项目步骤:
- 数据初步探索分析
- 数据预处理
- 模型选择与建立
- 模型比较
数据初步探索分析数据预处理模型选择与建立模型比较
1.数据初步探索分析
![](https://img-
blog.csdn.net/20180329142827786?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTMxMjkxMDk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
一共124个样本,16个属性。
先用Excel看下不同销售类型和销售模式下的输出频率分布。
图1 不同销售类型下的偷漏税频率分布
图2 不同销售模式下的偷漏税频率分布
可以看到所有销售类型和销售模式都有异常偷漏税情况,由图1可以看出来国产轿车异常数最高,但是与正常数相比,可以明显看出来大客车的异常数远高于正常数,说明大客车更多的存在偷漏税情况。同样由图2可以看出来一级代理商、二级及二级以下代理商的更多的
多的存在偷漏税情况。
接下来用python进行分析。分异常和正常两类看下数值型经营指标。
datafile = 'Taxevasion identification.xls'df = pd.read_excel(datafile)#print(data.describe().T)df_normal = df.iloc[:,3:16][df[u"输出"]=="正常"]df_abnormal=df.iloc[:,3:16][df[u'输出']=='异常']df_normal.describe().T.to_excel('normal.xls')df_abnormal.describe().T.to_excel('abnormal.xls')
异常
![](https://img-
blog.csdn.net/20180329145923312?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTMxMjkxMDk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
正常
![](https://img-
blog.csdn.net/20180329150022239?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTMxMjkxMDk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
2.数据预处理
无缺失值,暂不处理。 主要对销售类型、销售模式以及输出进行虚拟变量的建立。
df1 = pd.get_dummies(df[u'销售类型'],prefix='type')df2 = pd.get_dummies(df[u'销售模式'],prefix='model')res = pd.get_dummies(df[u'输出'],prefix='result')df = pd.concat([df,df1,df2,res],axis=1)df.drop([u'销售类型',u'销售模式',u'输出'],axis=1,inplace = True)#正常列去除,异常列作为结果 1表示异常 0表示正常df.drop([u'result_正常'],axis=1,inplace=True)df.rename(columns={u'result_异常':'result'},inplace = True)
[/code]## 3.模型选择与建立分别使用决策树模型和逻辑回归模型。3.1 决策树模型```code#决策树模型data = df.as_matrix()shuffle(data)p = 0.8train = data[:int(len(data)*p),:]test = data[int(len(data)*p):,:]tree = DecisionTreeClassifier()X = train[:,1:-1]Y = train[:,-1]tree.fit(X,Y)#保存模型joblib.dump(tree,'tree1.pkl')#混淆矩阵cm = confusion_matrix(Y,tree.predict(X))plt.matshow(cm,cmap=plt.cm.Blues)plt.colorbar()for x in range(len(cm)): #数据标签for y in range(len(cm)):plt.annotate(cm[x,y], xy=(x, y), horizontalalignment='center', verticalalignment='center')plt.ylabel('True label') #坐标轴标签plt.xlabel('Predicted label') #坐标轴标签plt.show() #显示作图结果
[/code]训练集混淆矩阵:![](https://img-
blog.csdn.net/20180329154713263?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTMxMjkxMDk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)测试集:![](https://img-
blog.csdn.net/20180329154926453?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTMxMjkxMDk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)决策树模型在训练集上准确率为100%,在测试集上准确率为88%。3.2 逻辑回归模型 ```codefrom sklearn.linear_model import LogisticRegressionlr = LogisticRegression(C=1.0,penalty='l1',tol=1e-6)lr.fit(X,Y)
[/code]训练集混淆矩阵:![](https://img-
blog.csdn.net/20180329155919137?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTMxMjkxMDk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) 样本集:![](https://img-
blog.csdn.net/20180329160048219?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTMxMjkxMDk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)逻辑回归模型训练集准确率93%,测试集准确率72%。各项属性权重为:![](https://img-
blog.csdn.net/2018032916023620?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTMxMjkxMDk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) 可以看出来与最开始的分析相差不多,大客车和一级代理商都有很大可能存在偷漏税情况。## 3.模型比较```code#两个模型的roc曲线fig,ax=plt.subplots()fpr, tpr, thresholds = roc_curve(test[:,-1], tree.predict_proba(test[:,1:-1])[:,1], pos_label=1)fpr2, tpr2, thresholds2 = roc_curve(test[:,-1], lr.predict_proba(test[:,1:-1])[:,1], pos_label=1)plt.plot(fpr, tpr, linewidth=2, label = 'ROC of CART', color = 'blue') #作出ROC曲线plt.plot(fpr2, tpr2, linewidth=2, label = 'ROC of LR', color = 'green') #作出ROC曲线plt.xlabel('False Positive Rate') #坐标轴标签plt.ylabel('True Positive Rate') #坐标轴标签plt.ylim(0,1.05) #边界范围plt.xlim(0,1.05) #边界范围plt.legend(loc=4) #图例plt.show() #显示作图结果
[/code]![](https://img-
blog.csdn.net/20180329160945915?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTMxMjkxMDk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) ROC曲线越靠近左上角,则模型性能越优,当两个曲线做于同一个坐标时,若一个模型的曲线完全包住另一个模型,则前者优,当两者有交叉时,则看曲线下的面积,上图明显蓝色线下的面积更大,即CART决策树模型性能更优。
由此可见,对于本文中的例子来说,CART决策树模型不管从混淆矩阵来看,还是从ROC曲线来看,其性能都要优于逻辑回归模型。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210608151750993.gif)
python数据分析与挖掘实战-第六章拓展偷漏税用户识别相关推荐
- Python数据分析与挖掘实战——第三章
第三章 数据探索 目录 第三章 数据探索 一.数据探索 二.数据质量分析 1. 主要任务: 2. 缺失值分析 3. 异常值分析 4. 一致性分析 三.数据特征分析 1. 分布分析 2. 对比分析 3. ...
- 《Python数据分析与挖掘实战》第12章(中)——协同推荐
本文是基于<Python数据分析与挖掘实战>的实战部分的第12章的数据--<电子商务网站用户行为分析及服务推荐>做的分析. 由于此章内容很多,因此,分为三个部分进行分享--数据 ...
- 《Python数据分析与挖掘实战》一第1章 数据挖掘基础1.1 某知名连锁餐饮企业的困惑...
本节书摘来自华章出版社<Python数据分析与挖掘实战>一书中的第1章,第1.1节,作者 张良均 王路 谭立云 苏剑林,更多章节内容可以访问云栖社区"华章计算机"公众号 ...
- 《Python数据分析与挖掘实战》第7章-聚类+绘制雷达图
本文是基于<Python数据分析与挖掘实战>的第七章的数据--<航空公司客户价值分析>做的分析对部分代码,做出补充,对原文中的雷达图进行了实现. 1. 背景与目标分析 此项目旨 ...
- 《Python数据分析与挖掘实战》第10章(下)——DNN2 筛选得“候选洗浴事件”3 构建模型
本文是基于<Python数据分析与挖掘实战>的实战部分的第10章的数据--<家用电器用户行为分析与事件识别> 做的分析. 接着前一篇文章的内容,本篇博文重点是处理用水事件中的属 ...
- 《Python数据分析与挖掘实战》第11章——应用系统负载分析与磁盘容量预测(时间序列)
文章目录 1.背景与目标分析 2.2 数据探索 2.1 查看数据信息 2.2 数据平稳性分析 3 数据预处理 3.1 数据清洗 3.2 数据变换--属性构造 4 模型构建 4.1 确定模型-- ARM ...
- 《Python数据分析与挖掘实战》第14章——基于基站定位数据的商圈分析(层次聚类)
本文是基于<Python数据分析与挖掘实战>的实战第14章<基于基站定位数据的商圈分析>做的分析. 1 挖掘背景及目标 从某通信运营商提供的特定接口解析得到用户的定位数据.利用 ...
- 《Python数据分析与挖掘实战》第7章——航空公司客户价值分析(kmeans)
本文是基于<Python数据分析与挖掘实战>的实战部分的第七章的数据--<航空公司客户价值分析>做的分析. 旨在补充原文中的细节代码,并给出文中涉及到的内容的完整代码. 1)在 ...
- 《Python数据分析与挖掘实战》第15章 ——电商产品评论数据情感分析(LED)
文章目录 1.挖掘背景与目标 2.2 数据探索与预处理 2.1 数据筛选 2.2 数据去重 2.3 删除前缀评分 2.4 jieba分词 3 基于LDA 模型的主题分析 4.权重 5.如何在主题空间比 ...
最新文章
- C# AutoMapper的简单扩展
- 使用python处理没有被Web用到的图片
- python【力扣LeetCode算法题库】217-存在重复元素
- Oracle数据库备份与恢复的三种方法
- HMM学习(3)-Patterns generated by a hidden process
- Java网络编程2---Socket-TCP编程
- PHP array_flip() array_merge() array+array的使用总结
- linux挂载光盘装ftp服务,linux ftp安装和配置
- mysql管理工具-SQLyog管理工具
- 如何查看自己的外网 IP 地址
- 中英文状态的符号转换
- lisp 焊缝标注_焊接符号标注 图纸
- 史上最全的Windows进程详解!
- GLTF格式学习:glTF介绍( 基于WebGL
- 剑指offer(第二版)读书笔记以及编程题目python版答案(二)
- 中台战略全解读(三):业务中台建设
- onMeasure(int widthMeasureSpec, int heightMeasureSpec)
- html 利用 frameset 进行简单的框架布局
- 转发微雪课堂的STM32CubeMX系列教程
- Easy3DCGAL 凸包算法(三维)