1. 程式人生 > >風險大腦-支付風險識別天池大賽(三)快速建立模型(含調參思路)

風險大腦-支付風險識別天池大賽(三)快速建立模型(含調參思路)

這一節開始建立模型,在建模之前,我們先梳理一下思路:

思路:

1、首先選出只帶標籤的資料(有風險和無風險的),進行分析,建立一個 recall rate 風險交易召回率較高的二分類模型。

2、接著在無標籤的資料上應用此模型,打上標籤,並與之前有標籤的資料進行合併,形成最終完整訓練樣本。

3、將新的訓練樣本送入模型,得到最終模型。

4、應用測試資料,得到結果。

模型建立流程:


        因為id無重複,說明id可能是交易id,而不是賬戶id,可以不送入模型訓練;同時交易時間也可以不送入訓練,故利用選擇屬性運算元將其兩者過濾。之後將label列的角色設定為標籤label,即告訴模型是否有風險的列為你要關心的結果。接著因為隨機森林要求輸入模型的資料是非空數值型別,故在之前的資料型別轉換基礎上還要做替換缺失值操作。

        在僅利用有標籤資料進行預測,隨機森林引數maxCategories=50,treeMaxDepth=7,treeNum=30時,結果如下,可以看到效果還不錯。


        可見當隨機森林中樹的深度比較小時,效果很差,原因主要是資料中特徵太多(接近300個),決策樹太淺會導致決策策略過於粗糙,故我們需要提高每顆決策樹的深度。

maxCategories=35,treeMaxDepth=6,treeNum=20:


maxCategories=35,treeMaxDepth=14,treeNum=23


maxCategories=35,treeMaxDepth=30,treeNum=23:


        可見單個決策樹越深,效果越好,為了保證訓練的速度,現在保持樹深為15,增大隨機森林中樹的個數,發現效果也有變好

maxCategories=32,treeMaxDepth=15,seed=7,treeNum=45:


maxCategories=32,treeMaxDepth=30,seed=7,treeNum=100:


但樹的個樹一旦超過100,再增加樹的個數模型效果改善就不大了:

故最終引數調整如下:

maxCategories=32,treeMaxDepth=15,seed=7,treeNum=150:


        可見,只用帶標籤的資料,利用隨機森林訓練出的模型風險資料召回率並不是很高(接近0.5),因為有些無標籤資料中也包含黑樣本特徵的重要資訊。

        故接下來用以上訓練出的模型對無樣本資料打標籤。由於篇幅原因,在下一篇部落格中介紹。