在應用科學領域,演算法的選擇和應用是一個複雜的問題,它涉及到數學、工程和業務策略等多個方面。這篇文章,我們來看看演算法的增益、部署問題、線性與非線性模型的選擇,以及樹模型和神經網路演算法的適用場景。
其實,在應用科學領域,這是最微不足道的。
AI,就是數學的遊戲,這不能算貶義,因為數學真的是皇冠。
演算法帶來的超額效果很小。除了邏輯回歸複雜度較低之外,xgb、lgb,神經網弱等學習能力都很強,演算法的增益幾乎可以忽略不計。
選擇演算法,最重要的是考慮部署問題。如果你們工程上只會邏輯回歸的線性計算,那你就只能選邏輯回歸。選擇別的演算法,要先解決工程問題。但其實都好解決,也不好解決,主要看系統能力,其次看個人能力。
從線性和非線性的角度說吧,邏輯回歸當然是線性的,神經網路和樹模型是非線性的。這個問題帶來的結果是,線性的需要分客群,非線性的可能可以不特別需要分客群。
為什麼?
ln ( odds ) =a1x1+a2x2+ …,你看表達式就知道了,不同客群的係數矩陣 A 肯定是不一樣的,實際上連組成 X 矩陣的 woe 值都不一樣。不一樣的表達式,採用線性的方式強行合成一個,肯定是有損的。
那樹模型呢?分客群可以看作第一層分裂進行了手動分群,其實還不如不分,留給演算法自己分。如果你保證總的複雜度不變的話,我相信演算法自己分效果會更好。
也就是說,假如分了 n 個客群,建了 n 個模型,對比的那一個不分客群的模型,在相同的參數下,評估器的數量應該乘以 n。
我們這裡說的是做模型分不分客群。建模不分客群不代表策略不分客群,做策略的時候自行去劃分就好了。
有人說,神經網路演算法更適合同質類數據,即數據的每一維變數是有同樣含義的,比如圖像中的圖元、文字中的字元、音訊中的波形,決策樹演算法更適合異質類數據,比如風控場景中的年齡、收入、職業等。
有點道理,這是結構化數據和非結構化數據的另一種說法。
有人說,在風險建模的時候,若採用樹演算法,最常採用的參數為低深度、高數量(樹深通常設置為 2-3,樹的棵數設置為幾十到一百),一旦樹深設置過高,則極易產生過擬合,這與我們對金融數據缺少高階信息的評判相符。一旦涉及到高阶交叉特征,則此時帶來的雜訊極可能超過信號,甚至影響到低階特徵的學習效果。對於同質資訊,比如數據源都為多頭資訊,樹深可以設置的高一些,因為此時更深的樹也不代表高階交叉,本質上只是同一個資訊源的不同分裂節點而已。
有點道理,樹深的問題理解成高階不高階,仁者見仁智者見智,畢竟樹深越深模型越複雜效果就是越好,你不能說它有什麼大問題。設置低樹深更重要的是和策略,和人的理解保持一致,三個變數交叉已經夠你理解的了。至於同質資訊,更深的樹不代表高階交叉,這樣說也對,畢竟多個多頭變數組合你可以理解成一個更複雜的多頭變數加工。但是無須差異化,仍然保持低樹深即可。
題圖來自 Unsplash,基於 CC0 協定。