ML之shap:基于adult人口普查收入二分类预测数据集(预测年收入是否超过50k)利用shap决策图结合LightGBM模型实现异常值检测案例之详细攻略
ML之shap:基于adult人口普查收入二分类预测数据集(预测年收入是否超过50k)利用shap决策图结合LightGBM模型实现异常值检测案例之详细攻略
目录
基于adult人口普查收入二分类预测数据集(预测年收入是否超过50k)利用shap决策图结合LightGBM模型实现异常值检测案例之详细攻略
# 1、定义数据集
# 2、数据集预处理
# 2.1、入模特征初步筛选
# 2.2、目标特征二值化
# 2.3、类别型特征编码数字化
# 2.4、分离特征与标签
#3、模型训练与推理
# 3.1、数据集切分
# 3.2、模型建立并训练
# 3.3、模型预测
# 4、利用shap决策图进行异常值检测
# 4.1、原始数据和预处理后的数据各采样一小部分样本
# 4.2、创建Explainer并计算SHAP值
# 4.3、shap决策图可视化
相关文章
Dataset:adult人口普查收入二分类预测数据集(预测年收入是否超过50k)的简介、下载、使用方法之详细攻略
ML之shap:基于adult人口普查收入二分类预测数据集(预测年收入是否超过50k)利用shap决策图结合LightGBM模型实现异常值检测案例之详细攻略
ML之shap:基于adult人口普查收入二分类预测数据集(预测年收入是否超过50k)利用shap决策图结合LightGBM模型实现异常值检测案例之详细攻略实现
基于adult人口普查收入二分类预测数据集(预测年收入是否超过50k)利用shap决策图结合LightGBM模型实现异常值检测案例之详细攻略
# 1、定义数据集
age | workclass | fnlwgt | education | education_num | marital_status | occupation | relationship | race | sex | capital_gain | capital_loss | hours_per_week | native_country | salary |
39 | State-gov | 77516 | Bachelors | 13 | Never-married | Adm-clerical | Not-in-family | White | Male | 2174 | 0 | 40 | United-States | <=50K |
50 | Self-emp-not-inc | 83311 | Bachelors | 13 | Married-civ-spouse | Exec-managerial | Husband | White | Male | 0 | 0 | 13 | United-States | <=50K |
38 | Private | 215646 | HS-grad | 9 | Divorced | Handlers-cleaners | Not-in-family | White | Male | 0 | 0 | 40 | United-States | <=50K |
53 | Private | 234721 | 11th | 7 | Married-civ-spouse | Handlers-cleaners | Husband | Black | Male | 0 | 0 | 40 | United-States | <=50K |
28 | Private | 338409 | Bachelors | 13 | Married-civ-spouse | Prof-specialty | Wife | Black | Female | 0 | 0 | 40 | Cuba | <=50K |
37 | Private | 284582 | Masters | 14 | Married-civ-spouse | Exec-managerial | Wife | White | Female | 0 | 0 | 40 | United-States | <=50K |
49 | Private | 160187 | 9th | 5 | Married-spouse-absent | Other-service | Not-in-family | Black | Female | 0 | 0 | 16 | Jamaica | <=50K |
52 | Self-emp-not-inc | 209642 | HS-grad | 9 | Married-civ-spouse | Exec-managerial | Husband | White | Male | 0 | 0 | 45 | United-States | >50K |
31 | Private | 45781 | Masters | 14 | Never-married | Prof-specialty | Not-in-family | White | Female | 14084 | 0 | 50 | United-States | >50K |
42 | Private | 159449 | Bachelors | 13 | Married-civ-spouse | Exec-managerial | Husband | White | Male | 5178 | 0 | 40 | United-States | >50K |
# 2、数据集预处理
# 2.1、入模特征初步筛选
df.columns
14
# 2.2、目标特征二值化
# 2.3、类别型特征编码数字化
age | workclass | education_num | marital_status | occupation | relationship | race | sex | capital_gain | capital_loss | hours_per_week | native_country | salary | |
0 | 39 | 7 | 13 | 4 | 1 | 1 | 4 | 1 | 2174 | 0 | 40 | 39 | 0 |
1 | 50 | 6 | 13 | 2 | 4 | 0 | 4 | 1 | 0 | 0 | 13 | 39 | 0 |
2 | 38 | 4 | 9 | 0 | 6 | 1 | 4 | 1 | 0 | 0 | 40 | 39 | 0 |
3 | 53 | 4 | 7 | 2 | 6 | 0 | 2 | 1 | 0 | 0 | 40 | 39 | 0 |
4 | 28 | 4 | 13 | 2 | 10 | 5 | 2 | 0 | 0 | 0 | 40 | 5 | 0 |
5 | 37 | 4 | 14 | 2 | 4 | 5 | 4 | 0 | 0 | 0 | 40 | 39 | 0 |
6 | 49 | 4 | 5 | 3 | 8 | 1 | 2 | 0 | 0 | 0 | 16 | 23 | 0 |
7 | 52 | 6 | 9 | 2 | 4 | 0 | 4 | 1 | 0 | 0 | 45 | 39 | 1 |
8 | 31 | 4 | 14 | 4 | 10 | 1 | 4 | 0 | 14084 | 0 | 50 | 39 | 1 |
9 | 42 | 4 | 13 | 2 | 4 | 0 | 4 | 1 | 5178 | 0 | 40 | 39 | 1 |
# 2.4、分离特征与标签
age | workclass | education_num | marital_status | occupation | relationship | race | sex | capital_gain | capital_loss | hours_per_week | native_country |
39 | 7 | 13 | 4 | 1 | 1 | 4 | 1 | 2174 | 0 | 40 | 39 |
50 | 6 | 13 | 2 | 4 | 0 | 4 | 1 | 0 | 0 | 13 | 39 |
38 | 4 | 9 | 0 | 6 | 1 | 4 | 1 | 0 | 0 | 40 | 39 |
53 | 4 | 7 | 2 | 6 | 0 | 2 | 1 | 0 | 0 | 40 | 39 |
28 | 4 | 13 | 2 | 10 | 5 | 2 | 0 | 0 | 0 | 40 | 5 |
37 | 4 | 14 | 2 | 4 | 5 | 4 | 0 | 0 | 0 | 40 | 39 |
49 | 4 | 5 | 3 | 8 | 1 | 2 | 0 | 0 | 0 | 16 | 23 |
52 | 6 | 9 | 2 | 4 | 0 | 4 | 1 | 0 | 0 | 45 | 39 |
31 | 4 | 14 | 4 | 10 | 1 | 4 | 0 | 14084 | 0 | 50 | 39 |
42 | 4 | 13 | 2 | 4 | 0 | 4 | 1 | 5178 | 0 | 40 | 39 |
salary |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
#3、模型训练与推理
# 3.1、数据集切分
X_test
age | workclass | education_num | marital_status | occupation | relationship | race | sex | capital_gain | capital_loss | hours_per_week | native_country | |
1342 | 47 | 3 | 10 | 0 | 1 | 1 | 4 | 1 | 0 | 0 | 40 | 35 |
1338 | 71 | 3 | 13 | 0 | 13 | 3 | 4 | 0 | 2329 | 0 | 16 | 35 |
189 | 58 | 6 | 16 | 2 | 10 | 0 | 4 | 1 | 0 | 0 | 1 | 35 |
1332 | 23 | 3 | 9 | 4 | 7 | 1 | 2 | 1 | 0 | 0 | 35 | 35 |
1816 | 46 | 2 | 9 | 2 | 3 | 0 | 4 | 1 | 0 | 1902 | 40 | 35 |
1685 | 37 | 3 | 9 | 2 | 4 | 0 | 4 | 1 | 0 | 1902 | 45 | 35 |
657 | 34 | 3 | 9 | 2 | 3 | 0 | 4 | 1 | 0 | 0 | 45 | 35 |
1846 | 21 | 0 | 10 | 4 | 0 | 3 | 4 | 0 | 0 | 0 | 40 | 35 |
554 | 33 | 1 | 11 | 0 | 3 | 4 | 2 | 0 | 0 | 0 | 40 | 35 |
1963 | 49 | 3 | 13 | 2 | 12 | 0 | 4 | 1 | 0 | 0 | 50 | 35 |
# 3.2、模型建立并训练
params = {"max_bin": 512, "learning_rate": 0.05,"boosting_type": "gbdt", "objective": "binary","metric": "binary_logloss", "verbose": -1,"min_data": 100, "random_state": 1,"boost_from_average": True, "num_leaves": 10 }LGBMC = lgb.train(params, lgbD_train, 10000, valid_sets=[lgbD_test], early_stopping_rounds=50, verbose_eval=1000)
# 3.3、模型预测
age | workclass | education_num | marital_status | occupation | relationship | race | sex | capital_gain | capital_loss | hours_per_week | native_country | y_test_predi | y_test | |
1342 | 47 | 3 | 10 | 0 | 1 | 1 | 4 | 1 | 0 | 0 | 40 | 35 | 0.045225575 | 0 |
1338 | 71 | 3 | 13 | 0 | 13 | 3 | 4 | 0 | 2329 | 0 | 16 | 35 | 0.074799172 | 0 |
189 | 58 | 6 | 16 | 2 | 10 | 0 | 4 | 1 | 0 | 0 | 1 | 35 | 0.30014332 | 1 |
1332 | 23 | 3 | 9 | 4 | 7 | 1 | 2 | 1 | 0 | 0 | 35 | 35 | 0.003966427 | 0 |
1816 | 46 | 2 | 9 | 2 | 3 | 0 | 4 | 1 | 0 | 1902 | 40 | 35 | 0.363861294 | 0 |
1685 | 37 | 3 | 9 | 2 | 4 | 0 | 4 | 1 | 0 | 1902 | 45 | 35 | 0.738628671 | 1 |
657 | 34 | 3 | 9 | 2 | 3 | 0 | 4 | 1 | 0 | 0 | 45 | 35 | 0.376412174 | 0 |
1846 | 21 | 0 | 10 | 4 | 0 | 3 | 4 | 0 | 0 | 0 | 40 | 35 | 0.002309884 | 0 |
554 | 33 | 1 | 11 | 0 | 3 | 4 | 2 | 0 | 0 | 0 | 40 | 35 | 0.060345836 | 1 |
1963 | 49 | 3 | 13 | 2 | 12 | 0 | 4 | 1 | 0 | 0 | 50 | 35 | 0.703506366 | 1 |
# 4、利用shap决策图进行异常值检测
# 4.1、原始数据和预处理后的数据各采样一小部分样本
# 4.2、创建Explainer并计算SHAP值
shap2exp.values.shape (100, 12, 2) [[[-5.97178729e-01 5.97178729e-01][-5.18879297e-03 5.18879297e-03][ 1.70566444e-01 -1.70566444e-01]...[ 0.00000000e+00 0.00000000e+00][ 6.58794799e-02 -6.58794799e-02][ 0.00000000e+00 0.00000000e+00]][[-4.45574118e-01 4.45574118e-01][-1.00665452e-03 1.00665452e-03][-8.12237233e-01 8.12237233e-01]...[ 0.00000000e+00 0.00000000e+00][ 8.56381961e-01 -8.56381961e-01][ 0.00000000e+00 0.00000000e+00]][[-3.87412165e-01 3.87412165e-01][ 1.52848351e-01 -1.52848351e-01][-1.02755954e+00 1.02755954e+00]...[ 0.00000000e+00 0.00000000e+00][ 1.10240434e+00 -1.10240434e+00][ 0.00000000e+00 0.00000000e+00]]...[[-5.28928223e-01 5.28928223e-01][ 7.14116015e-03 -7.14116015e-03][-8.82241728e-01 8.82241728e-01]...[ 0.00000000e+00 0.00000000e+00][ 7.47521189e-02 -7.47521189e-02][ 0.00000000e+00 0.00000000e+00]][[ 2.20002984e+00 -2.20002984e+00][ 7.75916086e-03 -7.75916086e-03][ 3.95152810e-01 -3.95152810e-01]...[ 0.00000000e+00 0.00000000e+00][ 1.52566789e-01 -1.52566789e-01][ 0.00000000e+00 0.00000000e+00]][[-8.28965461e-01 8.28965461e-01][-4.43687947e-02 4.43687947e-02][ 3.37305776e-01 -3.37305776e-01]...[ 0.00000000e+00 0.00000000e+00][ 8.26477289e-03 -8.26477289e-03][ 0.00000000e+00 0.00000000e+00]]]
shap2array.shape (100, 12)
LightGBM binary classifier with TreeExplainer shap values output has changed to a list of ndarray[[ 5.97178729e-01 5.18879297e-03 -1.70566444e-01 ... 0.00000000e+00-6.58794799e-02 0.00000000e+00][ 4.45574118e-01 1.00665452e-03 8.12237233e-01 ... 0.00000000e+00-8.56381961e-01 0.00000000e+00][ 3.87412165e-01 -1.52848351e-01 1.02755954e+00 ... 0.00000000e+00-1.10240434e+00 0.00000000e+00]...[ 5.28928223e-01 -7.14116015e-03 8.82241728e-01 ... 0.00000000e+00-7.47521189e-02 0.00000000e+00][-2.20002984e+00 -7.75916086e-03 -3.95152810e-01 ... 0.00000000e+00-1.52566789e-01 0.00000000e+00][ 8.28965461e-01 4.43687947e-02 -3.37305776e-01 ... 0.00000000e+00-8.26477289e-03 0.00000000e+00]]
mode_exp_value: -1.9982244224656025
# 4.3、shap决策图可视化
# 将决策图叠加在一起有助于根据shap定位异常值,即偏离密集群处的样本
ML之shap:基于adult人口普查收入二分类预测数据集(预测年收入是否超过50k)利用shap决策图结合LightGBM模型实现异常值检测案例之详细攻略相关推荐
- ML之SIFT_FLANN:FLANN算法的简介、使用方法(对图片提取SIFT特征并利用FLANN方法实现计算图像相似度并可视化案例)之详细攻略
ML之SIFT_FLANN:FLANN算法的简介.使用方法(对图片提取SIFT特征并利用FLANN方法实现计算图像相似度并可视化案例)之详细攻略 目录 FLANN算法 1.flann的搜索步骤 (1) ...
- ML之FE:金融风控—基于预处理(PSI+标签编码+文本型抽数字+缺失值RF模型拟合填充)+多种筛选指标(PCA/IV值/Gini/熵/丰富度)利用CatBoost实现贷款违约二分类预测案例之详细攻略
ML之FE:金融风控-基于预处理(PSI+标签编码+文本型抽数字+缺失值RF模型拟合填充)+多种筛选指标(PCA/IV值/Gini/熵/丰富度)利用CatBoost实现贷款违约二分类预测案例之详细攻略 ...
- ML之DT之CART:分类与回归树CART算法的简介、应用、经典案例之详细攻略
ML之DT之CART:分类与回归树CART算法的简介.应用.经典案例之详细攻略 目录 分类与回归树CART算法简介 1.CART原理-比较ID3.C4.5 2.CART算法描述 CART算法的案经典案 ...
- ML之NB:朴素贝叶斯Naive Bayesian算法的简介、应用、经典案例之详细攻略
ML之NB:朴素贝叶斯Naive Bayesian算法的简介.应用.经典案例之详细攻略 目录 朴素贝叶斯Naive Bayesian算法的简介 1.朴素贝叶斯计算流程表述 2.朴素贝叶斯的优缺点 2. ...
- ML之Clustering之K-means:K-means算法简介、应用、经典案例之详细攻略
ML之Clustering之K-means:K-means算法简介.应用.经典案例之详细攻略 目录 K-means算法简介 1.K-means算法适用的数据类型 2.K-Means算法的全局最优解和 ...
- ML之kNN:k最近邻kNN算法的简介、应用、经典案例之详细攻略
ML之kNN:k最近邻kNN算法的简介.应用.经典案例之详细攻略 目录 kNN算法的简介 1.kNN思路过程 1.1.k的意义 1.2.kNN求最近距离案例解释原理-通过实际案例,探究kNN思路过程 ...
- ML之SVM:SVM算法的简介、应用、经典案例之详细攻略
ML之SVM:SVM算法的简介.应用.经典案例之详细攻略 目录 SVM算法的简介 1.SVM模型分类-线性可分.线性.非线性 2.SVM的决策边界 3.SVM中的核函数 4.SVM算法推导 1.1.S ...
- ML之LoR:逻辑回归LoR算法的简介、应用、经典案例之详细攻略
ML之LoR:逻辑回归LoR算法的简介.应用.经典案例之详细攻略 目录 逻辑回归LoR算法的简介 1.LOR算法在经过严密的数据预处理后效果会非常好 2.LoR模型的优缺点 逻辑回归LoR算法的应用 ...
- ML之FE:pandas库中数据分析利器之groupby分组函数、agg聚合函数、同时使用groupby与agg函数组合案例之详细攻略
ML之FE:pandas库中数据分析利器之groupby分组函数.agg聚合函数.同时使用groupby与agg函数组合案例之详细攻略 目录 pandas库中数据分析利器之groupby分组函数.ag ...
- ML之SL:监督学习(Supervised Learning)的简介、应用、经典案例之详细攻略
ML之SL:监督学习(Supervised Learning)的简介.应用.经典案例之详细攻略 目录 监督学习(Supervised Learning)的简介 1.监督学习问题的两大类-分类问题和回归 ...
最新文章
- python os open_Python3 os.open() 方法
- 同济大学某计算机博士感叹:找工作太难,连简历关都过不去!
- 目标检测算法综述 | 基于候选区域的目标检测器 | CV | 机器视觉
- Maven入门指南② :Maven 常用命令,手动创建第一个 Maven 项目
- knockoutJS学习笔记01:从拼接字符串到编写模板引擎
- 分析linux相关日志文件,Linux日志系统与分析.pdf
- Ext-ajax请求数据
- pythongui做计算器_python GUI之简易计算器
- python怎么在散点图上画圆圈_matplotlib散点中的标记点
- : 字符向量未正常终止_文本挖掘从小白到精通(一)---语料、向量空间和模型的概念...
- 解决Mac osx AirPort: Link Down on en1. Reason 8 (Disassociated because station leaving)
- 终结者:使用slf4j+log4j完美构建日志
- 5.一个非常好用的扒站工具IDM
- Vue常用组件库集合---kalrry
- photoshop实用技巧
- Chinese Whisper 人脸聚类算法实现
- 智能颈部按摩仪设计——2.开发环境搭建
- phpstorm破解后,运行一段时间后突然有提示没有破解.
- Openssl Aes加解密使用示例
- 亚马逊FBA标签打印技巧(深圳风火轮amazon团队)
热门文章
- java 图片去水印_如何用java去除图片水印?
- 建立两个磁盘文件f1.text和f2.text,编程实现以下工作
- outlook邮箱显示一直启动中_outlook邮箱打不开一直在加载
- 知道一个公司的网站地址,怎么快速获取邮箱。
- 植树节推文如何排版?—135植树节样式上新
- 3 - Error writing file 'C:\Windows\TEMP\MY18F3.tmp' (Errcode: 28)
- 程序员做脚底鱼疗,因脚臭熏死一大批鱼,老板据说是这表情
- css属性的书写顺序
- php又拍云,申请又拍云云存储教程(PHP V3.80+)
- Bumped!【迪杰斯特拉消边、堆优化】