xgboost初体验
第一次看到这个词是在一个面试场合上,看到一个算法工程师的简历上写的项目用的是xgboost...后面参加阿里云的O2O预测大赛的时候,查找了相关的资料,看到大部分高手都用的是xgboost,从wepon第一名,到各种文章,还有寒小阳博士,后面知道这个算法是上交大的一个学生陈天齐写的,膜拜...还知道这个算法在kaggle平台上,非常的受欢迎...所以也整理一下,自己关于xgboost很浅显的体会...文采不好,技术也很一般,当是自我总结,没多少营养,高手可以移步了.
首先先介绍一下O2O比赛,这个比赛的数据集,只给了六七个特征,user_id,merchant_id,coupon_id,discount_rate,distance,date_received;(标签是date,其实是auc)…就是给出前面6个特征的数据集,来预测一个用户领取了优惠券后,在未来15天内进行消费的概率,从而来指导商家更有针对性的进行优惠券的发放…评价指标是auc(roc的曲线下面积),(纵坐标是:真正例率;横坐标:假正例率),这个范围在0.5-1.0之间,越高,就代表预测的效果会越好.
大体了解题意后,着手进行操作,分两步走:
- 进行特征工程.挖掘这六个特征背后潜在的信息
- 模型训练
1.特征工程
看到第一名wepe的介绍,他把这6个特征拓展成40几个特征…他说,尽量去多想有关的特征,在我看来,有些特征是有一定的重复和冗余的,但是我不知道怎么去评判一个特征是不是重要,是不是有足够的价值.(欢迎探讨)…这里简单举几个特征,比如,要把用户消费的日期跟节假日,周末结合等等,因为周末进行消费的概率比较大.要把用户id和商品id结合,因为每个用户有自己喜欢的商品偏好…这一部分工程量会比较大,需要去思考和挖掘潜在的特征.
2.模型训练
对每个优惠券coupon_id单独计算核销预测的AUC值,再对所有优惠券的AUC值求平均作为最终的评价标准。在我看来要计算auc,首先应该要计算这个coupon_id在未来会不会被消费,而计算会不会被消费