程序源代碼參見GitHub:https://github.com/leungBH/BankMarketing
-
數據集基本情況
目標:
根據相關的信息預測通過電話推銷,用戶是否會在銀行進行存款。
特徵:總共有50個特徵。
年齡,工作類型,婚姻狀況,受教育背景,信用情況,房貸,個人貸款,聯繫電話是手機還是固定電話,最後聯繫月份,最後聯繫日,通話持續時間,本次活動中聯繫的次數,最後一次接觸距離上一次接觸的時間,以前的活動中聯繫的次數,上一次活動成功與否,就業變化率,消費者物價指數,歐元銀行同業拆借利率,就業人數。
數據集中願意存款的比例大概只有1/9,存在嚴重的不平衡,導致精確度不高。
Yes: 4640 No: 36548
下面嘗試使用幾種處理數據集不平衡的方法做優化:
1,多少數分類進行過採樣(複製正樣本,用smote方法過採樣)
2,對多數分類進行欠採樣
先看看不做任何處理的結果
-
對負樣本進行欠採樣(隨機保留一半的負樣本)
相比於不做任何處理,精度有很大幅度的提升。
-
對正樣本進行過採樣(把所有正樣本複製一遍)
性能也有不錯的提升
-
利用smote方法進行過採樣
效果比簡單複製正樣本要好,特別是在測試集上的性能。
-
結合欠採樣和過採樣
性能優於單獨使用過採樣和單獨使用欠採樣