Kaggle竞赛Santander 客户满意

Kaggle竞赛Santander 客户满意

Banco Santander 获得了数据科学社区Kaggle最近主办竞赛的帮助。本次大赛的主要目标是建立一个区分满意和不满意客户的预测模型。
银行提供训练和测试数据集。训练数据集提供客户满意度的指标。参赛者要求使用此数据集建立,调整模型,成功预测没有提供满意度指标的测试集。

训练集包含369个匿名变量,和76818观测值。

数据

变量可用信息较少。只有数据结构和变量名称的特别提示提供深入了解如何最好的预处理数据。事项复杂,因为它是目前尚不清楚哪些变量是分类的,哪些是连续的。此外,在数据集中的一些变量完全无用。我们观察到的数据在很大程度上是不平衡的。训练集包含大约73000客户满意度和大约3000名不满的客户。

研究表明,预测变量包含整数变量全是分类变量而其余的变量是连续的。利用这种方法,我们就分开分类变量和连续变量。因此我们确定分类变量,对连续变量应用中心化和标准化进程,以消除以后的模型拟合​​因为量纲带来的任何不必要的影响。我们还检查分类变量的方差为零,以识别并删除那些所有观测值只存在一个值的。

模型

我们通过对问题施加高精度模型来评估预测的最大程度。我们最初的努力包括提高运行boosted tree模型和深度学习模型。

Xgboost - Sricharan Maddineni

极端梯度提升是一个功能强大的机器学习算法,在回归,分类和排名的过人之处。 Xgboost使我们能够实现简单的预测模型。梯度提升通过创建数百个树模型,加法产生一种高静的预测模型。 Xgboost的一个缺点是它只能处理数字矩阵,但在Santander 数据集不是问题问题,因为所有的样本是数字。 Xgboost算法还适合稀疏模型矩阵,因为观测值被表示为1或0,这简化了计算需求。
xgboost的关键是通过定义目标函数找到正确的参数来衡量模型的性能。对于目标函数的方程给出如下:
Obj(Θ)=L(Θ)+Ω(Θ)
其中L是训练损失函数和Ω为正则化项。

正则项控制模型的复杂度,并有助于避免过度拟合。对于这个特定的kaggle竞赛,AUC进行了优化,但更普遍的是使用logistic损失。

Xgboost是ensembling树模型,其中每个树的预测分数归纳起来得到最终的比分。此外,我们得到CART得分而不是分类变量。
数学上,这被表示为:


其中K是tree的数量,F是所有CART树的集合,f是函数空间F的函数
目标函数因此可以写为:

创建稀疏模型矩阵:

Xgboost模型代码:

Xgboost特征重要性:

GBM 模型 - Mike Todisco

GBM是一个用于分类和回归预测建模算法。在这种情况下,我们使用决策树作为基础,这是主要的用法,但GBM可以采取其它形式,例如线性。该模型是boosted,算法上结合许多弱模型,梯度提升迭代计算残差以提高精确度。 GBM与其他高端算法相比,性能可靠。我们没有丢失任何数据,但GBM足够强大处理NA。 GBM也使得任何缩放或正态化是不必要的。

GBM的包有几个可以运行的损失函数。两个常用损失函数是伯努利和Adaboost。伯努利是0和1的logistic损失函数。 Adaboost算法为0和1的一个指数损失函数。

在GBM模型有许多参数调整。下面是比较重要的几个:

•树的数量

•Shrinkage - 这也被称为学习率,根据损失梯度决定算法移动多快

•深度 - 每棵树将评估的决策数量

•最小观测 - 决定了产生一个叶节点的观测次数

•Cv.Folds - 运行交叉验证的数目
Adaboost 代码:

Bernoulli 代码:

随机森林- Matt Samelson
我们可以在R Caret 包中的训练函数优化随机林模型的参数。这种封装函数提供基本包没有的强大分析和优化特性。

在这种情况下我们选择使用R基本ranger 包生成森林。

为了最大化计算资源选出调整三个参数,每一轮的树的数量,最大树深度,树的样本。参数的范围可以在下面显示的代码中找到。

我们还采用了五折交叉验证,进一步优化模型。总体模型结果可以在博客文章的末尾汇总表中可以看出。

模型结果:

Model and ParameterXGBoostAdaboostNeural NetBernoulliRF
AUC0.8407710.8392050.8210.8208720.787
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
你好!对于Kaggle竞赛的入门,我可以为你提供一些建议和资源。 首先,了解Kaggle是什么以及它的竞赛数据科学社区是很重要的。Kaggle是一个数据科学和机器学习竞赛平台,它提供了大量的数据集和挑战,吸引了全球数据科学家的参与。 接下来,你可以通过以下步骤来入门Kaggle竞赛: 1. 注册Kaggle账号:访问Kaggle网站(https://www.kaggle.com/),点击"Sign Up"按钮创建一个账号。 2. 探索竞赛:浏览Kaggle上的竞赛页面,了解当前和已经结束的竞赛。可以按照自己的兴趣选择感兴趣的竞赛。 3. 下载数据集:对于感兴趣的竞赛,你可以下载相关的数据集。通过数据集探索数据的结构和特征。 4. 学习和参考:Kaggle上有很多优秀的内核(Kernel)和讨论(Discussion),可以学习其他数据科学家的方法和经验。阅读这些内核和参与相关的讨论可以提高你的竞赛技能。 5. 入门教程:Kaggle提供了一些入门教程,可以帮助你了解竞赛的基本知识和技巧。你可以在Kaggle的学习路径(Learn)中找到这些教程。 6. 练习和提交:选择一个适合你水平和兴趣的竞赛,开始练习建模和提交结果。通过不断的实践和反馈,提高自己的竞赛技能。 此外,以下是一些Kaggle入门资源可以供你参考: - Kaggle官方学习路径:https://www.kaggle.com/learn/overview - Kaggle内核:https://www.kaggle.com/kernels - Kaggle讨论:https://www.kaggle.com/discussion - Kaggle竞赛页面:https://www.kaggle.com/competitions 希望这些信息能够帮助你入门Kaggle竞赛!如有更多问题,欢迎继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值