天池离线赛 - 移动推荐算法(四):基于LR, RF, GBDT等模型的预测

移动推荐算法是阿里天池赛2015年赛题之一,题目以移动电商平台的真实用户-商品行为数据为基础来构建商品推荐模型。该题现已成为新人入门的经典演练对象,博主也希望基于该题场景,加深对机器学习相关知识的理解,积累实践经验。关于题目回顾与数据初探,可参考:天池离线赛 - 移动推荐算法(一):题目与数据解析,本文讨论如何基于模型来进行预测,测试的模型包括逻辑回归(LR)、随机森林(RF)、梯度迭代提升树(GBDT)。

基于模型的预测

(注:这里的实现基于 python 的 pandas、sklearn 等工具包。相关程序可参考My GitHub - model-based predication

面向模型的数据预处理

经过天池离线赛 - 移动推荐算法(三):特征构建之后,在对特征数据样本套用模型进行分类预测之前,还需要根据具体所采用的模型对数据进行二次预处理,下面讨论其中重要的几点:

  • 正负样本失衡问题

    经过特征构建所得的数据集正负样本比例约为 1:1200,数据严重失衡,易导致模型训练失效。在这里,我们可通过下采样和基于 f1_score 的评价标准来应对此问题。

    若考虑对训练集中的负样本进行下采样。为避免随机采样的特征空间覆盖性不足,先对负样本进行k-means聚类(参考Sergey Feldman所提方法(2)),然后在每个聚类上采用subsample来获得全面的负样本采样,最后与正样本组成较为平衡的训练集。

    相关程序参考这里:基于k-means数据预处理 - python sklearn

  • 缺失值问题

    在所构建的特征中,一些特征存在缺失值(如xx_diff_hours),这里,采用移除缺失值特征的数据集进行LR模型的训练,采用将缺失值赋值为-1的训练集进行RF/GBDT模型的训练。

  • 归一化问题

    在进行k-means和LR时,需要对不同度量尺度的特征进行归一化处理,这里我们采用sklearn.preprocessing.StandardScaler()实现。

逻辑回归

参考程序 - lr-based prediction

逻辑回归(logistic regression,简称LR)是一种线性回归模型,另一种贴切的名称是“对数几率回归”,该模型采用对数几率函数逼近预测结果。这里采用sklearn.linear_model.LogisticRegression来训练模型。

由于LR模型对正负样本平衡十分敏感,所以在k-means的基础上采用下采样,通过参数调节选取最优的正负样本比(N/P_ratio),下图是LR训练时的 f1_score 随
N/P_ratio 变化示意图:

  • 14
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 23
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值