开发者学堂课程【天池大赛算法教程及获奖选手答辩:新手入门赛-O2O赛题理解与数据探索(一)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/389/detail/4996
新手入门赛-O2O赛题理解与数据探索(一)
内容介绍:
一、赛题描述
二、分类算法
三、评测指标
四、认识数据
五、数据划分
六、特征工程
一、赛题描述
背景:
1. O2O 行业估值上亿的创业公司至少有10家,也不乏百亿巨头的身影
2.以优惠券盘活老用户或吸引新客户进店消费是 O2O 的一种重要营销方式
3.个性化投放是提高优惠券核销率的重要技术
赛题:
本赛题提供用户在2016年1月1日至2016年6月30日之间真实线上线下消费行为,预测用户在2016年7月领取优惠券后15天以内的使用情况。并预测投放的优惠券是否核销、预测投放的优惠券被核销的概率再转化为二分类问题
二、分类算法
集成算法:XGBoost、LightGBM、GBDT、Random Forest
1. XGBoost(易上手,在比赛中使用较多)
相关论文:A Scalable Tree Boosting System Higgs Boson Discovery with Boosted Trees
举例:一个精小的轮 tgboost(https://github.com/wepe/tgboost)
2. LightGBM(微软出品,速度较快,内存占用较少)
3. GBDT、Random Forest(在资源包 scikit-learn 中)
4. Logistic Regression(逻辑回归)
5. Deep Neural Network(深度神经网络)
6. SVM
注意事项:
常见错误1:训练前不做规范化
常见错误2:只对训练集规范化
正确做法:对训练集做归一化/标准化,同时对测试集做相同的操作
为什么树算法在数据挖掘比赛中独领风骚?
大多数据挖掘比赛提供的是工业数据/互联网数据,
数据特点:
混合类型(类别型,连续型,二值)
大量缺失值
含有离群点
长尾分布
树算法的特点:
善于处理混合类型特征
善于处理缺失值
伸缩不变性。
对离群点鲁棒
容易并行化
可解释性强
Boosting 算法降低偏差
Bagging 算法降低方差
三、测评指标
本赛题目标是预测投放的优惠券是否核销。针对此任务及一些相关背景知识,使用优惠券核销预测的平均 AUC(ROC 曲线下面积)作为评价标准。
即对每个优惠券 coupon_id 单独计算核销预测的 AUC 值,再对所有优惠券的 AUC 值求平均作为最终的评价标准。
Receiver operating characteristic example
从 AUC 判断分类器优劣的标准:
AUC=1,是完美分类器
0.5<AUC<1,优于随机猜测
AUC=0.5,跟随机猜测一样,模型没有预测价值。
AUC<0.5,比随机猜测还差,但只要反转预测,就优于随机猜测。
各种评测指标的实现代码:
https://github.com/benhamner/Metrics