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决策图可视化


相关文章

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、模型建立并训练

1. params = {
2. "max_bin": 512, "learning_rate": 0.05,
3. "boosting_type": "gbdt", "objective": "binary",
4. "metric": "binary_logloss", "verbose": -1,
5. "min_data": 100, "random_state": 1,
6. "boost_from_average": True, "num_leaves": 10 }
7. 
8. LGBMC = lgb.train(params, lgbD_train, 10000, 
9.                   valid_sets=[lgbD_test], 
10.                   early_stopping_rounds=50, 
11.                   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值

1. shap2exp.values.shape (100, 12, 2) 
2. [[[-5.97178729e-01  5.97178729e-01]
3.   [-5.18879297e-03  5.18879297e-03]
4.   [ 1.70566444e-01 -1.70566444e-01]
5.   ...
6.   [ 0.00000000e+00  0.00000000e+00]
7.   [ 6.58794799e-02 -6.58794799e-02]
8.   [ 0.00000000e+00  0.00000000e+00]]
9. 
10. [[-4.45574118e-01  4.45574118e-01]
11.   [-1.00665452e-03  1.00665452e-03]
12.   [-8.12237233e-01  8.12237233e-01]
13.   ...
14.   [ 0.00000000e+00  0.00000000e+00]
15.   [ 8.56381961e-01 -8.56381961e-01]
16.   [ 0.00000000e+00  0.00000000e+00]]
17. 
18. [[-3.87412165e-01  3.87412165e-01]
19.   [ 1.52848351e-01 -1.52848351e-01]
20.   [-1.02755954e+00  1.02755954e+00]
21.   ...
22.   [ 0.00000000e+00  0.00000000e+00]
23.   [ 1.10240434e+00 -1.10240434e+00]
24.   [ 0.00000000e+00  0.00000000e+00]]
25. 
26.  ...
27. 
28. [[-5.28928223e-01  5.28928223e-01]
29.   [ 7.14116015e-03 -7.14116015e-03]
30.   [-8.82241728e-01  8.82241728e-01]
31.   ...
32.   [ 0.00000000e+00  0.00000000e+00]
33.   [ 7.47521189e-02 -7.47521189e-02]
34.   [ 0.00000000e+00  0.00000000e+00]]
35. 
36. [[ 2.20002984e+00 -2.20002984e+00]
37.   [ 7.75916086e-03 -7.75916086e-03]
38.   [ 3.95152810e-01 -3.95152810e-01]
39.   ...
40.   [ 0.00000000e+00  0.00000000e+00]
41.   [ 1.52566789e-01 -1.52566789e-01]
42.   [ 0.00000000e+00  0.00000000e+00]]
43. 
44. [[-8.28965461e-01  8.28965461e-01]
45.   [-4.43687947e-02  4.43687947e-02]
46.   [ 3.37305776e-01 -3.37305776e-01]
47.   ...
48.   [ 0.00000000e+00  0.00000000e+00]
49.   [ 8.26477289e-03 -8.26477289e-03]
50.   [ 0.00000000e+00  0.00000000e+00]]]
51. shap2array.shape (100, 12) 
52. LightGBM binary classifier with TreeExplainer shap values output has changed to a list of ndarray
53. [[ 5.97178729e-01  5.18879297e-03 -1.70566444e-01 ...  0.00000000e+00
54.   -6.58794799e-02  0.00000000e+00]
55.  [ 4.45574118e-01  1.00665452e-03  8.12237233e-01 ...  0.00000000e+00
56.   -8.56381961e-01  0.00000000e+00]
57.  [ 3.87412165e-01 -1.52848351e-01  1.02755954e+00 ...  0.00000000e+00
58.   -1.10240434e+00  0.00000000e+00]
59.  ...
60.  [ 5.28928223e-01 -7.14116015e-03  8.82241728e-01 ...  0.00000000e+00
61.   -7.47521189e-02  0.00000000e+00]
62.  [-2.20002984e+00 -7.75916086e-03 -3.95152810e-01 ...  0.00000000e+00
63.   -1.52566789e-01  0.00000000e+00]
64.  [ 8.28965461e-01  4.43687947e-02 -3.37305776e-01 ...  0.00000000e+00
65.   -8.26477289e-03  0.00000000e+00]]
66. mode_exp_value: -1.9982244224656025

# 4.3、shap决策图可视化

# 将决策图叠加在一起有助于根据shap定位异常值,即偏离密集群处的样本


相关文章
|
1天前
|
机器学习/深度学习 算法 Python
R语言VaR市场风险计算方法与回测、用LOGIT逻辑回归、PROBIT模型信用风险与分类模型
R语言VaR市场风险计算方法与回测、用LOGIT逻辑回归、PROBIT模型信用风险与分类模型
|
2天前
|
机器学习/深度学习 数据可视化 搜索推荐
PYTHON条件生存森林模型CONDITIONAL SURVIVAL FOREST分类预测客户流失交叉验证可视化|数据分享
PYTHON条件生存森林模型CONDITIONAL SURVIVAL FOREST分类预测客户流失交叉验证可视化|数据分享
45 9
|
8天前
Stata广义矩量法GMM面板向量自回归 VAR模型选择、估计、Granger因果检验分析投资、收入和消费数据
Stata广义矩量法GMM面板向量自回归 VAR模型选择、估计、Granger因果检验分析投资、收入和消费数据
30 4
|
1月前
|
机器学习/深度学习 算法 搜索推荐
Catboost算法助力乳腺癌预测:Shap值解析关键预测因素
Catboost算法助力乳腺癌预测:Shap值解析关键预测因素
59 1
|
11月前
|
机器学习/深度学习 算法
【机器学习】分类模型评价指标(混淆矩阵、ROC)(已修改,放心看)
【机器学习】分类模型评价指标(混淆矩阵、ROC)(已修改,放心看)
146 0
|
机器学习/深度学习 算法 测试技术
不平衡数据集分类实战:成人收入数据集分类模型训练和评估(二)
不平衡数据集分类实战:成人收入数据集分类模型训练和评估(二)
198 0
不平衡数据集分类实战:成人收入数据集分类模型训练和评估(二)
|
机器学习/深度学习 数据采集 算法
不平衡数据集分类实战:成人收入数据集分类模型训练和评估(一)
不平衡数据集分类实战:成人收入数据集分类模型训练和评估(一)
381 0
不平衡数据集分类实战:成人收入数据集分类模型训练和评估(一)
ML之回归预测:利用6个单独+2个集成模型(LassoR、KernelRidgeR、ElasticNetR、GBR、XGBR、LGBMR,Avg、Stacking)对自动驾驶数据集【5+1】回归预测
ML之回归预测:利用6个单独+2个集成模型(LassoR、KernelRidgeR、ElasticNetR、GBR、XGBR、LGBMR,Avg、Stacking)对自动驾驶数据集【5+1】回归预测
ML之回归预测:利用6个单独+2个集成模型(LassoR、KernelRidgeR、ElasticNetR、GBR、XGBR、LGBMR,Avg、Stacking)对自动驾驶数据集【5+1】回归预测
|
机器学习/深度学习 算法
ML之回归预测:利用多个算法模型(LassoR、KernelRidgeR、ElasticNetR、GBR、LGBMR、XGBR)对国内某平台上海2020年6月份房价数据集【12+1】进行回归预测(一)
ML之回归预测:利用多个算法模型(LassoR、KernelRidgeR、ElasticNetR、GBR、LGBMR、XGBR)对国内某平台上海2020年6月份房价数据集【12+1】进行回归预测(一)
ML之回归预测:利用多个算法模型(LassoR、KernelRidgeR、ElasticNetR、GBR、LGBMR、XGBR)对国内某平台上海2020年6月份房价数据集【12+1】进行回归预测(一)
|
机器学习/深度学习 数据可视化
ML之FE:利用FE特征工程(单个特征及其与标签关系的可视化)对RentListingInquries(Kaggle竞赛)数据集实现房屋感兴趣程度的多分类预测(三)
ML之FE:利用FE特征工程(单个特征及其与标签关系的可视化)对RentListingInquries(Kaggle竞赛)数据集实现房屋感兴趣程度的多分类预测
ML之FE:利用FE特征工程(单个特征及其与标签关系的可视化)对RentListingInquries(Kaggle竞赛)数据集实现房屋感兴趣程度的多分类预测(三)