廣告CVR一周總結


  基於某一次天池預測比賽項目,一周完成baseLine的體驗總結。

  • 比賽要求:

    本次比賽以阿里電商廣告為研究對象,提供了淘寶平台的海量真實交易數據,參賽選手通過人工智能技術構建預測模型預估用戶的購買意向,即給定廣告點擊相關的用戶(user)、廣告商品(ad)、檢索詞(query)、上下文內容(context)、商店(shop)等信息的條件下預測廣告產生購買行為的概率(pCVR),形式化定義為:pCVR=P(conversion=1 | query, user, ad, context, shop)。

    評估指標為:

      

  • 機器學習中的數據預處理

  在數據領域中,對數據進行可視化並進行分析對理解數據具有很好的幫助,非常重要。

  數據的預處理中,包含數據的清洗、轉化和降維。詳細參考https://www.cnblogs.com/charlotte77/p/5606926.html

  在真實的數據中,我們拿到的數據往往可能包含了大量的缺失值,可能包含大量的噪聲,也可以因為人工等原因引入異常點離散點,需要我們對數據進行一波清洗操作。

  1. 對於比賽提供的原生數據與實際業務進行考慮並理解數據,可以對數據進行描述性統計分析,或者對數據進行可視化分析
  2. 缺失值處理:模型預測估計,特征統計值填補,特殊值(-1或NAN)代替,直接忽略不作處理,利用相似樣本的均值,直接刪除(如果缺失值所占比例不足3%刪除樣本;如果缺失值所占比例餓超95%且該特征實際意義不大,該特征直接刪除)
  3. 異常值處理:通過統計分析法尋找異常點,然后進行刪除、不處理、平均值代替或者視為缺失值
  4. 去重數據處理:對重復出現的數據進行丟棄   drop_duplicates
  5. 噪聲數據處理:擬合數據

  針對實際數據進行數據轉化

  1. 無量綱化:標准化(scale/StandardScaler)、歸一化(MinMaxScaler)、正則化(normalizing)
  2. 信息冗余/二值化:將數值特征轉化成布爾值的過程,閾值處理實現二值化
  3. 定量特征:對一些不連續離散特征數據進行標簽化LabelEncoder(categorical),對有序離散特征數據進行OneHotEncoder(get_dummies, LR和深度學習涉及該環節,且該轉化會使矩陣稀疏化)
  4. 缺失值:同上
  5. 信息利用率:由於實際數據並非嚴格的線性,特征之間可能存在互相關系,所以需要多項式特征得到特征的高階交叉項(PolynomialFeatures)

  高維度數據增加模型的計算壓力,且無關特征的干擾性強,故對數據進行降維(待研究。。。)

  1. PCA主成分分析法
  2. LI懲罰項的模型
  3. LDA線性判別分析法
  • 機器學習中的特征工程

  利用領域知識和現有數據,創造出新的特征,用於機器學習算法;可以手動(manual)或自動(automated)。神經網絡的自動特征工程,常常不適用於現實中其他的復雜任務。同時,數據和特征工程決定了模型的上限,改進算法只不過是逼近這個上限而已。參考https://zhuanlan.zhihu.com/p/26444240?utm_source=weibo&utm_medium=social

  個人感覺以上的數據預處理其實也是特征工程的一部分,而這部分主要是對數據構建完成后的數據集特征進行處理。

  1. 處理已有類別特征-如顏色、性別、國籍、郵政編碼等
    1. 離散無序特征:為分類值,采用one-hot編碼實現特征數值化
    2. 對不連續離散或非數值(文本,字符)類別特征:LabelEncoder標號處理,根據情況再做one-hot編碼
  2. 數值特征(可以連續可以離散,實數值)-如年齡、價格等(對數據進行單調轉換,不會對決策樹算法造成影響
    1. 標准化
    2. 連續數值特征離散化:根據實際模型應用情況可以對其進行閾值離散化
    3. 歸一化
    4. 正則化
  3. 時間特征數據類型轉化-如時間戳
    1. 針對時間戳提取相關的信息,如day、hour等等
  4. 特征選擇-尋找最優特征子集。特征選擇能剔除不相關(irrelevant)或冗余(redundant)的特征,從而達到減少特征個數,提高模型精確度,減少運行時間的目的。(參考西瓜書11章)
    1. 去除相關性不大的特征,相關性較高的優選選擇
    2. 取值變化較小的特征放棄,方差為0,不發散
    3. 過濾法https://baijiahao.baidu.com/s?id=1582723859862488016&wfr=spider&for=pc:先通過pearson相關系數等方法選擇最優特征方案再進行模型選擇,fearture_selection.SelectKBest/SelectPercentile
    4. 包裹法:將特征選擇作為特征子集搜索問題,通過模型評估特征子集篩選最優特征子集(典型算法:遞歸特征刪除算法)
    5. 嵌入式:將特征選擇算法作為組成部分嵌入到學習算法中(決策樹中每次迭代需要對特征進行擇優便是這種思想)
  5. 特征構造
    1. 數值特征的簡單變換,加減乘除
    2. 類別特征和數值特征的組合:通過pandas的groupby操作對某一類別特征的某一數值特征求統計值,(該比賽中,可以對用戶的當小時/當天點擊廣告數進行統計)
    3. 通過決策樹創造新的特征,將決策樹模型的輸出葉子節點作為新的特征加入模型中。(具體模塊包實現方法:apply()以及decision_path())
  • 模型選擇

  本比賽的模型模塊包,基於python的sklearn機器學習工具包

    https://www.jianshu.com/p/cd5a929bec33  Sklearn快速入門

    http://cwiki.apachecn.org/pages/viewpage.action?pageId=10030181 Sklearn0.18中文文檔

    https://zhuanlan.zhihu.com/p/29053940?group_id=916424345212342272 常見計算廣告點擊率預估算法總結

    https://mp.weixin.qq.com/s?__biz=MzI4MDMwMDM3NA==&mid=2247485363&idx=2&sn=7515b0c84ba80b58d13019a9a4f5ba08&chksm=ebbbd98adccc509c34d8282ee2f093f02330269479974afd8c08df1f3bcd25094c64e4d3e40b&mpshare=1&scene=24&srcid=0223kmq4ugJSfDu6YouZEVmY#rd 十大傳統機器學習算法的簡單概念描述

    https://blog.csdn.net/july_sun/article/details/53088673 機器學習常見分類器比較

  本次比賽的模型選擇,先以LR完成基本的base_line,再跑RF、GBDT、XGBoost、LightGBM模型。GBDT+LR、FM和深度學習模型未研究

  • LR模型
    1. 最簡單的線性回歸模型,但是其對正負樣本的額平衡十分敏感,而該比賽項目中的交易樣本與非交易樣本的占比差很大
    2. 容易欠擬合
    3. 缺失值對模型的影響,需要進行處理
    4. 對特征值需要進行歸一化或者標准化處理

  在該模型方案中,我們將訓練集和測試集的特征相結合進行缺失值處理、數據轉化、特征提取構造、類別標簽編碼和oneHot編碼、標准化處理等,然后跑模型

  • RF隨機森林模型-參考西瓜書第八章
    1. 對離群點非常敏感,缺失值對決策樹模型的影響不大
    2. 過擬合
    3. 計算開銷小。泛化能力強,
    4. 方差小,錯誤率低

  在該模型方案中,我們將訓練集和測試集的特征相結合進行數據轉化、特征提取構造、類別標簽編碼、標准化處理(可有可無,不影響整體)等,然后跑模型

  https://www.jianshu.com/p/005a4e6ac775   https://www.cnblogs.com/rocketfan/p/4324605.html(補)  GBDT的基本介紹

  https://blog.csdn.net/baoyan2015/article/details/56016169 隨機森林、GBDT和LR的理解和對比

  http://blog.sina.com.cn/s/blog_7103b28a0102w6zr.html  GBDT和RF的比較

  https://www.cnblogs.com/DjangoBlog/p/6201663.html  GBDT調參干貨

  • XGBoost模型
    1. 相對於GBDT,在損失函數的優化上在泰勒公式展開后多利用了二階求導函數
    2. 加了剪枝處理
    3. 在目標函數中引入正則化,防止過擬合

  http://www.52cs.org/?p=429 陳天奇 XGBoost中文版原理介紹

  https://blog.csdn.net/sb19931201/article/details/52557382 XGBoost入門

  https://blog.csdn.net/qq_28031525/article/details/70207918 RF、GBDT和XGBoost的區別

  • LightGBM模型 
    1. 輕量級GBM梯度提升機
    2. 模型訓練速度飛快,效率高
    3. 基於直方圖的決策樹算法
    4. 相對於XGBoost內存上優化

  https://blog.csdn.net/niaolianjiulin/article/details/76584785 LightGBM原理介紹

  http://www.360doc.com/content/18/0101/17/40769523_718161675.shtml GBDT、XGBoost和LightGBM介紹

  

 

 

  https://blog.csdn.net/snoopy_yuan/article/details/75808006 參考同類型比賽經驗,移動推薦算法

  https://blog.csdn.net/weixin_37933986/article/details/68488339 機器學習常見損失函數

  https://blog.csdn.net/google19890102/article/details/50522945 損失函數

  https://www.lfd.uci.edu/~gohlke/pythonlibs/ 黑科技(里面包含很多python第三方庫的下載資源)

  https://blog.csdn.net/losteng/article/details/78378958 GBDT+LR

  https://blog.csdn.net/lilyth_lilyth/article/details/48032119

  

 


免責聲明!

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



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