BNP Paribas Cardif Claims Management
阅读原文时间:2023年07月14日阅读:1

2月20日:

  查看任务介绍,二分类问题,评价标准logloss

  下载数据

2月21~27日:

  查看数据组成,标识分类变量、离散变量、连续变量。

  发现连续数据有大量非随机空缺(占总量一半),主要集中在v2相关与v8相关列

  根据空缺相关性,可将feature分为6组:

  g1-v8相关列,g2-v2相关列,g3-与v2v8均不相关的稀疏列,g4-无缺值连续变量,gd-离散变量,gc-分类变量

  标签样本不均衡,约75%的y==1,25%的y==0

  查看相关性。

2月28日~3月3日:

  考虑对缺值数据(feature稀疏样本)进行模型,因feature较少,实现将较快。

  对分类变量one-hot赋值。

  尝试logistic、linearSVC(no dual)拟合效果较差,大量标签为预测为1类,几乎不出现0类预测

  尝试kernelSVC,样本数太大,核矩阵过慢

  尝试较浅层Random Forest,同样无法有效辨识类0

  尝试xgb,极简易调参后,对feature稀疏样本4-folds cv约0.450,在lb上表现估计约0.457上下

(现在看来有过拟合的嫌疑,因为对v56等多值分类变量进行了过细的处理)

进一步探索:

1、大规模多模型调参

2、对分类变量的one-hot进行处理,如使用logistic regression、navie bayes等,聚合成一个新的feature

3、对模型进行average或者logistic regression处理

4、对某些明显有相关性的categorical-one-hot进行单列处理,消除ordinal假设

5、尝试k-means,和KNN(需考虑如何消除量纲影响)

对稀疏特征的样本,尝试以下的做法

1、连续变量+离散变量+序列化分类变量

2、连续变量+离散变量+序列化分类变量+特殊单列序列化one_hot

3、连续变量+离散变量+序列化分类变量+全体单列序列化one_hot后logistic系数

4、连续变量+离散变量+伯努利序列化分类变量+特殊单列序列化one_hot+全体单列序列化one_hot后logistic系数

3月29日

伯努利化+特殊单列one_hot有一定作用,logistic系数似乎反而没起到什么影响(在gbdt中),可能参数调得不好

调参结束,et和xgc模型基本在5 folds的前提下能达到0.459xx的cv

上交LB后得分0.458xx

然而对6个模型简单平均后,其得分仅有0.456xx,未达到预期目的

看讨论区排行前列的人说,创造了上千个特征进行训练,并且使用一些"secret tweaks"使得训练时间为30min,10folds

(laptop配置8核,16g内存,40g交换内存)这个时间太令人震惊!看结束后对方是否会有一个完整的方法分享

下一步考虑的事情:要在自己的模型上完善,一个是对稀疏的部分再进行细致稳定的调参, 把稀疏的模型结果代入到whole data的模型中

另外,考虑logistic feature是否真的不管用,要不要也试一下linear feature或者linear SVC feature呢?

还有,对方创造的上千个特征,很可能就是在稀疏样本仅有的那几个特征中得出的,看看到时候能不能大规模搞些特征出来。