這一節開始建立模型,在模組化之前,我們先梳理一下思路:
思路:
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),因為有些無标簽資料中也包含黑樣本特征的重要資訊。
故接下來用以上訓練出的模型對無樣本資料打标簽。由于篇幅原因,在下一篇部落格中介紹。