参考文献:
题目简介:
https://tianchi.aliyun.com/getStart/information.htm?raceId=231593
https://blog.csdn.net/ccj_ok/article/details/72675956
美年的待看
https://tianchi.aliyun.com/forum/new_articleDetail.html?spm=5176.100067.444.2.7c761db77xUahI&from=user&raceId=&postsId=3192
以它为准,进行学习的
O2O优惠券使用新人赛数据发掘工程
https://tianchi.aliyun.com/course/courseConsole?courseId=263&chapterIndex=1§ionIndex=3
以优惠券盘活老用户或吸引新客户进店消费是O2O的一种重要营销方式。然而随机投放的优惠券对多数用户造成无意义的干扰。对商家而言,滥发的优惠券可能降低品牌声誉,同时难以估算营销成本。 个性化投放是提高优惠券核销率的重要技术,它可以让具有一定偏好的消费者得到真正的实惠,同时赋予商家更强的营销能力。
本次大赛为参赛选手提供了O2O场景相关的丰富数据,希望参赛选手通过分析建模,精准预测用户是否会在规定时间内使用相应优惠券。
2. 数据
本赛题提供用户在2016年1月1日至2016年6月30日之间真实线上线下消费行为,预测用户在2016年7月领取优惠券后15天以内的使用情况。
4. 提取特征(pandas,numpy)
1) 优惠券相关特征,从预测样本的discount_rate,data_received提取:
Day_of_week //优惠券领取日期属于周几,使用独热编码
Is_weekend //优惠券领取日期是否属于周末
Day_of_month //优惠券领取日期属于一月中的哪天
Days_distance //优惠券领取日期离要预测的开始日期间隔天数
Discount_man //提取满减优惠券中满多少元
Discount_jian //提取满减优惠券中减多少元
Discout_rate //优惠券折扣率
2) 商户相关特征,从训练样本的distance,date_received,date提取:
Total_sales //商户被消费次数
Sales_use_coupon //商户使用优惠券被消费次数
Total_coupon //商户发放优惠券次数
Merchant_min_distance //所有使用优惠券消费的用户与商户的最小距离
Merchant_max_distance //所有使用优惠券消费的用户与商户的最大距离
Merchant_mean_distance //所有使用优惠券消费的用户与商户的平均距离
Use_coupon_rate //商户使用优惠券消费比例,等于sales_use_coupon/total_sales
Transfer_rate //商户优惠券转化率,等于sales_use_coupon/tatal_coupon
3) 用户相关特征,从训练样本的discount_rate, distance, data_received, data提取:
Count_merchant //用户消费商户数量
Buy_use_coupon //用户使用优惠券消费次数
Buy_total //用户消费次数
Coupon_received //用户领取优惠券次数
User_min_distance //所有使用优惠券消费的商户与用户的最小距离
User_max_distance //所有使用优惠券消费的商户与用户的最大距离
User_mean_distance //所有使用优惠券消费的商户与用户的平均距离
Avg_user_date_datereceived_gap //用户从领取优惠券到消费的平均时间间隔
Min_user_date_datereceived_gap //用户从领取优惠券到消费的最小时间间隔
Max_user_date_datereceived_gap //用户从领取优惠券到消费的最大时间间隔
Buy_use_coupon_rate //用户使用优惠券消费占总消费的比例
User_coupon_transfer_rate //用户优惠券转化为实际消费比例
4) 用户-商户相关特征,从训练样本date,date_received提取特征:
User_merchant_buy_total //用户在商户消费次数
User_merchant_received //用户领取商户优惠券次数
User_merchant_buy_use_coupon //用户在商户使用优惠券消费次数
User_merchant_buy_common //用户在商户普通消费次数
User_merchant_coupon_transfer_rate //用户对商户的优惠券转化率
User_merchant_rate //用户对商户消费占总交互比例
User_merchant_common_buy_rate //用户对商户普通消费占总消费比例
User_merchant_coupon_buy_rate //用户对商户使用优惠券消费占总消费比例
5. 训练模型(xgboost, sklearn)
选择xgboost模型,xgboost是一种迭代提升方法,由多个弱分类器组成的效果较好的强分类器,其中底层的弱分类器一般是由决策树实现的,每棵树所学习的是上一棵树的残差。
它的优势主要有:
使用L1、L2范数进行正则化,防止过拟合;
实现树节点粒度的并行计算;
允许自定义损失函数和评价标准;
XGBoost会一直分裂到指定的最大深度(max_depth),然后回过头来剪枝。如果某个节点之后不再有正值,它会去除这个分裂。 这种做法的优点,当一个负损失(如-2)后面有个正损失(如+10)的时候,就显现出来了。XGBoost会继续分裂,然后发现这两个分裂综合起来会得到+8,因此会保留这两个分裂。
内置交叉验证,XGBoost允许在每一轮boosting迭代中使用交叉验证。因此,可以方便地获得最优boosting迭代次数
二: