《智能風控》第5章 不均衡學習

樣本不均衡

正樣本和負樣本的比例相差過大,這種情況在金融科技領域相當常見。需要一個分類器,既能夠充分學習到正樣本,同時也不會影響到負樣本的學習。

這里的方案包括:

  1. 代價敏感加權方案
  2. 插值過采樣方案
  3. 半監(jiān)督算法

代價敏感加權方案

要解決樣本不平衡的問題,很好的一個辦法就是「下探」?!赶绿健故侵冈诰芙^域當中隨機接收一部分樣本,損失一部分收益,積累一部分的負樣本,供后面模型的學習。

不過下探的缺點很明顯,風險越高,成本越高,會造成信用質量的惡化,不是每個平臺都愿意承擔這部分壞賬,并且下探的量應該是多少,這個沒有一個合適的參考值。

插值過采樣方案

在少數(shù)樣本中進行插值,人工合成新的負樣本,也就是「Synthetic Minority Oversampling Technique」,簡稱SMOTE方法。

半監(jiān)督學習方案

所謂半監(jiān)督學習,就是學習器不依賴外界交互,而是通過無標簽的樣本來提升學習性能。

半監(jiān)督學習的3點假設:

  1. 平滑假設:特征相似的樣本具有相同的標簽
  2. 聚類假設:同一個聚類下的樣本具有相同的標簽
  3. 流形假設:同一流形結構下的樣本具有相同的標簽

實踐結果比較好的半監(jiān)督學習模型:半監(jiān)督支持向量機和標簽傳播算法。

S3Vm半監(jiān)督支持向量機

半監(jiān)督支持向量機,S3VM(Semi-supervised supporting machine)的原理是,利用有標簽的樣本去訓練一個支持向量機,然后用這個支持向量機去預測未標記的樣本,給這部分未標記的樣本打上標簽,接下來利用這部分有標簽加上標記的無標簽樣本一起訓練一個新的向量機,如此重復直到收斂。

圖來自《智能風控》

如圖所示,+號代表有標簽的正樣本,-號代表有標簽的負樣本,綠色的圓圈代表沒有標簽的樣本,原本根據(jù)有標簽的樣本訓練出來的超平面就是藍色虛線所示,在加入無標簽的樣本以后,重新調(diào)整超平面,使得超平面通過數(shù)據(jù)比較稀疏的區(qū)域,調(diào)整后的超平面為紅色線所示。

1. TSVM(Transductive Support machine)

其中S3VM中比較經(jīng)典的模型就是TSVM,也就是直推式半監(jiān)督支持向量機。特點是,給樣本打標簽,然后結合有標簽的樣本和標記的無標簽樣本一起訓練,得到一個間隔最大化的最優(yōu)超平面。

具體做法是,TSVM會先根據(jù)有標簽的樣本訓練一個SVM,然后用SVM去給沒有標記的樣本打標簽。接下來分別計算每個樣本到分類超平面的距離:

H_i=wx_ib

接下來計算出松弛變量的大小,對于一組數(shù)據(jù)里面的任意兩個標簽相反的樣本的松弛變量之和大于2,則調(diào)轉它們的標簽,迭代重新訓練一個模型,直到最終收斂。

備注:

這里之所以有「任意兩個標簽相反的樣本的松弛變量之和大于2,則調(diào)轉它們的標簽」這一步,這是為了判斷出可能打錯標簽的樣本并予以修正。

算法過程:

圖示自己畫的

標簽傳播算法

LP(Label Propagation)

作用:負樣本衍生,作為一種社區(qū)發(fā)現(xiàn)算法用于識別團伙欺詐。

特點:

  1. 基于圖

原理

這里說明下lu分別代表的意義,l代表著有標簽的樣本數(shù)量,u代表著沒有標簽的樣本數(shù)量,一般情況下l<<u,也就是無標簽的樣本數(shù)要遠高于有標簽的樣本數(shù)。

標簽傳播算法是基于圖而生成的,圖上面的每個節(jié)點都是一個數(shù)據(jù)點,數(shù)據(jù)點與數(shù)據(jù)點之間通過線連接,稱為「關系」,在這里關系就是數(shù)據(jù)與數(shù)據(jù)的相似度,越相似,關系越強。邊上面有個關鍵值代表著關系的強弱,就是權重w_{ij}代表節(jié)點i與節(jié)點j之間的連線的權重。

w_{ij}的計算公式為:

w_{ij}=exp(-\dfrac{||x_i-x_j||^2}{\sigma})

w_{ij}的大小與兩個數(shù)據(jù)點之間的特征的距離有關。

標簽傳播算法的2個關鍵矩陣:

  1. (l+u)*(l+u)概率傳播矩陣T
  2. (l+u)*C標簽矩陣Y

我們定義一個概率傳播矩陣T,其中T_{ij}為標簽i傳播到標簽j的概率,計算公式如下:

T_{ij}=P(i\rightarrow j)=\dfrac{w_{ij}}{\sum_{k=1}^{l+u}w_{ik}}

概率傳播的示意圖

如上圖所示,查看傳播圖的其中一部分,我們可以看到,其中一個節(jié)點為i,另外跟它相連的一個節(jié)點為j,它們之間的權重為w_{ij},而i和它周圍其他相連的節(jié)點也是相同的求法,所有的權重之和作為分母,w_{ij}作為分子,可以計算出,節(jié)點i的標簽傳播到節(jié)點j的概率T_{ij},將這個值更新到概率傳播矩陣T當中的對應位置,如此迭代。

標簽矩陣

上面的值都是傳播的概率。

根據(jù)上面的概率矩陣,我們就可以計算出某一行,也就是某個樣本各個類別下的概率分布。

我們再定義一個標簽矩陣(l+u)*C標簽矩陣Y,C代表著類別數(shù),比如在下面那個圖當中,類別數(shù)為3。每個節(jié)點在每個類別下的概率等于該標注值乘以對應的權重相加得到,更新標簽矩陣Y。

標簽矩陣

算法描述

input:u個未標記數(shù)據(jù)和l個標記的數(shù)據(jù)及其標簽
output:u個未標記數(shù)據(jù)的標簽
第一步:初始化,利用權重公式來計算每條邊的權重w_{ij},得到數(shù)據(jù)間的相似度

第二步:根據(jù)得到的權重w_{ij}計算節(jié)點i傳播到j的傳播概率,更新到傳播概率矩陣T_{ij}

第三步:定義一個(l+u)*C的矩陣,對于未標注的數(shù)據(jù)里面的數(shù)是隨機產(chǎn)生的
第四步:每個節(jié)點根據(jù)傳播概率按照權重相加的方式更新到概率分布矩陣當中
第五步:對已標注的數(shù)據(jù)更新到初始值(也就是1或者0),重復第四步,直到收斂

算法實現(xiàn)

在實際操作中,如下圖所示,紅框中的兩個點分別代表著正樣本和負樣本,橘色的是未標記的樣本,通過概率傳播算法最終能夠把相鄰的數(shù)據(jù)點都打上標簽。

圖來自《智能風控》

總結

在這里總結了3種方法。

第一種是代價敏感算法,通過給不平衡的樣本賦予不同的權重,樣本數(shù)更少的則相應權重更大,使得模型在訓練的時候也會更加關注少量樣本的預測表現(xiàn);

第二種是「插值生成」算法, 本質上是利用了少量的負樣本的信息去合成一些不存在的負樣本,SMOTE對樣本和特征都有一定的要求,要先進行樣本和特征清洗,再進行過采樣。

第三種是「半監(jiān)督」方法,通過已有的負樣本去推測跟負樣本表現(xiàn)接近的其他樣本的標簽,從而實現(xiàn)擴充數(shù)據(jù)量的目標。泛化能力會更好,但也可能存在給樣本打錯標簽的可能性,精度不能保證。

基于實際場景,首先使用代價敏感加權的方法,然后嘗試兩種半監(jiān)督模型去衍生負樣本和正樣本。

在實際應用中,可以利用TSVM或者LP算法去給負樣本進行打標簽,增加負樣本的數(shù)量,然后再將所有的正樣本和負樣本放入到有監(jiān)督模型當中進行訓練。

參考

  1. 一起來讀西瓜書:第十三章 半監(jiān)督學習 - 簡書
  2. 標簽傳播算法(Label Propagation Algorithm)Python詩蕊的專欄-CSDN博客
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容