天池实战赛o2o优惠券使用预测-实战学习
赛题的比赛背景:
随着移动设备的完善和普及,移动互联网+各行各业进入了高速发展阶段,这其中以O2O(Online to Offline)消费最为吸引眼球。据不完全统计,O2O行业估值上亿的创业公司至少有10家,也不乏百亿巨头的身影。O2O行业天然关联数亿消费者,各类APP每天记录了超过百亿条用户行为和位置记录,因而成为大数据科研和商业化运营的最佳结合点之一。 以优惠券盘活老用户或吸引新客户进店消费是O2O的一种重要营销方式。然而随机投放的优惠券对多数用户造成无意义的干扰。对商家而言,滥发的优惠券可能降低品牌声誉,同时难以估算营销成本。 个性化投放是提高优惠券核销率的重要技术,它可以让具有一定偏好的消费者得到真正的实惠,同时赋予商家更强的营销能力。本次大赛为参赛选手提供了O2O场景相关的丰富数据,希望参赛选手通过分析建模,精准预测用户是否会在规定时间内使用相应优惠券。
数据:
本赛题提供用户在2016年1月1日至2016年6月30日之间真实线上线下消费行为,预测用户在2016年7月领取优惠券后15天以内的使用情况。
注意: 为了保护用户和商家的隐私,所有数据均作匿名处理,同时采用了有偏采样和必要过滤。
评价方式
本赛题目标是预测投放的优惠券是否核销。针对此任务及一些相关背景知识,使用优惠券核销预测的平均AUC(ROC曲线下面积)作为评价标准。 即对每个优惠券coupon_id单独计算核销预测的AUC值,再对所有优惠券的AUC值求平均作为最终的评价标准
提交结果:
一、SGD 分类
def check_model_SGD(data, predictors):classifier = lambda: SGDClassifier(loss='log', # loss function: logistic regressionpenalty='elasticnet', # L1 & L2fit_intercept=True, # 是否存在截距,默认存在max_iter=100, shuffle=True, # Whether or not the training data should be shuffled after each epochn_jobs=1, # The number of processors to useclass_weight=None) # Weights associated with classes. If not given, all classes are supposed to have weight one.# 管道机制使得参数集在新数据集(比如测试集)上的重复使用,管道机制实现了对全部步骤的流式化封装和管理。# 可参考:https://blog.csdn.net/lanchunhui/article/details/50521648model = Pipeline(steps=[('ss', StandardScaler()), # transformer# 去均值和方差归一化('en', classifier()) # estimator])parameters = {'en__alpha': [ 0.001, 0.01, 0.1],'en__l1_ratio': [ 0.001, 0.01, 0.1]}# StratifiedKFold用法类似Kfold,但是他是分层采样,确保训练集,测试集中各类别样本的比例与原始数据集中相同。folder = StratifiedKFold(n_splits=3, shuffle=True)# Exhaustive search over specified parameter values for an estimator.#参考:https://blog.csdn.net/qq_39521554/article/details/86227582grid_search = GridSearchCV(model, parameters, cv=folder, n_jobs=-1, # -1 means using all processorsverbose=1)grid_search = grid_search.fit(data[predictors], data['label'])return grid_search
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
