一、题目简介
-
赛题背景:在一家保险公司里,通过保险公司的数据,预测一个人是否会对保险感兴趣。
-
数据示例:
-
评价指标:AUC
二、赛题步骤
2.0 完整型判断
-
检测重复值
df_data.duplicated().sum() -
检测列缺失值
df_data.isnull().sum(axis=0)
2.1 数据探索
- 探索离散值分布的常用代码。
|
|
效果图
- 探索连续值分布的常用代码
|
|
效果图
2.2 离散值编码
数据中,具有一些字符串的离散值,如果离散值比较少,比如"男"和"女",我们应该使用标号编码进行映射到数值区间。
对于地区代码属性,其具有非常多的离散属性,我们可以使用目标编码进行编码,映射到一定的数值区间
目标编码简单可以理解为,将每个地区代码映射为其所在地区的人对保险感兴趣的平均值。
具体代码如下所示:
|
|
2.3 特征之间相关性分析
|
|
效果图
这里我们可以去掉相关性非常小的特征,以便提高模型的性能。
2.4 寻找基础模型
下面列出了多种常用模型,以便分析性能
|
|
Tip
不过,通常来说,都是XGBoost或者是LGBM分类器效果好一些。
2.4 模型调参
模型调参是一个体力劳动,但是拥有好工具,可以让你事半公倍。好工具就是hyperopt
库了
调参实例代码
|
|
这段代码的通用性很强,复用只需要修改参数空间
和评判函数
就可以了
如需完整代码,请见点我出发