【競賽項目】阿里天池數據挖掘比賽——快來一起挖掘幸福感


整理下這個項目的思路:

對於一般實習或校招生,項目可能比較少。關鍵要把項目的重點,難點,是如何做的,怎么解決的,學到了什么說清楚。

項目中用到的技術棧好好准備,面試的時候一定要講清楚,如果能在底層深挖一下會更好。

 


 

〇、項目簡介

2020.01 - 2020.02   阿里天池數據挖掘比賽——快來一起挖掘幸福感。

數據:

  阿里雲上面給Excel形式數據,數據量在1.2萬;100多屬性:收入、學歷、地域、心理預期、性別、身高體重......

                       對應的幸福感指數:1/2/3/4/5 

目標:

  訓練DNN模型,由屬性=》幸福感指數

  訓練集數據給出,而測試集未給出,用來檢驗上傳模型的優劣:

  用均方差MSE()衡量預測准確度,MSE值越小越好

 

一、數據預處理 

缺失值處理:(學歷缺失)

  • 通常用:均值填充,但效果不如找規律賦值(因為學歷缺失一般意味着學歷不佳)
  • 實在匱乏才刪除屬性。即使90%缺失也可能有相當的價值。

數據分箱

(用處不是很大,作用是防止過擬合)

 

二、特征工程:觀察數據的特征,創造新的特征組合。

關於新特征,我的發現主要是兩個:“相對值” & “反常現象”

(1)相對值(幸福是相對的,不僅在於絕對值,更在於相對值)

  • 相對收入= 絕對收入 - 基准值  (基准可以是:城市農村、性別、年齡段、與配偶比):

構造新特征 or 改造原有特征

  • BMI:體重/身高^2,組合出的新特征,更能反映問題 1+1>2,與目標happiness更高的相關性,遠好於各個單一屬性。

        分箱:特征離散化以后,簡化邏輯回歸模型,降低過擬合的風險。(合理分箱:BMI用了世衛組織的分箱標准:正常、超重、肥胖、特別肥胖)     (年齡也分箱:5/10歲分為一段,比一歲歲好用,不容易過擬合。70 后 80后 90后 00后)

 (2)反常現象

"研究生收入" 問題:在讀本科生、研究生的收入相對同齡已經工作的同學,收入絕對劣勢,但是其幸福感反倒高很多。

於是,找出:學歷高&在讀,強制加 "人為工資" 進去。

 

三、深度學習 DNN模型選擇+組合、調參

lgb+xgb(兩個都是boosting),然后stacking模型融合

boosting:多個決策樹串行,減小bias偏差;stacking:不同模型串行,類似搭積木。

  • 決策樹:基於信息熵增益,每次選擇增益最大的屬性分裂(-Σnlogn)
  • 多個決策樹boosting(串行迭代)變為GBDT(梯度boosting決策樹)
  • GBDT--> lgb:對連續值,分段離散(簡化)后計算

 

一些困難:

(1)計算迭代慢:

融合模型(lgb、xgb先內部串行--boosting,后之間串行--stacking)--> 單獨用 lgb(輕量化模型):約提高迭代速率15-20倍

(2)idea副作用:(比如上面的學歷缺失、相對收入就是idea)(看似很好、很合理的idea,到實際結果,竟然是副作用)

一開始小組成員都是:直接加 多個新特征,直接3個模型bagging+boosting完整走一遍,迭代速度超慢,很難一個個驗證效果

改用單獨lgb輕量級模型,一個個驗證嘗試,剔除了大概一半新特征(不僅沒有提高,還有副作用)

 

 

不斷改進  效果顯著,

最終成績進入所有比賽隊伍前1%

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM