樣本穩定指數(PSI)是一種統計指標,用於評估兩個樣本分布之間的差異程度,通常用於監控模型在不同時間或不同環境下的表現穩定性。通過計算兩個樣本的分布差異,PSI能夠協助識別潛在的資料位移或漂移,從而為模型維護和更新提供依據。
演算法說明
樣本穩定指數(PSI)通常用于衡量樣本的穩定程度。例如樣本在兩個月份之間的變化是否穩定,如果變數的PSI值小於0.1,則表示變化不太顯著。如果PSI值在0.1到0.25之間,則表示有比較顯著的變化。如果PSI值大於0.25,則表示變數變化比較劇烈,需要特殊關注。
通過畫圖的方法可以衡量樣本在不同時刻的穩定性,即將待比較的變數離散化成N個分箱,然後計算樣本分別在各個分箱中的數量及比例,並以柱狀圖的形式呈現出來,如下圖所示。
該方法可以直觀地查看某個變數在兩批樣本上是否有劇烈的變化,但是無法量化,從而無法實現對樣本穩定性的自動監控。因此PSI就顯得尤為重要,PSI的計算公式如下。
配置組件
方式一:可視化方式
在Designer工作流程頁面添加樣本穩定指數(PSI)組件,並在介面右側配置相關參數:
|
參數類型 |
參數 |
描述 |
|
欄位設定 |
要計算PSI指標的特徵 |
需要進行PSI指標計算的特徵列。 |
|
執行調優 |
核心數 |
使用的CPU Core數量,預設系統自動分配。 |
|
記憶體數 |
每個CPU Core使用的記憶體大小,預設系統自動分配。 |
方式二:PAI命令方式
使用PAI命令配置樣本穩定指數(PSI)組件參數。您可以使用SQL指令碼組件進行PAI命令調用,詳情請參見SQL指令碼。
PAI -name psi
-project algo_public
-DinputBaseTableName=psi_base_table
-DinputTestTableName=psi_test_table
-DoutputTableName=psi_bin_table
-DinputBinTableName=pai_index_table
-DfeatureColNames=fea1,fea2,fea3
-Dlifecycle=7
|
參數 |
是否必選 |
預設值 |
描述 |
|
inputBaseTableName |
是 |
無 |
輸入基礎資料表表名,計算測試表在基礎資料表的基礎上產生的位移量。 |
|
inputBaseTablePartitions |
否 |
全表 |
輸入基礎資料表分區。 |
|
inputTestTableName |
是 |
無 |
輸入測試表的名稱,計算測試表在基礎資料表的基礎上產生的位移量。 |
|
inputTestTablePartitions |
否 |
全表 |
輸入測試表分區。 |
|
inputBinTableName |
是 |
無 |
輸入分箱結果表的名稱。 |
|
featureColNames |
否 |
全表 |
需要計算PSI指標的特徵列。 |
|
outputTableName |
是 |
無 |
輸出的指標表。 |
|
lifecycle |
否 |
無 |
輸出表的生命週期。 |
|
coreNum |
否 |
系統自動分配 |
使用的CPU Core數量。 |
|
memSizePerCore |
否 |
系統自動分配 |
每個CPU Core使用的記憶體大小,單位為MB。 |
使用樣本
使用PSI之前需要對特徵資料進行分箱,因此需要一個分箱組件。如下圖使用的樣本,PSI組件分別串連待比較的兩個樣本資料集,再串連一個分箱組件。只需要配置要計算PSI指標的特徵,即可進行PSI計算。

PSI計算的結果如下圖所示:PSI 計算完成後,在模型報告頁面可查看結果。報告以可展開的分層表格展示各特徵的 PSI 值及分箱詳情,表格列依次為 Feature、Bin、Test %、Base %、Test - Base、ln(Test/Base)、PSI。例如特徵 age 的 PSI 為 0.0475(包含 7 個分箱區間),menopause 的 PSI 為 0.0588(包含 6 個分箱區間),tumor_size 的 PSI 為 0.0409。展開各特徵行可查看每個分箱區間對 PSI 的貢獻值。