数据集按类划分_大数据风控面试(五) 模型评估与优化
目錄:
1?簡單介紹一下風控模型常用的評估指標
2?為什么ROC適合不平衡數據的評價?
3 如何處理樣本不平衡的問題?
4 什么是模型的欠擬合和過擬合?
5 如何判斷模型是否存在過擬合或欠擬合?對應的解決方法有哪些?
6 什么是正則化?什么是L1正則化和L2正則化?
7 正則化為什么可以防止過擬合?
8 ?L1和L2的區別以及分別服從什么分布
9 什么是交叉驗證?交叉驗證的目的是什么?有哪些優點?
10?交叉驗證常用的方法有哪些?
1?簡單介紹一下風控模型常用的評估指標。
混淆矩陣指標:精準率,查全率,假正率。當模型最后轉化為規則時,一般用這三個指標來衡量規則的有效性。要么注重精準率,要么注重查全率,兩者不可兼而得之。
ROC曲線和AUC值,ROC曲線是一種對于查全率和假正率的權衡,具體方法是在不同閾值下以查全率作為縱軸,假正率作為橫軸繪制出一條曲線。曲線越靠近左上角,意味著越多的正例優先于負例,模型的整體表現也就越好。AUC是ROC曲線下面的面積,AUC可以解讀為從所有正例中隨機選取一個樣本A,再從所有負例中隨機選取一個樣本B,分類器將A判為正例的概率比將B判為正例的概率大的可能性。在對角線(隨機線)左邊的點上TPR總大于FPR,意為正例被判為正例的概率大于負例被判為正例的概率。從另一個角度看,由于畫ROC曲線時都是先將所有樣本按分類器的預測概率排序,所以AUC反映的是分類器對樣本的排序能力。AUC越大,自然排序能力越好,即分類器將越多的正例排在負例之前。
KS:用于區分預測正負樣本分隔程度的評價指標,KS越大,表示模型能將好壞樣本區分開的程度越大。KS的繪制方法是先將每個樣本的預測結果化為概率或者分數,將最低分到最高分(分數越低,壞的概率越大)進行排序做樣本劃分,橫軸就是樣本的累計占比,縱軸則是好壞用戶的累計占比分布曲線,KS值為兩個分布的最大差值(絕對值)。KS值僅能代表模型的區隔能力,KS不是越高越好,KS如果過高,說明好壞樣本分的過于開了,這樣整體分數(概率)就是比較極端化的分布狀態,這樣的結果基本不能用。
基尼系數:其橫軸是根據分數(概率)由高到低累計的好用戶占總的好用戶的比例,縱軸是分數(概率)從高到低壞用戶占總的壞用戶的比例。由于分數高者為低風險用戶,所以累計壞用戶比例的增長速度會低于累計好用戶比例,因此,基尼曲線會呈現向下彎曲的形式,向下突出的半月形的面積除以下方三角形的面積即是基尼系數。基尼系數越大,表示模型對于好壞用戶的區分能力越好。
2?為什么ROC適合不平衡數據的評價?
ROC曲線的縱軸是TPR=??,橫軸是FPR=??,TPR聚焦于正例,FPR聚焦于與負例,所以ROC兼顧了正樣本和負樣本的權衡,使其成為一個比較均衡的評估方法。
因為TPR用到的TP和FN都是正樣本,FPR用到的FP和TN都是負樣本,所以說正樣本或負樣本發生了改變,TPR和FPR也不會相互影響,因此即使類別分布發生了改變,數據變得不平衡了,ROC曲線也不會產生大的變化。ROC曲線的優點,即具有魯棒性,在類別分布發生明顯改變的情況下依然能客觀地識別出較好的分類器。
3?如何處理樣本不平衡的問題?
在風控建模中出現樣本不平衡主要是壞樣本的數量太少,碰到這個問題不要急著試各種抽樣方法,先看一下壞用戶的定義是否過于嚴格,過于嚴格會導致壞樣本數量偏少,中間樣本偏多。壞用戶的定義一般基于滾動率分析的結果,不過實際業務場景復雜多樣,還是得根據情況而定。
確定好壞用戶定義是比較合理的之后,先嘗試能不能擴大數據集,比如一開始取得是三個月的用戶數據,試著將時間線延長來增加數據。因為機器學習是使用現在的數據在整個數據分布上進行估計,因此更多的數據往往能夠得到更多的分布信息,以及更好的分布估計。
對數據集進行抽樣,一種是進行欠采樣,通過減少大類的數據樣本來降低數據的不平衡,另一種是進行過采樣,通過增加小類數據的樣本來降低不平衡,實際工作中常用SMOTE方法來實現過采樣。
嘗試使用xgboost和lightgbm等對不平衡數據處理效果較好的模型。
嘗試從新的角度來理解問題,可以把那些小類樣本當做異常點,因此該分類問題轉化為異常檢測問題或變化趨勢檢測問題,這種方法筆者很少用到,就不詳細說明了。
4?什么是模型的欠擬合和過擬合?
欠擬合指的是模型沒有很好的捕捉到數據特征,不能很好的擬合數據。
過擬合指的是模型把數據學習的太徹底,以至于把噪聲數據學習進去了,這樣模型在預測未知數據時,就不能正確的分類,模型的泛化能力太差。
5?如何判斷模型是否存在過擬合或欠擬合?對應的解決方法有哪些?
判斷模型是否存在過擬合/欠擬合主要用學習曲線,學習曲線指的是通過畫出不同訓練集大小時訓練集和交叉驗證的準確率,可以看到模型在新數據上的表現,進而來判斷模型是否方差偏高(過擬合)或偏差過高(欠擬合)。當訓練集和測試集的誤差收斂但卻很高時,即為欠擬合,當訓練集和測試集的誤差之間有大的差距時,為過擬合。
解決欠擬合的方法:增加效果好的特征,添加多項式特征,減小正則化參數等。
解決過擬合的方法:使用更多的數據,選擇更加合適的模型,加入正則項等。
6?什么是正則化?什么是L1正則化和L2正則化?
正則化是在模型的loss function的基礎上,加上了一些正則化項或者稱為模型復雜度懲罰項,它會向學習算法略微做些修正,從而讓模型能更好地泛化。這樣反過來能提高模型在不可見數據上的性能。
L1正則化就是在loss function后邊所加正則項為L1范數,加上L1范數容易得到稀疏解,所以L1正則化會趨向于產生少量的特征。
L2正則化就是loss function后邊所加正則項為L2范數的平方,加上L2正則相比于L1正則來說,得到的解比較平滑(不是稀疏),所以L2正則化會使特征的解趨近于0,但不會為0。
7?正則化為什么可以防止過擬合?
最簡單的解釋是正則化對模型參數添加了先驗,在數據少的時候,先驗知識可以防止過擬合。舉個例子:拋一枚硬幣5次,得到的全是正面,則得出結論:正面朝上的概率為1,這類似于模型的過擬合,如果加上硬幣朝上的概率是0.5的先驗,結果就不會這么離譜,這就是正則。
8 ?L1和L2的區別以及分別服從什么分布
L1是拉普拉斯分布,L2是高斯分布。
L1范數:?為x向量各個元素絕對值之和;L2范數:?為x向量各個元素平方和的1/2次方。
L1范數可以使權值稀疏,方便特征提取;L2范數可以防止過擬合,提升模型的泛化能力。
L1和L2的差別,一個讓絕對值最小,一個讓平方最小,會有那么大的差別呢?看導數一個是1一個是w便知,?在靠進零附近, L1以勻速下降到零,?而L2則完全停下來了.?這說明L1是將不重要的特征盡快剔除, L2則是把特征貢獻盡量壓縮最小但不至于為零.?兩者一起作用,?就是把重要性在一個數量級的那些特征一起平等共事(簡言之,?不養閑人也不要超人)。
9?什么是交叉驗證?交叉驗證的目的是什么?有哪些優點?
交叉驗證概念:
交叉驗證,就是重復的使用數據,把得到的樣本數據進行切分,組合為不同的訓練集和測試集,用訓練集來訓練模型,用測試集來評估模型預測的好壞。在此基礎上可以得到多組不同的訓練集和測試集,某次訓練集中的某樣本在下次可能成為測試集中的樣本,即所謂"交叉"。
交叉驗證的目的:
評估給定算法在特定數據集上訓練后的泛化性能,比單次劃分訓練集和測試集的方法更加穩定,全面。
交叉驗證的優點:
如果只是對數據隨機劃分為訓練集和測試集,假如很幸運地將難以分類的樣本劃分進訓練集中,則在測試集會得出一個很高的分數,但如果不夠幸運地將難以分類的樣本劃分進測試集中,則會得到一個很低的分數。所以得出的結果隨機性太大,不夠具有代表性。而交叉驗證中每個樣本都會出現在訓練集和測試集中各一次,因此,模型需要對所有樣本的泛化能力都很好,才能使其最后交叉驗證得分,及其平均值都很高,這樣的結果更加穩定,全面,具有說服力。
對數據集多次劃分后,還可以通過每個樣本的得分比較,來反映模型對于訓練集選擇的敏感性信息。
對數據的使用更加高效,可以得到更為精確的模型。
10?交叉驗證常用的方法有哪些?
標準K折交叉驗證:K是自定義的數字,通常取5或10,如果設為5折,則會訓練5個模型,得到5個精度值。
分層K折交叉驗證:如果一個數據集經過標準K折劃分后,在測試集上只有一種類別,則無法給出分類器整體性能的信息,這種情況用標準K折是不合理的。而在分層K折交叉驗證中,每個折中的類別比例與整個數據集類別比例相同,這樣能對泛化性能做出更可靠的估計。
留一法交叉驗證:每次劃分時,把單個數據點作為測試集,如果數據量小,能得到更好的估計結果,數據量很大時則不適用。
打亂劃分交叉驗證:每次劃分數據時為訓練集取樣train_size個點,為測試集取樣test_size個點,將這一劃分劃分方法重復n_splits次。這種方法還允許每次迭代中使用部分數據,可通過設置train_size和test_size之和不為0來實現,用這種方法對數據進行二次采樣可能對大型數據上的試驗很用用。另外也有分層劃分的形式(?StratifiedShuffleSplit),為分類任務提供更可靠的結果。
分組交叉驗證:適用于數據中的分組高度相關時,以group數組作為參數,group數組表示數據中的分組,在創建訓練集和測試集的時候不應該將其分開,也不應該與類別標簽弄混。
總結
以上是生活随笔為你收集整理的数据集按类划分_大数据风控面试(五) 模型评估与优化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: centos7 yum安装maven_C
- 下一篇: 重庆加大治理侵害用户权益 App:多款存