前言:
? ? ? ? 說來慚愧,本人在兩個月之前還是什么都不懂的菜鳥,屬于真正的小白一枚,只會對大佬喊666,但是這有什么用。我當現(xiàn)在也忘記了我為什么當時會去參加這個比賽,可能是冥冥之中的緣分吧,哈哈,好了,不說廢話,開始進(jie)行(shou)表(pi)演(ping)。
大賽簡單介紹:
? ? ? ? 先給個比賽的鏈接吧:大數(shù)據(jù)挑戰(zhàn)賽??
? ??????題意簡述:賽方給出用戶的四個表,包含了用戶在快手APP上1-30日的歷史行為,本次比賽的目標就是預測接下來7天(31-37)的活躍用戶。定義活躍為任意一張表出現(xiàn)過,就為活躍用戶。
采用的框架:
? ? ? ? 由于賽方提供的數(shù)據(jù)沒有l(wèi)abel標簽,所以需要用滑窗法對數(shù)據(jù)進行劃分,我這邊的劃分方式具體如下:
? ??????train1 ?1-16 ? test1 17-23 ?register 1-16
????????train2 ?8-23? ?test2 ?24-30 ?register 1-23
????????train3 15-30??register 1-30
? ? ? ? 可以用train1訓練train2進行線下驗證,后面train1和train2合并進行預測未來七天的活躍用戶的概率。
EDA分析:
? ? ? ? 說實在,這個EDA分析我到現(xiàn)在還是很懵逼,但是因為有大佬進行了分享,我知道了一些異常數(shù)據(jù)在注冊日期為24號、注冊類型為3,設備類型為1或83或223,這部分異常數(shù)據(jù)大概有一萬四千個,后面我把這幾個用戶的概率都置為0,大概能漲十萬分之七。這也算的上是一個蛇皮操作了,但這是不是我想出來的,是一個熱心的大佬告訴我的,非常感謝他?(?>?<?)? 。
特征工程:
? ? ? ? 特征工程我也不是很會,我都是一些基本的統(tǒng)計,mean,max,count,min,std,kurt,skew,還有一些比率這些特征,這應該就是我分數(shù)一直不高的原因。
? ? ? ? 這個題目我個人覺得一些比率特征比較好,比如我把device_type/register_type,這一個特征就給我漲了挺多的分。
? ? ? ? 至于群里一些大佬對device_type說的分箱操作,我試了沒用,可能是我的姿勢不對吧,我只是簡單的if--else,大佬應該是用到了k-mean聚類算法之類的,這些我也不是很會。當然群里大佬還說了對數(shù)據(jù)進行加權(quán),但是我這個我沒有試過,因為我根本不會啊(╥╯^╰╥)。
? ? ? ? 這個比賽還有很多東西我沒有想到,當然有的想到我也無法實現(xiàn),快手的視頻肯定會存在一些僵尸粉,這些怎么判斷出來我是不會的,還有怎么去判斷一個用戶是否一直關(guān)注某個高級用戶之類的。
模型選擇:
????????接下來就是模型選擇的,我從最開始就一直用的是lgb,打算一個模型用到老(⊙_⊙),后面我的單模型實在是干不上去了,具體原因我認為有兩個,一個是我特征的問題,特征沒有提取到位,還有沒有篩選出更好的特征組合,二是就是我目前對樹模型還是一知半解,只是個調(diào)包俠,對其原理不了解,所以參數(shù)的設置也是有問題的。
? ? ? ? 后面我就又組了一套新的特征也用lgb進行訓練,稍微變化了一些參數(shù),然后進行加權(quán)融合,終于讓我線上漲了十萬分之6左右,然后后面就又卡住了。
? ? ? ? 后面我又試了xgb、catboost、xgb+lr、mlp,結(jié)果都是不那么理想,但是融合總是有點收益的,還是漲了一點分。
? ? ? ? 關(guān)于融合的方面,我還是很欠缺的,大佬們用的是Blending,stacking之類的,我只是簡單的加權(quán)而已。這方面還是要繼續(xù)加強的。
一點感想:
????????第一次參加比賽,從一個小白到次小白,心里還是有點高興的,相比之前每一天看電影吃雞是不那么爽,但是比賽讓我又了提升。科賽這個平臺也挺好的,有問題都會及時的幫你解決的,很棒。
? ? ? ? 群里的氣氛很好,大佬們都很活躍,很樂意分享,特別是每周的周周星,能學到很多東西,在此非常感謝他們。最后,我要非常感謝暢哥,是我在比賽認識的一個特別好的博士,他一直幫助我,對我不厭其煩的講解,愿善良的人兒都會快樂每一天哈。
????????最后,說下我最終的名次吧,44名:


最后兩次還交炸了。。。
我終究還是個菜鳥,但是我接下來會繼續(xù)努力的,也歡迎一些愿意跟我一起交流組隊的找我哈。。。
我的代碼還沒整理,寫的亂七八糟的,等有時間整理的上傳上去,望大佬們輕噴?。。?!