本文共 1993 字,大约阅读时间需要 6 分钟。
特征构建部分
代码注释中详细描述了从原始数据中提取的各类特征,涵盖了商家、优惠券、用户、用户-商家以及其他相关特征。以下是具体特征的划分和计算方法:
商家相关特征:
sales_use_coupon
:用户在该交易中使用了优惠券的标志(布尔值)。total_coupon
:用户在该交易中使用的优惠券总数。transfer_rate
:用户使用优惠券的比例,计算公式为 sales_use_coupon / total_coupon
。merchant_avg_distance
、merchant_min_distance
、merchant_max_distance
:使用优惠券的商家距离的平均、最小和最大值。total_sales
:用户在该交易中的总销售额。coupon_rate
:用户使用优惠券的比例,计算公式为 sales_use_coupon / total_sales
。优惠券相关特征:
discount_rate
:优惠券的折扣率,单位为百分比。discount_man
:优惠券的满减金额(仅在非满减优惠券中有效)。discount_jian
:优惠券的满减金额(仅在满减优惠券中有效)。is_man_jian
:判断优惠券是否为满减优惠券(布尔值)。day_of_week
、day_of_month
:优惠券接收日期的星期几和月份。用户相关特征:
distance
:用户与商家的距离(单位:公里)。user_avg_distance
、user_min_distance
、user_max_distance
:用户在不同交易中距离的平均、最小和最大值。buy_use_coupon
:用户是否在该交易中使用优惠券(布尔值)。buy_total
:用户在该交易中的总购买金额。coupon_received
:用户接收的优惠券总数。buy_use_coupon/coupon_received
:用户使用优惠券的比例。用户-商家相关特征:
times_user_buy_merchant_before
:用户在过去多少次购买了该商家。其他特征:
this_month_user_receive_all_coupon_count
:用户本月接收的所有优惠券数量。this_month_user_receive_same_coupon_count
:用户本月接收的同一优惠券的次数。this_month_user_receive_same_coupon_lastone
:用户本月最后一次接收同一优惠券的时间。this_month_user_receive_same_coupon_firstone
:用户本月第一次接收同一优惠券的时间。this_day_user_receive_all_coupon_count
:用户当天接收的所有优惠券数量。this_day_user_receive_same_coupon_count
:用户当天接收的同一优惠券的次数。day_gap_before
、day_gap_after
:用户接收同一优惠券前的和后的天数。XGBoost机器学习部分
在特征构建完成后,采用XGBoost进行模型训练。以下是模型训练的具体参数设置和结果:
模型参数:
booster
:使用GBTree Booster。objective
:优化目标为交叉对数损失函数。eval_metric
:使用AUC(Area Under Curve)作为评价指标。gamma
:学习率。min_child_weight
:最小的子树权重。max_depth
:树的最大深度。lambda
:正则化参数。subsample
:随机采样比例。colsample_bytree
:列随机采样比例。colsample_bylevel
:列分层随机采样比例。eta
:学习率。tree_method
:树的构建方法。seed
:随机种子。nthread
:并行线程数。模型训练过程:
模型预测:
模型特征重要性:
day_gap_before
:特征重要性最高,表明该特征对模型预测结果影响最大。day_gap_after
:特征重要性次之。coupon_rate
:优惠券使用率对模型预测结果也有重要影响。merchant_avg_distance
:商家距离特征也对模型表现有显著贡献。最终预测结果:
注:本文中所有特征名称和变量计算方法均基于提供的代码注释,具体实现细节请参考原始代码。
转载地址:http://hbrg.baihongyu.com/