『壹』 特徵穩定性
part1:特徵穩定性
特徵穩定性,就磨納是關注該特徵的取值隨著瞎運沒時間的推移會不會發生大的波動,
對特徵穩定性的關注,一定要在建模之前完成,從一開始就避免將那些本身不太穩定的特徵選入模型。一旦發現有特徵穩定性不滿足要求,則需要對其進行剔除後重新建模,避免不必要的重復性勞動。
通常採用PSI(PopulationStability Index,群體穩定性指數)指標評估特徵穩定性。
part2:常用方法:
PSI反映了驗證樣本在各分數段的分布與建模樣本分布的穩定性,穩定性是有參照的,因此需要有兩個分布—— 實際分布 (actual)和 預期分布 (expected)。其中,在建模時通常以訓練樣本(In the Sample, INS)作為預期分布,而驗證樣本通常作為實際分布
<pre>PSI = sum((實際佔比-預期佔比)* ln(實際佔比/預期佔比))</pre>
比如訓練一個logistic回歸模型,預測時候會有個概率輸出 p
測試集上的輸出設定為p1,將它從小到大排序後10等分,如:
<pre>0.0-0.1
0.1-0.2
0.2-0.3... </pre>
現在用這個模型去對新的樣本進行預測,預測結果叫p2,按p1的區間也劃分為10等分。
<pre>實際佔比 = p2上在各區間的用戶佔比
預期佔比 = p1上各區間的用戶佔比</pre>
意義就是如果模型更穩定,那麼p1和p2上各區間的用戶應該是相近的,佔比不會變動很大,也就是預測出來的概率不會差距很大。
PS:除了按概率值大小等距十等分外,還可以對概率排序後按數量十等分,兩種方法計算得到的psi可能有所區別但數值相差不大
一般認為:
<pre>PSI<0.1 :模型穩定性很高
0.1-0.25:一般,繼續監控後續變化
PSI>0.25: 模型穩定性差,建議重做</pre>
step1: 將變數預期分布(excepted)進行分箱(binning)離散化,統計各個分箱里的樣本佔比 注意: 1. 分箱可以是等頻、等距或其他方式,分箱方式不同,將導致計算結果略微有差異; 2. 對於連續型變數(特徵變數、模型分數等),分箱數需要設置合理,一般設為10或20;對於離散型變數,如果分箱太多可以提前考慮合並小分箱;分箱數太多,可能會導致每個分箱內的樣本量太少而失去統計意義;分箱數太少,又會導致計算結果精度降低
step2: 按相同分箱區間,對實際分布(actual)統計各分箱內的樣本佔比
step3: 計 算各分箱內的A - E和Ln(A / E),
計算index = (實際佔比 - 預期佔比)* ln(實際佔比 / 預期佔比)
step4: 將各分箱的index進行求和,即得到最終的PSI
[圖片上傳失敗...(image-fc79b3-1637314904243)]
相對熵(relative entropy),又被稱為Kullback-Leibler散度(Kullback-Leibler divergence)或信息散度(information divergence),是兩個概率分布間差異的非對稱性度量。
劃重點——KL散度不滿足對稱性。
相對熵可以衡量兩個隨機分布之間的"距離「。
相對熵和PSI的概念非常相近:當兩個隨機分布完全一樣時,PSI = 0;反之,差異越大,PSI越大。
相對熵的公式:
在信息理論中,相對熵等價於兩個概率分布的悄畢信息熵(Shannon entropy)的差值:
[圖片上傳失敗...(image-7a9318-1637314904243)]
其中,P(x)表示數據的真實分布,而Q(x)表示數據的觀察分布。上式可以理解為:
[圖片上傳失敗...(image-57d277-1637314904243)]
KL散度具有非對稱性
相對熵與PSI之間的關系:
[圖片上傳失敗...(image-76a049-1637314904243)]
將PSI計算公式變形後可以分解為2項:
因此,PSI本質上是實際分布(A)與預期分布(E)的KL散度的一個對稱化操作。其雙向計算相對熵,並把兩部分相對熵相加,從而更為全面地描述兩個分布的差異。
在業務上,一般以訓練集(INS)的樣本分布作為預期分布,進而跨時間窗按月/周來計算PSI,得到Monthly PSI Report,進而剔除不穩定的變數。同理,在模型上線部署後,也將通過PSI曲線報表來觀察模型的穩定性。
參考:
(17條消息) PSI群體穩定指數-python實現_u010654299的博客-CSDN博客_psi python
https://zhuanlan.hu.com/p/79682292