機器學習之模型評估(還是沒搞定...)
阿新 • • 發佈:2018-12-18
任務介紹
1.任務:預測貸款使用者是否會逾期
2.status是標籤:0表示未逾期,1表示逾期
【任務四:模型評估】記錄五個模型關於precision,rescore,f1,auc,roc的評分表格,畫出auc和roc曲線圖。
模型 | |
|
|
|
|
---|---|---|---|---|---|
邏輯迴歸 | 0.4500 | 0.0244 | 0.0463 | 0.5070 | 0.7400 |
SVM | 0.500 | 0.0081 | 0.0160 | 0.5026 | 0.7414 |
決策樹 | 0.3056 | 0.3388 | 0.3213 | 0.5352 | 0.6300 |
XGBoost | 0.3707 | 0.5000 |
0.4258 | 0.5000 | 0.7414 |
lightgbm | 0.5981 |
這個任務持續做了兩天也沒有搞定,一開始還以為挺簡單,沒想到一直搞不出來。兩個大的問題:
1.繪製ROC曲線的圖一直為空白,這是5個模型都存在的問題。
2.lightgbm模型在評估上一直報錯:ValueError: Classification metrics can't handle a mix of binary and continuous targets
模型的預測輸出確實有問題,不是標籤1 和0,而是概率,這個確實是問題,但查了好久也沒解決。
3.XGBoost模型那是一直有個警告:UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no predicted samples.
已解決的問題:
1.邏輯迴歸模型那裡本來也是出現lightgbm同樣的報錯,經過查詢發現是 預測那一步呼叫的函式有問題,應該呼叫predict就沒問題了,我一開始是用predict_proba函式,這兩者的區別為:
predict_proba返回的是一個n行k列的陣列,第i行第j列上的數值是模型預測第i個預測樣本的標籤為j的概率。此時每一行的和應該等於1。
predict返回的是一個大小為n的一維陣列,一維陣列中的第i個值為模型預測第i個預測樣本的標籤;
總結:自己獨立解決問題的能力還是不行,有個能討論的團隊還是好很多,這樣的學習模式確實挺好,如果每次任務完成能給出正確程式碼就好了,問題也能對照解決。