原創|大數據新聞|編輯:鄭恭琳|2020-12-03 13:24:17.083|閱讀 385 次
概述:數據集為uci下載的,某家銀行電話營銷與是否購買定期存儲的數據。 模擬目標為知道客戶數據,預測購買理財產品概率。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
數據集是從uci下載的,某家銀行電話營銷與是否購買定期存儲的數據。
模擬目標是知道客戶數據,預測購買理財產品概率
我認為將電話營銷的數據消除只保留基本屬性可以模擬實際銀行能夠獲取的數據。
電話營銷數據代表一些對用戶決定由影響但是獲取難度較大的數據。比如說,買房、買車、小孩上學,這些數據銀行不能立刻獲得,或者獲取成本較高。這里不使用這些數據參與預測。雖然預測準確度會降低,但是更符合實際情況。
然后定期存儲是一種產品,可以當做一種理財,如果能對一種進行預測行進實現和驗證,那么可以擴展到多種產品的預測
數據情況,見下表
Age |
年齡 |
Job |
工作 |
Marital |
婚姻情況 |
Education |
教育情況 |
Default |
違約情況 no無違約 yes 有違約 |
Balance |
賬戶余額 |
House |
是否買房子 no 無房產 yes 有房子 |
Loan |
貸款 no 無貸款 yes 有貸款 |
數據清洗常規套路(空值檢查,去重,去異常值)
由于數據集較好,基本不需要處理,但實現數據很有可能需要清洗,比如說,年齡缺失不能簡單補0。
balance處理的嘗試
對數據one-hot encoding,對yes,no等2分類用0,1替換
處理之后數據為
使用lightgbm建模,參數如下
對測試集預測的結果左邊為客戶序號,predict為預測購買的可能性(推薦度),real為真是購買情況(0為未購買,1為已購買)
評價模型的好壞,對于少部分人購買(大部分預測都低于百分之50),很難用accurate去評價
舉個例子,
真實情況是A類人購買率0.1,B類人購買率0.2,C類人購買率0.2。
即真實100個A, 100個 B, 100個 C 分別購買為10,20,20
2個模型經過訓練對A,B,C,3類人的購買可能性預測為0.3 ,0.2, 0.1;0.15, 0.2, 0.2模型認為A,B,C三類人都不會購買。
accurate為預測正確人數/總人數
accurate(模型1)=accurate(模型2)=250(250沒買東西,模型預測所有人都不會購買)/300=83%
如果用accurate去評價,模型1的性能是等于模型2的。
但是顯然模型2更符合真實情況,所以這里不再使用accurate來作為標準。
這里使用的方法是,對預測值進行排序,如果預測準確,那么可能性高的人一定會多買產品。通過下圖來衡量模型的好壞,紅色為隨機推薦,綠色為安概率排序后推薦。
如果綠線開始上升越快,說明模型效果越好。
這圖除了來衡量模型好壞,也是一個有用的結論:
對一個人群范圍,可以先通過模型排序,然后選取一定范圍進行營銷活動,提高轉換率。
這里用1000的人來做標準,之后的模型也使用這個數據來做判斷標準。排序前推薦1000人,購買率為104/1000=10.4%,排序后推薦1000人,購買率為270/1000=27%,差距最大點為1362。在推薦1362人是使用排序算法都購買人數和隨意推薦差距最大。
特征值的重要程度如下圖,可以看出賬戶余額和年齡是最重要的2個特征值
通過dnn和xgboost建模(具體見py代碼)
1000人時,實際購買人數如下圖
3種取現
結論分析在目前的參數設置來說 效果為xgboost>lightgbm>dnn
對比試驗,之前的數據集是認為只有客戶的基礎屬性,然后對客戶的購買可能性做出預測。
現在增加電話營銷的數據,來模擬一些營銷數據(比如說發過幾封推薦郵件)。
新增3個參數為
使用lightgbm建模結果如下
特征值的重要程度如下圖,新增的特征值duration(持續通話時間)和campaign(聯系次數)對預測有相當重要的影響。
對比沒有這3個特征值時的預測(同樣使用lightgbm)
這個對比說明了,在有效的特征值越多的情況下,預測越準確。
====== 推薦閱讀 ======
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn