【Kaggle项目】新手的桑坦德客户交易预测项目思路

这个项目是一个二分类问题,评估指标使用的是ROC AUC,即假正率(False Positive Rate)和真正率(True Positive Rate)构成的曲线下的面积。

数据特点

数据规模较大,可以用复杂点的模型(20,0000×200);
特征的具体含义不明确,难以从业务的角度进行特征工程,需要另辟蹊径或重点在模型上下功夫;
所有特征都是浮点数,且没有缺失值,所以不需要进行数据清洗;
正类样本的比例大约是10%,算是有偏的,后面需要用分层抽样(Stratified sampling)。

数据探索与特征工程

从Kaggle的数据探索工具来看,大多数特征的分布接近正态,不需要进行变换;
自己探索发现特征与标签之间的线性相关性较弱(小于0.1),各特征之间的相关性非常低(小于0.01),查看了散点图发现也不存在其它形式的相关性,所以相关性的探索没有带来任何信息。

在Kaggle上看别人的Notebook,得到一些别的数据探索和特征工程的点:

  • 观察训练特征和测试特征之间的散点图,以了解训练集和测试集是否有分布差异;
  • 不同标签下的特征数值分布密度图(density plot),发现一些特征的分布是跟标签有关的;还对比了测试集和训练集中的特征数值分布密度图,发现这个数据集里面训练集和测试集的特征分布几乎完全一样。推断出应该能比较好地把测试得分向验证得分靠近。
  • 所有样本&特征的统计信息,按训练矩阵X的行或者列统计;
  • 等等。

虽然在这个问题上这些特征探索没有得到太多有效信息,但作者提到这是对于数量众多、匿名化的特征问题的一些启发性探索。

模型选择与对比

逻辑回归

首先用逻辑回归做了初步测试,发现训练集和测试集的得分很接近,说明没有过拟合数据。而且得分也有0.85以上,还不错,可能是因为这个问题的特征特征和标签线性相关比较好,特征之间也比较独立,所以用线性模型也还不错。 而且因为模型简单,运算速度很快。不过要想更好地捕捉数据中的特征模式,可以在这个基础上去提升模型的复杂度。

# 三折交叉验证结果
{
   'fit_time': array([1.28495526, 1.11315322, 1.02748775]),
 'score_time': array([0.11163568, 0.14464664, 0.11003375]),
 'test_score': array([0.86082031, 0.85723536, 0.85953647]),
 'train_score': array([0.86103513, 0.86267453, 0.86136723])}

随机森林

接下来使用集成学习的树模型。树模型不需要特征缩放,我担心特征缩放损失了特征之间相对大小的信息,就没有缩放特征。
先尝试了随机森林。因为特征比较多,在默认参数下,模

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值