原創|大數據新聞|編輯:鄭恭琳|2020-12-04 11:06:09.343|閱讀 285 次
概述:項目目的:預測客戶的交易價值。數據內容:4459條已知客戶的交易價值和客戶的屬性(具體內容不知道,有可能是性別、年齡、收入、交稅等等,每一個用戶有4993條屬性)。步驟:數據分析、特征值選取、模型建立、調試。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
項目目的:預測客戶的交易價值
數據來源://www.kaggle.com/c/santander-value-prediction-challenge
數據內容:4459條已知客戶的交易價值和客戶的屬性(具體內容不知道,有可能是性別、年齡、收入、交稅等等,每一個用戶有4993條屬性)
步驟:
有4459行,4993列,其實中1845列為float類型,3147列為int類型,有1列為object(應該為用戶id)
觀察發現特征值數量較大
初步處理:去掉常數列,去掉重復列
數據由4993變為4732
由于特征值太多,難以作圖分析
直接使用所有特征值
對需要預測值分析,觀察數據分布(下圖左),大部分數據集中在左側,做log處理使數據更符合高斯分布(下圖右)。通常高斯分布的數據預測更準確(原因不是很清楚,個人理解是如果有較大值出現,預測偏差一點,loss改變很大,對擬合不利)。
可能存在問題,樣本太少,有可能過擬合。先看下效果在說吧。
首先建立了一個4層的dnn網絡(詳見test_dnn.py)
預測結果分析
對測試集進行測試
衡量標準為為均方根
計算方法:sqrt((預測值-原始值)**2/樣本數)
Rms=1.84
下圖為預測誤差分布圖
結果分析:效果不理想,預測值與真實值差距較大,有一個值偏離非常大
原因分析:
1. 模型結構不夠理想
2. 超參數的設置
3. 樣本太少,有200w的參數但是樣本只有4000+,過擬合問題嚴重(在20次迭代后,就發生過擬合了)
使用lightgbm
直接使用lightgbm庫(能用,但是對調參還需要學習)
詳見test_lightgbm.py
預測結果分析
對測試集進行測試
衡量標準為均方根
Rms=1.35
結果分析:效果依舊不理想,但是比dnn較好,而且沒有偏移非常大的值
原因分析:
1. 依舊存在過擬合
2. 模型參數設置
使用xgboost
方法同上
預測結果
Rms=1.38
結果分析:效果依舊不理想
原因分析:
1. 2000次迭代次數不夠,模型還未收斂
2. 模型參數設置
使用catboost
方法同上
預測結果
Rms=1.47
結果分析:效果依舊不理想
使用集成學習的思想,將上面的方法混合使用
將3個學習器的結果根據權重求和,得到最后結果
Rms=1.36
結果分析:
使用4種方法對預測目標進行建模,其中dnn由于數據太少,很早就發生了過擬合
Xgboost,lightgbm,catboost效果比dnn要好很多,但是對價值預測依然存在偏差。但是結合kaggle的論壇帖子,由于數據特點在不使用leak的情況下 這已經是不錯的預測。由于調參修改的時間需求較大就不進行了,這里只是一個驗證,驗證結果為Xgboost,lightgbm,catboost在數據量較少的場景,效果是非常好的。
慧都大數據分析平臺,將學習、推理、思考、預測、規劃等能力賦予企業數據,讓數據驅動決策,創造最高業務價值。
歡迎撥打慧都熱線023-68661681或咨詢,我們將幫您轉接大數據專業團隊,并發送相關資料給您!
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn