您當前的位置:首頁 > 遊戲

PU Learning在風控中的應用(理論篇)

作者:由 求是汪在路上 發表于 遊戲時間:2020-01-04

風控業務背景

在實際分類場景中,我們經常會遇到類似這樣的問題:

只有已標記的正樣本,以及未標記的樣本

。比如金融風控場景,只有部分使用者被標記為欺詐使用者,剩下的大量使用者未被標記。雖然這其中大多數信用良好,但仍有少量可能為欺詐使用者。

為了方便操作,我們可以將未標記的樣本都作為負樣本進行訓練,但存在幾個缺陷:

正負樣本極度不平衡,負樣本數量遠遠超過正樣本,效果很差。

某些關鍵樣本會干擾分類器的最優分隔面的選擇,尤其是SVM。

如何辨別未標記樣本中的正負樣本,提升模型準確度,就成為一個值得思考的問題。PU Learning就是解決這種場景的一種學習方法。

本文嘗試回答以下幾個問題:

How can we formalize the problem of learning from PU data?

What assumptions are typically made about PU data in order to facilitate

the design of learning algorithms?

Can we estimate the class prior from PU data and why is this useful?

How can we learn a model from PU data?

How can we evaluate models in a PU setting?

When and why does PU data arise in real-world applications?

How does PU learning relate to other areas of machine learning?

目錄

Part 1。 PU Learning的基本概念

Part 2。 PU Learning的基本假設

Part 3。 PU Learning的評估指標

Part 4。 兩階段技術(Two-step PU Learning)

Part 5。 有偏學習(Biased Learning)

Part 6。 融入先驗類別(Incorporation of the Class Prior)

Part 7。 先驗類別的估計方法

Part 8。 Active Learning與PU Learning的對比

Part 9。 總結

致謝

版權宣告

參考資料

數學符號含義速查

x

:某樣例的特徵向量,

x \in \bm{x}

y

:某樣例的標籤變數,

y \in \bm{y} = \{0,1\}

(\bm{x},\bm{y})

: 某樣本二元組

s

:某樣例是否被標註的指示變數,

s \in \bm{s} = \{0,1\}

\alpha

:先驗類別(Class Prior),

\alpha = Pr(y=1)

,指正類別先驗比例

c

:標籤頻率(Label Frequency),

c = Pr(s=1|y = 1)

,指L集合佔總體P集的比例

e

: 傾向評分函式(Propensity Score),

e(x)=Pr(s=1|y=1, x)

f(x)

: 總體樣本的機率密度分佈函式,

f(x) = Pr(x|y\in \{0,1\})

f_{+}(x)

:正樣本的機率密度分佈函式,

f_{+}(x) = Pr(x|y=1)

f_{-}(x)

: 負樣本的機率密度分佈函式,

f_{-}(x) = Pr(x|y=0)

f_l(x)

: 有標籤(labeled)樣本的機率密度分佈函式,

f_l(x) = Pr(x|s=1) \subset f_+(x)

f_u(x)

: 無標籤(unlabeled)樣本的機率密度分佈函式,

f_u(x) = Pr(x|s=0)

\hat \theta

:對引數

\theta

的估計值

P

: 正樣本集,Positive,已標註的正樣本

N

: 負樣本集,Negative,實際未知

L

: 有標籤樣本集,Labeled,只有正樣本

U

: 無標籤樣本集,Unlabeled,包括未知的正負樣本

PU

: 正樣本和無標籤樣本組成的集合

RN

: 可靠的負樣本

Part 1. PU Learning的基本概念

在傳統二分類問題中,訓練集中

所有樣本都有明確的0-1標籤

,即正樣本(

y = 1

)和負樣本(

y = 0

)。圖1是一個二分類問題的資料集示例。同時,這些樣本滿足獨立同分布,即:

\bm{x}∼ f(x) \\  \Leftrightarrow \bm{x} ∼ αf_{+}(x) + (1 − α)f_{−}(x)  \tag{1}

其中,

\alpha = Pr(y=1)

是正類別先驗。由於我們並不知道總體分佈中正樣本的真實比例,

\alpha

通常根據經驗給出。例如,在信貸反欺詐中,如果欺詐比例按歷史經驗大概是

0.0001

,那麼

\alpha = 0.0001

PU Learning在風控中的應用(理論篇)

圖 1 - 傳統二分類中有標籤資料集

PU Learning的目標與傳統二分類問題一致,都是

為了訓練一個分類器用以區分正負樣本

。不同點在於:

此時只有少數已標註的正樣本,並沒有負樣本。

圖2是一個典型的PU資料示例。

PU Learning在風控中的應用(理論篇)

圖 2 - PU Learning中正和無標籤資料集

我們常將PU資料定義為三元組

(x, y, s)

,其中

x

為特徵向量,

y

為類別標籤,

s

表示是否被標註。在PU問題中,如果某個樣例被選中標註(

s = 1

),那麼

Pr(y=1|s=1) = 1

,屬於P集合;否則,該樣本標籤未知,屬於U集合。

你可能會疑惑:我們在標註一個樣例時,標籤難道不是非0即1?如果

Pr(y=1|s=1) = 1

,那麼

Pr(y=0|s=1) = 0

。這顯然不符合常理,我們如何能保證都是1?

事實上,這是因為:即使是領域專家,在很多案例中也難以保證判斷的準確率。根據反證法的思想,專家對於判定為黑(正)的往往比較有信心,因為通常有證據可循,只要命中硬規則即可。然而要判定為白(負),則需要排除所有不可能,這在事實上是難以真正做到的,因為我們收集到的資訊總是有限的。

為了維護一個充分可靠的P集合,我們要求專家在進行標註時,僅把具有充分信心的樣本標註為1,保證P集合的正確性。而對於專家標註的0無法完全信任,因此會選擇將標為0的樣本重新放入U集合中,假裝沒有標註過。整個標註過程如圖3所示。

PU Learning在風控中的應用(理論篇)

圖 3 - PU Learning樣本標註流程

因此,PU問題的基本設定就是

L \Leftrightarrow P

。只要一個樣例被標註,那麼其就是正樣本。我們可以用條件機率公式來表達:

Pr(y=1|s=1)  =\frac{Pr(y=1,s=1)}{Pr(s=1)} =\frac{Pr(y=1)}{Pr(s=1)}   = 1 \tag{2}

在瞭解樣本標註流程後,我們又會遇到一個問題:如果從U集合中

完全隨機選擇

樣例進行標註,發現不是正樣本就放回,那豈不是效率很低?

因此,我們需要採取某種

打標機制(Labeling Mechanism)

從U中選擇樣本。同時,最理想的情況是每次都是從

U集合中的隱式的“P”集合

中選擇,再經專家標註驗證後,加入

顯式的P集合

中。那麼,我們就可以節省很多成本,P集合也能得到快速擴充!

在信貸風控中,我們會利用信用評分卡給客戶打分,按信用分排序後,就可以進行拒絕或放貸。同樣地,我們也需要定義一個

傾向評分模型(Propensity Score)

,用以預測U集合中樣本被選中的可能性(傾向)。

經過定性分析後,我們思考該如何構建模型?

目標分析

U = P \cup N, P \cap N = \phi

。U集合可以分解為隱式的“P”和“N”兩個集合,只是我們沒有標註前還不知道它們的真實標籤

y

,因此

y

是隱變數。目標變數就是樣本是否被選中,即

\bm{s} \in \{0, 1\}

樣本特徵

:根據樣本的特徵屬性

x

,是否可以構建一個類別預測模型(如邏輯迴歸)?

PU Learning在風控中的應用(理論篇)

圖 4 - 真實P集合(橙色) 和 已標註的P集合(黃色)

理解上述思想後,我們把傾向評分函式(模型)定義為:

e(x) = Pr(s=1|y=1, x) \tag{3}

其中,

y = 1

這個條件實際並不知道,是一個隱變數。

機器學習離不開樣本分析。事實上,我們標註的有標籤樣本

f_l(x)

只是真實正樣本

f_+(x)

中的很小一部分,即

有偏分佈

,如圖4所示。它們之間的關係是:

\begin{eqnarray*} && f_l(x) = Pr(x|s=1) \\ && = Pr(x|s=1,y=1) {\space} {\space} {\space}  \# {\space}PU {\space}  definition\\  && = \frac{Pr(s=1|x,y=1)Pr(x|y=1)}{Pr(s=1|y=1)}  {\space} {\space} {\space}  \# {\space} Bayes  {\space}Rule \\ && = \frac{Pr(s=1|x,y=1)}{Pr(s=1|y=1)} Pr(x|y=1)  \\ && = \frac{e(x)}{c}f_{+}(x) \\ \end{eqnarray*}  \tag{4}

其中,

c = Pr(s=1|y = 1)

表示L集合佔總體真實正樣本集的比例。此時,你又會疑惑:我們並不知道總體真實正樣本集,只有L集合,那如何計算佔比? 這點在後面會介紹。

根據P和U集合是否來自同一個資料集,我們可以分為兩種場景:

場景

\# s1

:同一訓練集(Single Training Set),即P集合和U集合來自於

同一

資料集。

場景

\# s2

:多個數據源(Case-Control),即P集合和U集合來自於不同資料集。

一般情況下,我們都認為是場景

\# s1

,或是為了簡化問題。

對於場景

\# s1

,所有樣本均服從同一分佈

f(x)

,可以將這種關係表示為式

(5)

\bm{x} \sim f(x) \\  {\space}{\space} \sim \alpha f_{+}(x) + (1- \alpha) f_{-}(x) \\ {\space}{\space} \sim \alpha c f_{l}(x) + (1- \alpha c) f_{u}(x)  \tag{5}

對於場景

\# s2

,未選中的無標籤樣本服從分佈

 f_u(x)

,通常假設U集合樣本也服從總體分佈。可以將這種關係表示為式

(6)

\begin{eqnarray*}  && \bm{x}|\bm{s} = 0 ∼ f_u(x) \\ && ∼ f(x) \\  && ∼ αf_{+}(x) + (1 − α)f_{−}(x)  \end{eqnarray*}   \tag{6}

從上文我們知道,類別先驗

\alpha

與標籤頻率

c

緊密相關。給定一個PU資料集,只要知道其中一個,就能計算另一個。現在,我們透過推導,給出兩者的轉換公式。

c = Pr(s = 1|y = 1) \\  = \frac{Pr(s=1,y=1)}{ Pr(y = 1)}  = \frac{Pr(s = 1)}{Pr(y = 1)} \\  \# \space by \space PU \space definition \tag{7}

其中,

Pr(s = 1) = \frac{\# L}{\# L + \# U}

,即有標籤樣本的佔比。而

Pr(y = 1)

與類別先驗

\alpha

緊密相關,我們結合兩個場景來分析。

在場景

\# s1

中,

Pr(y = 1) = \alpha

在場景

\# s2

中,

α = Pr(y = 1|s = 0)

。我們來推導

Pr(y = 1)

的表示式:

\begin{eqnarray*}  && Pr(y = 1) = Pr(y = 1|s = 0) Pr(s = 0) + Pr(y = 1|s = 1) Pr(s = 1) \\   && = α * Pr(s = 0) + 1* Pr(s = 1) \\  && = α  Pr(s = 0) + Pr(s = 1) \\  && = α  (1 - Pr(s = 1)) + Pr(s = 1)  \end{eqnarray*}  \tag{8}

其中,第一個等號是全機率公式;第二個是PU Learning的基本設定,即

Pr(y = 1|s = 1) = 1

結合公式

(7)

(8)

,我們可以得出類別先驗

\alpha

與標籤頻率

c

的關係為:

 \left\{ \begin{aligned}  c = \frac{Pr(s = 1)}{α} \space \space \# s1 \\  c = \frac{Pr(s = 1)}{α(1 − Pr(s = 1)) + Pr(s = 1)} \space \space \# s2 \\  α = \frac{1 − c}{c} \frac{Pr(s = 1)}{1−Pr(s=1)} \space \space \# s2  \end{aligned} \right. \tag{9}

Part 2. PU Learning的基本假設

至此,你已經理解PU Learning的問題設定:一個是P集合,另一個是U集合。有標籤和正標籤是等價的。我們發現,只有兩種可能性可以解釋一個樣例為什麼沒有標籤:

是負樣本

。按PU Learning的定義,我們對於專家標註的0無法完全信任,因此會選擇將標為0的樣本重新放入U集合中,假裝沒有標註過。

是正樣本

。只是沒有被打標機制所選中,所以無法觀察到其表現。

因此,為了從PU資料中學習模型,我們從以下2個維度去設定一些假設:

打標機制(Label Mechanism)

類別分佈(Class Distributions)

2。1 打標機制(Label Mechanism)

本節主要介紹構建選擇模型時的一些假設。

1。 完全隨機選擇(Selected Completely At Random,SCAR):

2。 隨機選擇(Selected At Random,SAR):

3。 機率差距(Probabilistic Gap):

假設1:完全隨機選擇(Selected Completely At Random,SCAR)

Labeled examples are selected

completely at random

independent from their attributes

, from the

positive distribution

有標籤樣本完全是從正樣本分佈中隨機選擇的,且與本身的特徵屬性

無關

如圖5所示,從x和y兩個維度觀察,x軸和y軸都是無偏均勻取樣。

PU Learning在風控中的應用(理論篇)

圖 5 - 完全隨機選擇(SCAR)-PU資料

此時,傾向評分函式是常數,也就是說在所有樣本上一視同仁,失去了排序性。我們可以定義為:

e(x) = Pr(s = 1|x, y = 1) = Pr(s = 1|y = 1) = c \tag{10}

有標籤樣本相當於全部從正樣本分佈中隨機獲取,且獨立同分布。也就是:

f_l(x) = f_{+}(x) \tag{11}

根據式

(10)

我們可以得到:

Pr(s = 1|y = 1) = c \\ \Rightarrow \frac{Pr(s = 1|x)}{Pr(y = 1|x)} = c \\ \Rightarrow Pr(s = 1|x) = c Pr(y = 1|x) \tag{12}

為什麼要做式

(12)

這步轉換呢?接下來,我們展示這一公式的魅力。

如果我們定義:

傳統分類器

:即

Pr(y = 1|x)

,以“

是否有正負

y \in \{0, 1\}

”作為目標變數。此時所有訓練樣本都必須有明確的0-1標籤。這在PU問題中無法直接構建。

非傳統分類器

:即

Pr(s = 1|x)

,以“

是否被標註

s \in \{0, 1\}

”作為目標變數。實際上,這是把無標籤樣本U當作是負樣本。這在PU問題中可以直接構建。

我們發現:

這個公式透過

c

搭建起了傳統分類器與非傳統分類器之間的橋樑。

因此,該非傳統分類器便具有了以下特點:

與傳統分類器具有相同的排序性(Ranking Order):

Pr(y = 1|x_1) > Pr(y = 1|x_2) \\ \Leftrightarrow Pr(s = 1|x_1) > Pr(s = 1|x_2) \tag{13}

2。 讓傳統分類器達到某個目標的召回率,等價於非傳統分類器達到這個目標。

3。 給定類別先驗

\alpha

(或標籤頻率

c

)的條件下,非傳統分類器能轉化為傳統分類器,也就是:

Pr(y = 1|x) = \frac{Pr(s = 1|x)}{c} \tag{14}

假設2:隨機選擇(Selected At Random,SAR)

The probability for selecting positive examples to be labeled

depends on its attribute values

有標籤樣本是從正樣本分佈中隨機選擇的,但與本身的特徵屬性

有關

如圖6和圖7所示,我們從x和y兩個維度觀察,雖然y軸上是均勻取樣,但x軸上並不是,說明是有偏取樣。造成這個現象的主要原因是——我們

根據樣本屬性進行篩選

PU Learning在風控中的應用(理論篇)

圖 6 - 隨機選擇(SAR) 和機率差距(PG)-PU資料

PU Learning在風控中的應用(理論篇)

圖 7 - 隨機選擇(SAR) -PU資料

此時,傾向評分函式可定義為:

e(x) = Pr(s = 1|x,y = 1)  \tag{15}

假設3:機率差距(Probabilistic Gap,PG)

Labeled examples are a biased sample from the positive distribution, where examples

with a smaller probabilistic gap ∆Pr(x) are less likely to be labeled

正負預測機率差距越大,被選中打標的機率也就越大。

最直接的想法,我們構建一個傳統分類器,預測樣本為正的機率

Pr(y = 1|x)

和負的機率

Pr(y = 0|x)

。兩者越接近,代表模型對正負的區分界限越模糊。因此,我們定義機率差距

\Delta Pr(x)

如下所示:

\Delta Pr(x) = Pr(y = 1|x) − Pr(y = 0|x) \tag{16}

如果

\Delta Pr(x)

越高,其被選中的可能性也應該越小。因此,傾向評分函式是機率差距

\Delta Pr(x)

的非負、遞減函式,可定義為:

e(x) = f (\Delta Pr(x)) = f (Pr(y = 1|x) − Pr(y = 0|x)), \frac{df(t)}{dt} < 0 \tag{17}

但在PU問題中,我們無法直接構建一個傳統分類器,只能得到一個非傳統分類器。因此,我們只能利用非傳統分類器來估計

\Delta Pr(x)

\Delta  \hat Pr(x) = Pr(s = 1|x) − Pr(s = 0|x) \tag{18}

同時,估計值

 \Delta \hat Pr(x)

和真實值

\Delta Pr(x)

滿足式

(19)

,前者是後者的充分條件。

 \left\{ \begin{aligned}   \Delta \hat Pr(x) < 0 ⇒ \Delta Pr(x) < 0 \\  \Delta \hat Pr(x_1) > \Delta \hat Pr(x_2) ⇒ \Delta Pr(x_1) > \Delta Pr(x_2) \end{aligned} \right.  \tag{19}

2。2 資料假設(Data Assumptions)

本節主要對樣本屬性、標籤等方面提出假設。

4。 負向性(Negativity):假設所有無標籤樣本都屬於負類。

5。 分隔性(Separability):假設正負樣本自然存在間隔。

6。 平滑性(Smoothness):假設相似的樣本具有相同的標籤。

假設4:負向性(Negativity)

The unlabeled examples all belong to the negative class。

假設U集合所有樣本都屬於負類。

儘管該假設不符合常理,但在實踐中經常採用。主要原因在於:

我們已有P集合,只需要再有N集合,我們就可以直接歸於成熟的二分類問題來解決。

作為EM演算法中初始化的第一步,把U集合等同於N集合,然後不斷迭代修正,最終收斂到一個穩態。

假設5:可分性(Separability)

The two classes of interest are naturally separated

始終存在一個分類器,能把正負兩類然完全分開。

該假設主要是為了保證正負樣本可分。在假設空間中,存在一個分界閾值,高於閾值預測為正樣本,反之為負樣本。

 \left\{ \begin{aligned}  f(x_i) \geq \tau, y_i =1 \\  f(x_i)< \tau, y_i = 0 \\ \end{aligned} \right.   \tag{20}

PU Learning在風控中的應用(理論篇)

圖 8 - 正負樣本完美分隔

假設6:平滑性(Smoothness)

If two instances x1 and x2 are similar, then the probabilities Pr(y = 1|x1) and Pr(y = 1|x2) will also be similar。

如果兩個樣本相似,那麼預測機率評分也是基本一致的,不會存在躍變的情況。

該假設能保證可靠負樣本是那些遠離P集合中的所有樣本。為此,很多人針對相似度(也就是距離)的衡量開展了各種研究。

Part 3. PU Learning的評估指標

傳統二分類問題具有明確的0-1標籤,很自然能計算準確率、召回率、F1值等標準評估指標。但在PU Learning問題中,該如何計算呢?

F_1(\hat y)= \frac{2pr}{p + r}  \tag{21}

準確率

p = Pr(y = 1|\hat y = 1)

表示預測為1的樣本

Pr(\hat y = 1|x)

中,實際標籤為1的樣本

Pr(y = 1|x)

的佔比。

召回率

r = Pr(\hat y = 1|y = 1)

表示實際標籤為1的樣本

Pr(y = 1|x)

裡,預測為1的樣本

Pr(\hat y = 1|x)

的佔比。

在SCAR假設下,我們可以計算出召回率

r = Pr(\hat y = 1|s = 1)

。但由於缺少負樣本的可靠標籤,無法計算準確率,從而導致F1值無法計算。

我們注意到,在準確率和召回率都高的情況下,F1值也會相應高。因此,定義以下指標:

\frac{pr}{Pr(y = 1)} = \frac{pr^2}{rPr(y = 1)} \\ = \frac{Pr(y = 1|\hat y = 1)r^2} {Pr(\hat y = 1, y = 1)}  \\ = \frac{r^2}{Pr(\hat y = 1)} \\ = \frac{[Pr(\hat y = 1|s = 1)]^2}{Pr(\hat y = 1)}  \tag{22}

此時,我們就可以根據該指標評估PU問題的模型效果。

接下來,我們正式開始介紹PU Learning的基礎方法(框架),通常可分為三類:

第一類是兩階段技術(Two-step PU Learning):先在未標記資料U中識別出一些可靠的負樣本,然後在正樣本P和這些可靠的負樣本上進行監督學習。這是最常用的一種✅

第二類是有偏學習(Biased PU Learning):簡單地把未標記樣本U作為噪聲很大的負樣本來處理。

第三類是融入先驗類別(Incorporation of the Class Prior):嘗試給正樣本P和未標記樣本U賦予權重,並給出樣本屬於正標籤的條件機率估計。

Part 4. 兩階段技術(Two-step PU Learning)

all the positive examples are similar to the labeled examples and that the negative examples are very different from them。

基於可分性和平滑性假設,所有正樣本都與有標籤樣本相似,而與負樣本不同。

為了繞過缺乏負標註的問題,two-stage策略首先挖掘出一些可靠的負例,再將問題轉化為一個傳統的監督和半監督學習問題。

整體流程一般可分解為以下3個步驟:

step 1:

從U集合中識別出可靠負樣本(Reliable Negative,RN)。

step 2

: 利用P集合和RN集合組成訓練集,訓練一個傳統的二分類模型

step 3

: 根據某種策略,從迭代生成的多個模型中選擇最優的模型。

在這個框架下,每一步又可以靈活選擇各種方法。接下來,我們來詳細解釋每一步的細節。首先,可靠負樣本的定義是什麼?

基於平滑性假設,樣本屬性相似時,其標籤也基本相同。換言之,可靠負樣本就是那些與正樣本相似度很低的樣本。那麼,問題的關鍵就是定義相似度,或者說距離(distance)。

4.1 識別可靠負樣本

1)間諜技術(The Spy Technique)

2)1-DNF技術

1)間諜技術(The Spy Technique)

step 1

:從P中隨機選擇一些正樣本S,放入U中作為間諜樣本(spy)。此時樣本集變為P-S和U+S。其中,從P中劃分子集S的數量比例一般為15%。

step 2

:使用P-S作為正樣本,U+S作為負樣本,利用迭代的EM演算法進行分類。初始化時,我們把所有無標籤樣本當作負類(

y = 0

),訓練一個分類器,對所有樣本預測機率

Pr(y=1)

step 3

:以spy樣本分佈的最小值作為閾值,U中所有低於這個閾值的樣本認為是RN。

注意:spy樣本需要有足夠量,否則結果可信度低。

PU Learning在風控中的應用(理論篇)

圖 9 - 可靠負樣本的選擇演算法

2)1-DNF技術

step 1

:獲取PU資料中的所有特徵,構成特徵集合F。

step 2

:對於每個特徵,如果其在P集合中的出現頻次大於N集合,記該特徵為正特徵(Positive Feature,PF),所有滿足該條件的特徵組成一個PF集合。

step 3

:對U中的每個樣本,如果其不包含PF集合中的任意一個特徵,則將該樣本加入RN。

4.2 訓練分類器

在識別出可靠負樣本RN後,我們來訓練一個分類器,操作步驟描述如下:

# 樣本準備:P 和 RN 組成訓練集X_train; P給定標籤1,RN給定標籤0,組成訓練集標籤y_train

# 用 X_train 和 y_train 訓練邏輯迴歸模型 model

model

fit

X_train

y_train

# 用 model 對 Q 進行預測(分類)得到結果 prob

Q

=

U

-

RN

# 無標籤樣本集U中剔除RN

prob

=

model

predict

Q

# 找出 Q 中被判定為負的資料組成集合 W

predict_label

=

np

where

prob

<

0。5

0

1

T

0

negative_index

=

np

where

predict_label

==

0

W

=

Q

negative_index

# 將 W 和 RN 合併作為新的 RN,同時將 W 從 Q 中排除

RN

=

np

concatenate

((

RN

W

))

# RN = RN + W

Q

=

np

delete

Q

negative_index

axis

=

0

# Q = Q - W

# 用新的 RN 和 P 組成新的 X_train,對應生成新的 y_train

# 繼續訓練模型,擴充 RN,直至 W 為空集,迴圈結束。

# 其中每次迴圈都會得到一個分類器 model ,加入模型集 model_list 中

4.3 最優模型選擇

從每次迴圈生成的分類器中,制定選擇策略,選出一個最佳分類器。

1)預測誤差提升差

\Delta E

我們訓練的目標肯定是讓模型的預測誤差最小,因此,當

\Delta E < 0

時,說明當前一輪

i

比前一輪

i-1

模型的誤差開始升高。我們就選擇

i-1

輪訓練的模型。

PU Learning在風控中的應用(理論篇)

圖 10 - 模型迭代和選擇過程

\Delta E = Pr(\hat {y_i} \ne y) − Pr(\hat {y_{i-1}} \ne y) \tag{23}

2)F1值提升比

\Delta F

\Delta F > 1

,說明模型效能在提升。因此,我們選擇最後一次提升的模型。

\Delta F = \frac{F_i}{ F_{i−1}} \tag{24}

3)投票(Vote)

對每輪迭代生成的模型model,進行加權組合成最終模型。

4)最後(Last)

直接選用最後一次迭代生成的分類器。

5) 假陰率(FNR > 5 %)

當超過已標註正樣本的5%被錯誤預測為負類時,迭代停止。

我們用Python虛擬碼組織上述流程:

# 直接選用最後一次迴圈得到的分類器:

final_model

=

model_list

-

1

# 利用規則選出一個最佳分類器:

# 用最後一次迴圈得到的分類器 S-last 對 P 進行分類。

# 若分類結果中有超過8%條資料被判定為負,則選用第一次迴圈的分類器S-1。

# 否則繼續選用 S-last 作為最終分類器

neg_predict

=

model_list

-

1

predict

P

neg_predict

=

np

where

neg_predict

<

0。5

0

1

T

0

if

list

neg_predict

count

0

/

neg_predict

shape

0

>

0。08

final_model

=

model_list

0

else

final_model

=

model_list

-

1

# 對測試資料集進行分類

result

=

final_model

predict

X_test

Part 5. 有偏學習(Biased PU Learning)

有偏PU Learning的思想是,

把無標籤樣本當作帶有噪聲的負樣本

。那麼,該如何把噪聲考慮進PU問題模型學習過程?可以採取以下方式:

噪聲引起誤分類,因此對錯誤分類的正樣本置於更高的懲罰。

基於適合PU問題的評估指標來調整模型引數。

Part 6. 融入類別

先驗

(Incorporation of the Class Prior)

在完全隨機選擇(SCAR)假設下,我們有以下幾種方案:

Postprocessing:訓練一個非傳統分類器,再考慮修正輸出機率。

Preprocessing:基於類先驗來改變資料集,再訓練模型。

在前文中,我們知道類別先驗

\alpha

與標籤頻率

c

的關係為:

c = \frac{Pr(s = 1)}{α} \tag{25}

6.1 後處理(Postprocessing)

思想:訓練一個非傳統分類器,再考慮修正輸出機率。

在完全隨機選擇(SCAR)假設中,我們有一個非常重要的公式:

Pr(s = 1|x) = c Pr(y = 1|x) \\ \Rightarrow Pr(y = 1|x) = \frac{1}{c} Pr(s = 1|x)   \tag{26}

上式中,

Pr(s = 1|x)

表示非傳統分類器。

Pr(y = 1|x)

表示傳統分類器。它們具有相同的排序性,因此:如果傳統分類器的決策閾值為

\tau

,非傳統分類器的閾值

\tau ^ {PU} = c \tau

。通常

\tau = 0.5

,所以

Pr(s = 1) > 0.5c

6.2 預處理(Preprocessing)

思想:從PU資料中,基於類先驗創造一個傳統二分類模型學習的訓練集。

1)Rebalancing Methods

2) Incorporation of the Label Probabilities

1)Rebalancing Methods

由式

(12)

可知,如果一個傳統分類器的閾值為

\tau

,那麼非傳統分類器的閾值

\tau ^{PU} = c \tau

。為此,樣本資料需要調整權重:

 \left\{ \begin{aligned}  w^+ =\tau (1−\tau ^ {PU}) = \tau (1 − c\tau) = (1 − c\tau) \\ w^− =(1−\tau)\tau ^ {PU} = (1 − \tau )c\tau = (1 − \tau)c \\ \end{aligned} \right.  \tag{27}

其中,

w^+

   w^-

分別代表正負樣本的權重。

\tau

為傳統分類器的決策閾值。當

\tau = 0.5

時,上式簡化為:

 \left\{ \begin{aligned}  w^+ = 1- c/2 \\ w^− =c/2 \\ \end{aligned} \right.  \tag{28}

2) Incorporation of the Label Probabilities

以下是具體操作步驟:

step 1

:訓練一個非傳統分類器

Pr(s=1|x)

step 2

: 給樣本賦予不同的權重,如下:

\left\{ \begin{aligned}   Pr(y=1|s=1,x) = 1 \\  Pr(y=1|s=0,x)= \frac{1− c}{c} \frac{Pr(s=1|x)}{1−Pr(s=1|x)}  \end{aligned} \right.   \tag{29}

Part 7. 類別

先驗

的估計方法

從上述過程中,我們發現如果知道類別先驗

\alpha

,那就能大大簡化PU Learning問題。在文章開頭,我們提到一般透過經驗確定。那麼,有沒有合理的估計方法呢?

在正負樣本可分的假設下,理論上一個非傳統分類器

g(x) = Pr(s=1|x)

能把所有負樣本預測機率為0,而把所有正樣本預測為

Pr(s=1|y=1) = c

基於這種思想,我們採取以下步驟:

step 1

:利用部分PU樣本訓練一個非傳統分類器

g(x)

,並保留剩餘樣本作為驗證集。

step 2

g(x)

對驗證集中有標籤樣本進行預測

Pr(s = 1|x,y= 1)

,並透過下式來估計:

c = avg(Pr(s = 1|x,y= 1))

step 3

: 利用類別先驗

\alpha

和類別頻率

c

之間的關係,計算

\alpha

Part 8.

Active Learning與PU Learning的對比

在《主動學習在風控中的應用(理論篇)》中,我們認識了Active Learning。很多人會疑惑,Active Learning與PU Learning之間有什麼差異和相似點?

筆者認為,兩者都是為了解決:

針對有標籤樣本很少的情況,如何去訓練一個二分類模型?

在Active Learning中,專家會多次標註,逐漸擴充L(Labeled)集合,active learner則會在多次學習L集合(包含正負樣本)時不停提升自己的效能,我們稱之為

LU setting

。在打標過程中,其有以下特點:

選擇策略

:在從U集合中選擇樣本時,

選擇策略與模型密切相關。

例如,不確定性策略是選擇模型最不確定的樣本進行標註。

L集合產物

:在模型迭代過程中,

積累的L集合包括P(Positive)和N(Negative)

,但其沒有考慮到負樣本的標註實際並不可靠這一問題。

人機互動

:對人的依賴嚴重,需要人和模型之間互動頻繁。

在PU Learning中,同樣需要藉助人工打標,Learner則在每次迭代的時候,基於PU資料進行學習,我們稱之為

PU setting

。但差異點在於:

選擇策略

:在從U集合中選擇樣本時,選擇策略與模型相關性低,

主要依賴於樣本自身之間的差異

。例如,1-DNF技術致力於尋找正負樣本顯著差異的強特徵集合。

L集合產物

積累的L集合只包括P(Positive)。

在Two-step PU Learning中,可靠負樣本RN只是在模型迭代過程中的一個虛擬產物,我們總是認為負樣本的標籤是不可靠的。

人機互動

:依賴相對較少。作為半監督學習的一種,在初始化後,可以依賴EM演算法自動迭代。

因此,如何將兩者結合起來,服務於實際業務場景是一個有趣的命題。

Part 9. 總結

本文系統介紹了PU Learning的相關理論,包括基本概念、操作流程、基礎假設,以及與主動學習之間的對比。

下一篇中,將會介紹一些PU Learning的應用案例。

致謝

感謝參考資料的作者帶給我的啟發。本文尚有理解不當之處,在此拋磚引玉。

版權宣告

歡迎轉載分享

請在文章中註明作者和原文連結,感謝您對知識的尊重和對本文的肯定。

原文作者:求是汪在路上(知乎ID)

原文連結:https://zhuanlan。zhihu。com/p/98887617

⚠️著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處,

侵權轉載將追究相關責任

參考資料

關於作者

在某網際網路金融公司從事風控建模、反欺詐、資料探勘等方面工作,目前致力於將實踐經驗固化分享,量化成長軌跡。歡迎交流

標簽: 樣本  PU  分類器  標籤  Learning