505. American Express - Default Prediction | amex-default-prediction
这次比赛让我获得了我的第一枚(单人)金牌,所以我相信你可以想象我有多高兴,我有多么享受这次比赛。非常感谢组织者和 Kaggle 团队!
我的工作也是基于其他人伟大的努力,所以非常感谢并致敬 @cdeotte、@raddar、@ragnar123 和 @thedevastator,我将在下文提及我使用的他们所有的贡献。
我建立了一个3阶段的模型——39个第一阶段基础模型,2个第二阶段集成模型,第三阶段是这2个第二阶段模型的简单平均。
我对每个模型使用了相同的交叉验证(CV)策略:fold = argsort(customer_id)%5。对于每个模型,我都生成了袋外预测和经过折平均的测试预测。
original_num_trees * N,original_learning_rate/N,其中 N 为 [2,4]。original_num_trees * N,original_learning_rate/N,其中 N 为 [2,4]。我尝试了不同基础模型组的不同集成方式。以下是我的发现:
对于公共 lightgbm(第一阶段,模型3和4),使用因子 n=1,2,4 缩放的相同参数的3个模型的平均效果很好。
“少数较好模型”的平均及其集成显示出更好的 CV,但 LB(排行榜)分数的提升并不对应。
这导致我使用我构建的所有模型来建立集成,甚至是 CV 为 0.55 的朴素贝叶斯。
我尝试了不同的方法——ElasticNet、BayesianRidge、LogisticRegression、我自定义的非负线性模型(权重为零或正,最大为1,总和为1)、KNN、Lightgbm/XGboost 和 MLPRegressor。
我发现 MLPRegressor 效果最好,所以我进行了100个模型的随机网格搜索:随机选择1到3个隐藏层数,每层随机选择最多100个神经元。
由于 MLPRegressor 是非线性的,我不仅尝试了单个最佳模型,还尝试了少数最佳 MLPRegressor 的平均。
我最后的2个第二阶段模型是2个 MLPRegressor,都有2个隐藏层,第一个在隐藏层有52和94个神经元,第二个有10和20个神经元。
我对