這一節開始建立模型,在建模之前,我們先梳理一下思路:
思路:
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),因爲有些無標籤數據中也包含黑樣本特徵的重要信息。
故接下來用以上訓練出的模型對無樣本數據打標籤。由於篇幅原因,在下一篇博客中介紹。