一、赛题连接:面向电信行业存量用户的智能套餐个性化匹配模型git
二、赛题任务: 利用已有的用户属性(如我的基本信息、用户画像信息等)、终端属性(如终端品牌等)、业务属性、消费习惯及偏好匹配用户最合适的套餐,对用户进行推送,完成后续个性化服务。github
三、数据解读及预处理:spa
- 多分类任务-->11分类;根据service_type来划分套餐 ,一类8个,另一类3个(下文图片里面的大宝卡以及腾讯王卡系列)。
- 11个套餐表所对应的卡,经过对1_total_fee进行value_counts和网上套餐比较能够大体推出来。

- 数据预处理---->清洗数据以及对1234_total_fee进行相似3sigma的进行标记。
四、特征工程:图片
- 对1-2-3-4_total_fee进行min ,max ,std ,mean等操做;最后发现四个月话费的最小值是比较强的特征,从EDA来看对套餐区分是比较明显的。

- 本月流量以及上个月流量的差值特征;而且发现某些用户上个月的流量是一个完整的数值,比方说1024,2048,3072这种数值,对这种用户进行了简单的标记。

- 用当月费用减去超出通话时长的钱。1_total_fee - (service1_caller_time)*0.15
- 计算每一个用户的基本费用(base_fee)

- 判断四个月的话费是不是一个整数。比方说套餐36的用户若是帐单里面出现了36和36.0的话,那么后者36.0多是其余base_fee经过开加油包等超出套餐费用叠加上来的。
- 四个月的费用分别groupby("complaint_fee")进行count。

五、搭建模型:rem
模型: 十折的lightgbm模型 + 五折的xgboost模型get
xgboost实在是太慢了,没有GPU加成的话貌似要跑差很少一个白天,可是用上GPU精度就下降了。it
六、模型融合: 经过林有夕大神分享的投票代码进行融合,有一点收益可是不大。io
七、处理:class
- 咱们队伍是失败了,大概思路就是对模型分不开的两个套餐加一个权重。决赛队伍应该都是有分享的。
- 还有就是植物以前ijcai2018所用过的"食之无味,弃之惋惜",惜的是咱们也失败了。
最后附上咱们队的github连接(记得点个星星哦~)service
开源代码地址:2018_CCF_BDCI_ChinaUnicom_Package_Match_Rank6
这个比赛第一名,第二名,第四名貌似都有开源,还有砍手豪大佬对植物嫁接的进一步深刻在知乎上都有文章,能够进行参考。