特征工程与规则模型
特征工程&規(guī)則模型
導語
????在諸多比賽中,常常都可以聽說到一些高手避開了XGBoost、TensorFlow等高端機器學習模型,利用一些簡單的數(shù)據(jù)處理就獲得榜單的首位。這些簡單的數(shù)據(jù)處理方法常被這些高手稱為“規(guī)則”模型。
新手在接觸比賽之后,費勁千辛萬苦之后可能發(fā)現(xiàn)自己的模型的分數(shù)還遠遠趕不上高手的簡單幾行代碼發(fā)現(xiàn)的規(guī)則模型分數(shù)。這表面上看是跟高手之間經(jīng)驗的差別,其實這從深層次體現(xiàn)了特征工程的重要性,因為規(guī)則就是強特(與目標相關(guān)性很高的特征)的提取和組合。
那么數(shù)據(jù)挖掘為什么需要特征工程,這是很多初學者在拿到數(shù)據(jù)之后,感到特別疑惑的地方。為什么不能把數(shù)據(jù)直接丟進模型當中跑呢?當然,數(shù)據(jù)直接丟進模型中跑是可以的,只是模型并不一定能學習到正確的事情。
特征工程在數(shù)據(jù)挖掘中究竟有什么樣的意義呢?我想這個問題很多論壇還有公眾號都比我說的要更加詳細,這里我個人比較傾向于知乎上的一個答案“特征工程到底是什么?”,里面有很多厲害的高手都給出了自己的解答,而本文則是想從側(cè)面來解析拿到一個題目或者數(shù)據(jù)之后,不妨先做一個規(guī)則模型。。里面有很多厲害的高手都給出了自己的解答,而本文則是想從側(cè)面來解析拿到一個題目或者數(shù)據(jù)之后,不妨先做一個規(guī)則模型。
這里我先給出規(guī)則模型的定義:針對給出的數(shù)據(jù),進行分析提取一些有用的數(shù)據(jù)或者進行數(shù)據(jù)的組合完成最后的數(shù)據(jù)分析目標所構(gòu)造的模型就是規(guī)則模型。由上面我給出的定義來看,細心的你可能就發(fā)現(xiàn)建立規(guī)則模型是一種幫助自己深入數(shù)據(jù)和理解任務的一個有效過程。
為什么先做規(guī)則模型呢?這里我將結(jié)合今年騰訊比賽給出自己的理解。今年騰訊廣告算法比賽的目的是希望選手利用歷史的廣告曝光信息,來預測未來某一天某種廣告配置屬性下面的廣告的日曝光量大小。后臺發(fā)送“2019騰訊比賽”,返回賽題手冊鏈接。
01
規(guī)則模型是目標數(shù)據(jù)特點的體現(xiàn)
首先,規(guī)則模型有可能是目標預測數(shù)據(jù)特點一個體現(xiàn)。在今年騰訊廣告算法的初賽中,大家發(fā)現(xiàn)了一個非常強的規(guī)則模型,那就是舊廣告的曝光數(shù)據(jù)直接取歷史曝光數(shù)據(jù)的中位數(shù),然后新廣告的曝光值直接用0來填充,這是為什么呢?我們團隊在初賽中,機器學習的模型分數(shù)一直都低于規(guī)則的模型分數(shù)。那是因為我們的模型的分數(shù)并沒有學習到曝光值的特點,而規(guī)則模型卻學到了,因為最后測試集的曝光數(shù)據(jù)的值大部分都是很小的數(shù)值,而且有大部分可能就是0,因而新廣告直接填充0最后線上分數(shù)很高,就從側(cè)面幫助我們了解到了目標數(shù)據(jù)的特點和分布。
02
規(guī)則模型=高級的特征工程
其次,建立規(guī)則模型本身就是一個高級的特征工程。在今年騰訊廣告算法大賽的復賽中,又有高手發(fā)現(xiàn)了一個很強的規(guī)則模型,那就是利用廣告的歷史曝光次數(shù)除以曝光請求總數(shù)得到歷史的曝光勝率,然后利用這個勝率乘以最后測試集廣告的總請求數(shù)量,就可以得到曝光數(shù)。我們團隊在“發(fā)現(xiàn)”了這個規(guī)則模型之后,隊長非常敏銳的意識到了這是一個非常有用的特征。規(guī)則模型做出來的這個特征本身不僅僅反應了廣告在曝光當日的廣告的覆蓋量,另一方面又反應了廣告相對于其他廣告的競爭力。事實上,在我們采用熱力圖分析這個特征與目標的相關(guān)性的時候,也發(fā)現(xiàn)相關(guān)性達到了80%。利用上了這個特征之后,我們團隊的機器學習模型的分數(shù)才真正的超過了規(guī)則模型的分數(shù)。這個規(guī)則模型的建立本身就是在挖掘預測目標跟已有數(shù)據(jù)之間的聯(lián)系,所以規(guī)則模型就是在幫助選手深入理解數(shù)據(jù)和目標。
03
規(guī)則模型有助于對模型的優(yōu)化
最后,規(guī)則模型還有助于對模型的優(yōu)化。第一點就提到了新廣告的曝光數(shù)據(jù)直接填充0,模型的分數(shù)就可以很高,這說明了數(shù)據(jù)分布很接近0,那么這就啟發(fā)了很多參賽隊員要對線上的準確性指標進行優(yōu)化。如下圖所示,可以看出準確性指標肯定是越小說明模型的分數(shù)更高。但是如果真實值和目標值都是0的話,準確性指標函數(shù)就變?yōu)?了,所以我們就需要對模型的訓練loss進行平滑,參見上一篇推送文章“騰訊比賽總反思-附top選手的方案”,可以發(fā)現(xiàn)很多top選手在訓練LGB或者NN模型的時候都進行了平滑,這樣可以保證自己模型的訓練loss變化跟線上的評分比較貼合,從而可以通過線下Loss變化來猜測線上的變化。
規(guī)則模型不僅是優(yōu)化loss函數(shù),很多隊伍還發(fā)現(xiàn)了如果大部分曝光值都比較小的話,可以先做分類模型然后再做回歸模型。即,先將目標預測值分類成3中,分別是預測值為0,預測值為1,預測值大于1。然后再對預測值大于1的哪一類再用模型去回歸具體車曝光值,事后詢問相關(guān)top選手,這個方案可以提分1分左右。
由此可見,相信你會發(fā)現(xiàn)規(guī)則模型對于一個數(shù)據(jù)分析任務的意義=深度理解數(shù)據(jù)+高級特征工程。
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
- 上一篇: AI基础:数据增强方法综述
- 下一篇: 推荐一些动作识别数据集