一、賽題連接:面向電信行業存量用戶的智能套餐個性化匹配模型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
這個比賽第一名,第二名,第四名貌似都有開源,還有砍手豪大佬對植物嫁接的進一步深刻在知乎上都有文章,能夠進行參考。