学习笔记-决策树参数调优(二)

董圆成的公众号

学习篇

个人总结 | 学习借鉴 | 经验分享

建模数据用的是逻辑回归的数据集-电信客户是否流失数据。首先还是要导入需要的模块,导入数据集,之后做一个变量的重要性筛选,筛选出对流失有影响的变量,这里先用了相关系数矩阵排除一些相关性大的变量,在利用卡方检验排除那些P值不显著的变量,对于连续变量也可以先将连续变量进行分箱处理,在做卡方检验。

得到需要建模的变量数据单独保存为一个dataframe,用于区别之前的源数据内容。分别选出目标变量和自变量作单独存放,在sklearn中有一个模块可以用于将样本数据分为训练数据集和测试数据集,其中占比自己可以通过参数进行设置,一般是1:9>测试:训练>5:5,这里选取为测试:训练=3:7。

然后建立决策树,用做出的模型预测训练集和测试集的结果、概率,制作出混淆矩阵,另外查看分类指标(覆盖率,F1_score等)和变量重要性指标(意思是目标变量中样本个数占总体样本的多少)。绘制一个图形查看预测值的分布情况,在进行制作ROC曲线,根据图形判断训练集数据和测试集数据是否过度拟合,这里从图形看到训练集数据的表现结果超过测试集数据的情况,判断为过度拟合。

察看预测值的分布情况

出现过度拟合的图形

发生了过拟合的情况,这时我们就需要调整建立决策树时的超参数的情况,可以通过网格搜索,我们创建一个网格(字典格式),把超参数的key和values写在这个网格当中,利用sklearn.model_selection中的GridSearchCV,进行一一计算,这里分数设置为roc_auc,网格搜索会选出分数最高的模型参数作为最优超参数,我们可以通过(.best_params_)查看最优超参数结果,利用网格搜索调整后的模型绘制ROC曲线,根据绘图情况判断过拟合是否解决。

修正过度拟合之后的图形

得到最优超参数重新建立一个决策树,然后利用可视化在变现出来结果。

最终建立决策树结果

最后为将做好的模型保存为文件,方便下次调用。

-LOVE&PEACE-

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181114G1JZFO00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券