樣本權重對邏輯迴歸評分卡的影響探討
風控業務背景
在統計學習建模分析中,樣本非常重要,它是我們洞察世界的視窗。在建立邏輯迴歸評分卡時,我們也會考慮對樣本賦予不同的權重weight,希望模型學習更有側重點。
誠然,我們可以透過實際資料測試來檢驗賦權前後的差異,但我們更希望從理論上分析其合理性。畢竟理論可以指導實踐。本文嘗試探討樣本權重對邏輯迴歸評分卡的影響,以及從業務和技術角度分析樣本權重調整的操作方法。
目錄
Part 1。 樣本加權對WOE的影響
Part 2。 取樣對LR係數的影響
Part 3。 樣本準備與權重指標
Part 4。 常見工具包的樣本賦權
Part 5。 總結
致謝
版權宣告
參考資料
Part 1. 樣本加權對WOE的影響
在
《
WOE與IV指標的深入理解應用
》
一文中,我們介紹了WOE的概念和計算方法。在邏輯迴歸評分卡中,其具有重要意義。其公式定義如下:
現在,我們思考在計算WOE時,是否要考慮樣本權重呢?
如圖1所示的樣本,我們希望對某些樣本加強學習,因此對年齡在46歲以下的樣本賦予權重1。5,而對46歲以上的樣本賦予權重1。0,也就是加上權重列weight。此時再計算WOE值,我們發現數值發生變化。這是因為權重的改變,既影響了區域性bucket中的
,也影響了整體的
。
圖 1 - 樣本加權前後的Odds和WOE變化
我們有2種對樣本賦權後的模型訓練方案,如圖2所示。
方案1:WOE變換利用原訓練集,LR模型訓練時利用加權後的樣本。
方案2: WOE變換和LR模型訓練時,均使用加權後的樣本。
圖 2 - 樣本賦權後的兩種模型訓練方案
個人更傾向於第一種方案,原因在於:
WOE變換側重變數的可解釋性,引入樣本權重會引起不可解釋的困擾。
Part 2. 取樣對LR係數的影響
我們定義特徵向量
。記
,那麼邏輯迴歸的公式組成便是:
其中,第2行到第3行的變換是基於樸素貝葉斯假設,即
自變數 #FormatImgID_11# 之間相互獨立
。
是指總體(訓練集)的
,指
先驗資訊
。
是指自變數引起的
變化,我們稱為
後驗資訊
。
因此,隨著觀察資訊的不斷加入,對群體的好壞
判斷將越來越趨於客觀。
圖 3 - 邏輯迴歸原理的貝葉斯圖解
樣本權重調整直接影響先驗項,也就是截距。那對係數的影響呢?
接下來,我們以過取樣(Oversampling)和欠取樣(Undersampling)為例,分析取樣對LR係數的影響。如圖4所示,對於不平衡資料集,過取樣是指對正樣本簡單複製很多份;欠取樣是指對負樣本隨機抽樣。最終,正負樣本的比例將達到1:1平衡狀態。
圖 4 - 欠取樣(左)和過取樣(右)
我們同樣從貝葉斯角度進行解釋:
假設取樣處理後的訓練集為
。記
和
分別表示正負樣本數,那麼顯然:
由於
,因此對應
截距將發生變化
。
無論是過取樣,還是欠取樣,處理後的新樣本都和原樣本服從同樣的分佈,即滿足:
因此,
,即
係數不發生變化
。
實踐證明,按照做評分卡的方式,做WOE變換,然後跑LR,單變數下確實只有截距影響。而對於多變數,理想情況下,當各自變數相互獨立時,LR的係數是不變的,但實際自變數之間多少存在一定的相關性,所以還是會有一定的變化。
Part 3。 樣本準備與權重指標
風控建模的基本假設是
未來樣本和歷史樣本的分佈是一致
的。模型從歷史樣本中擬合
和
之間的關係,並根據未來樣本的
進行預測。因此,我們總是在思考,
如何選擇能代表未來樣本的訓練樣本。
如圖5所示,不同時間段、不同批次的樣本總是存在差異,即
服從不同的總體分佈
。因此,我們需要
從多個維度來衡量兩個樣本集之間的相似性。
從遷移學習的角度看,這是一個從源域(source domain)中學習模式,並應用到目標域(target domain)的過程。在這裡,源域是訓練集,目標域指測試集,或者未來樣本。
這就會涉及到一些難點:
假設測試集OOT與未來總體分佈樣本基本一致,但未來樣本是不可知且總是在發生變化。
面向測試集效果作為評估指標,會出現在測試集上過擬合現象。
圖 5 - 訓練集樣本與未來應用樣本
那麼,建模中是否可以考慮建立一個權重指標體系,即綜合多方面因素進行樣本賦權?我們採取2種思路來分析如何開展。
業務角度
:
按
時間因素
,對近期樣本提高權重,較遠樣本降低權重。這是考慮近期樣本與未來樣本之間的“相似度”更高,希望模型學到更多近期樣本的模式。
按
貸款型別
,不同額度、利率、期限的樣本賦予不同權重,這需要結合業務未來的發展方向。例如,未來業務模式希望是小額、短期、低利率,那就提高這批樣本的權重。
按
樣本分群
,不同群體賦予不同權重。例如,按流量獲客渠道,如果未來流量渠道主要來自平臺A,那麼就提高這批樣本權重。
結合以上各維度,可得到總體取樣權重的一種融合方式為:
這種業務角度的方案雖然解釋性強,但實際拍定多大的權重顯得非常主觀,實踐中往往需要不斷嘗試,缺少一些理論指導。
技術角度
:
過取樣、欠取樣等,從樣本組成上調整正負不平衡。
代價敏感學習,在損失函式對好壞樣本加上不同的代價。比如,壞樣本少,分錯代價更高。
借鑑Adaboost的做法,對誤判樣本在下一輪訓練時提高權重。
在機器學習中,有一個常見的現象——
Covariate Shift
,是指當訓練集的樣本分佈和測試集的樣本分佈不一致的時候,訓練得到的模型無法具有很好的泛化 (Generalization) 能力。
其中一種做法,既然是希望讓訓練集儘可能像測試集,那就讓模型幫助我們做這件事。如圖6所示,將測試集標記為1,訓練集標記為0,訓練一個LR模型,在訓練集上預測,機率越高,說明這個樣例屬於測試集的可能性越大。以此達到樣本權重調整的目的。
圖 6 - 藉助分類模型的樣本權重調整
Part 4. 常見工具包的樣本賦權
現有Logistic Regression模組主要來自sklearn和scipy兩個包。很不幸,scipy包並不支援直接賦予權重列。這是為什麼呢?有統計學家認為,
尊重真實樣本分佈,人為主觀引入樣本權重,反而可能得出錯誤的結論。
圖 7 - 不支援樣本賦權的觀點(摘自網路)
因此,我們只能選擇用scikit-learn。樣本權重是如何體現在模型訓練過程呢?檢視原始碼後,發現目前主要是體現在
損失函式
中,即
代價敏感學習。
# Logistic loss is the negative of the log of the logistic function。
# 新增L2正則項的邏輯迴歸對數損失函式
out
=
-
np
。
sum
(
sample_weight
*
log_logistic
(
yz
))
+
。
5
*
alpha
*
np
。
dot
(
w
,
w
)
圖 8 - 樣本權重對決策分割面的影響
以下是scikit-learn包中的邏輯迴歸引數列表說明,可以發現調節樣本權重的方法有兩種:
在class_weight引數中使用balanced
在呼叫fit函式時,透過sample_weight調節每個樣本權重。
如果同時設定上述2個引數,那麼樣本的真正權重是class_weight * sample_weight。
那麼,在評估模型的指標時,是否需要考慮抽樣權重,即還原真實場景下的模型評價指標?筆者認為,最終評估還是需要還原到真實場景下。例如,訓練集正負比例被調節為1:1,但這並不是真實的
,在預測時將會偏高。因此,仍需要進行模型校準。
Part 5. 總結
本文系統整理了樣本權重的一些觀點,但目前仍然沒有統一的答案。據筆者所知,目前在實踐中還是採取以下幾種方案:
尊重原樣本分佈,不予處理,LR模型訓練後即為真實機率估計。
結合權重指標綜合確定權重,訓練完畢模型後再進行校準,還原至真實機率估計。
值得指出的是,大環境總是在發生變化,造成樣本分佈總在偏移。因此,儘可能增強模型的魯棒性,以及策略使用時根據實際情況靈活調整,兩者相輔相成,可能是最佳的使用方法。
歡迎大家一起討論業界的一些做法。
致謝
所有參考資料中的各位作者,感謝給我的啟發。文中仍有理解不到位之處,在此拋磚引玉。
版權宣告
歡迎轉載分享
,
請在文章中註明作者和原文連結,感謝您對知識的尊重和對本文的肯定。
原文作者:求是汪在路上(知乎ID)
原文連結:
https://
zhuanlan。zhihu。com/p/11
0982479/
⚠️著作權歸作者所有。
商業轉載請聯絡作者獲得授權,非商業轉載請註明出處,侵權轉載將追究相關責任
。
參考資料
關於作者
:
在某網際網路金融公司從事風控建模、反欺詐、資料探勘等方面工作,目前致力於將實踐經驗固化分享,量化成長軌跡。歡迎交流