搜尋意圖: 如果你在找「族群穩定性指數 是什麼」或「族群穩定性指數 和相近概念差在哪」,先看這頁的短定義、完整說明與延伸比較。
TL;DR: 族群穩定性指數(Population Stability Index, PSI)用於量化資料分布隨時間的變化幅度,是監控機器學習模型輸入特徵或輸出預測是否發生偏移(drift)的核心指標,PSI 越大
實用情境: 適合用在閱讀 AI 文章、產品文件或和同事討論時,先用一頁快速對齊概念。
下一步: 先讀完定義,再往下看延伸比較與對應工具,把概念轉成實際應用。
族群穩定性指數(Population Stability Index, PSI)用於量化資料分布隨時間的變化幅度,是監控機器學習模型輸入特徵或輸出預測是否發生偏移(drift)的核心指標,PSI 越大
核心概念
族群穩定性指數(Population Stability Index, PSI)最初由金融業設計,用於評估申請貸款的客群分布是否隨時間改變,進而判斷既有的信用評分模型是否仍然適用。近年來,PSI 已成為 MLOps 中監控特徵偏移(Feature Drift)和概念偏移(Concept Drift)的標準工具之一。
PSI 的直觀含義:若你用 2024 年的資料訓練了一個模型,並在 2026 年部署,輸入資料的分布是否還和當初訓練時相似?PSI 提供了一個量化答案。
運作原理
PSI 計算公式:
PSI = Σ (Actual_i − Expected_i) × ln(Actual_i / Expected_i)
其中:
- Expected_i:基準期(如訓練集)第 i 個區間的樣本比例
- Actual_i:監控期(如生產資料)第 i 個區間的樣本比例
計算步驟:
- 選定基準資料集(通常為訓練集或驗證集)
- 決定分箱策略:對連續特徵通常分為 10-20 個等寬或等頻區間
- 計算基準期與監控期各區間的樣本比例
- 對每個區間計算 (Actual − Expected) × ln(Actual / Expected)
- 加總所有區間的結果得到 PSI
注意事項:
- 若某區間比例為 0,需進行平滑處理(如加一個極小值 ε)以避免除以零或 ln(0) 的問題
- 分箱邊界應固定(使用訓練集的等頻分箱),不能在比較時重新計算
PSI 解讀門檻(業界通用規則):
| PSI 值 | 解讀 | 建議行動 |
|---|---|---|
| < 0.1 | 分布穩定 | 無需處置 |
| 0.1 – 0.2 | 輕微變化 | 持續監控,了解原因 |
| > 0.2 | 顯著偏移 | 調查根因,考慮重新訓練 |
實際應用
MLOps 監控流水線
在生產環境中,PSI 通常作為定期批次監控任務運行,對每個輸入特徵以及模型的預測分數分別計算 PSI:
import numpy as np
def calculate_psi(expected, actual, buckets=10, eps=1e-6):
# 使用 expected 的分位數決定分箱邊界
breakpoints = np.quantile(expected, np.linspace(0, 1, buckets + 1))
breakpoints[0] = -np.inf
breakpoints[-1] = np.inf
expected_counts = np.histogram(expected, breakpoints)[0]
actual_counts = np.histogram(actual, breakpoints)[0]
expected_pct = (expected_counts / len(expected)) + eps
actual_pct = (actual_counts / len(actual)) + eps
psi_values = (actual_pct - expected_pct) * np.log(actual_pct / expected_pct)
return psi_values.sum()
信用評分模型管理
金融機構通常每月計算申請客群各特徵的 PSI,若任一關鍵特徵(如收入、年齡分布)的 PSI 超過 0.2,就啟動模型重新驗證流程。這個機制避免了在客群結構悄然轉變後,模型繼續使用舊有的評分規則造成誤判。
多特徵監控儀表板
實務中會同時監控數十甚至數百個特徵的 PSI,通常以熱力圖(Heatmap)呈現各特徵在各時間點的 PSI 值,快速識別哪些特徵的分布在何時開始偏移。
常見誤區
誤區一:PSI 能偵測所有類型的模型效能下降 PSI 只能偵測輸入特徵或預測分數的分布變化,無法直接衡量模型的預測準確率是否下降。分布穩定(低 PSI)的情況下,仍可能因為輸入特徵與目標變數之間的關係改變(概念偏移)而導致效能下滑。完整的模型監控需要同時追蹤 PSI 與預測效能指標(如 AUC、F1)。
誤區二:PSI 適用於任何類型的特徵 PSI 針對連續特徵或有序特徵設計,對名目類別特徵(如國家代碼、產品類別)需要調整計算方式,直接套用等寬分箱可能產生無意義的結果。
誤區三:分箱數越多,PSI 越精確 過多的分箱會導致某些區間樣本數極少,引入高變異數。分箱數通常在 10-20 之間取得穩定性與解析度的平衡,並且每個區間的樣本比例應不低於 5%。
與相關技術的比較
| 方法 | 量化對象 | 計算複雜度 | 解釋性 | 適用場景 |
|---|---|---|---|---|
| PSI | 邊際分布差異 | 低 | 高(有明確門檻) | 生產環境定期監控 |
| KL 散度 | 機率分布差異 | 低 | 中 | 統計研究,無標準門檻 |
| KS 統計量 | 累積分布最大差異 | 低 | 中 | 假設檢定(有 p-value) |
| Wasserstein 距離 | 分布形狀差異 | 中 | 低 | 對稱分布比較 |
PSI 與 KL 散度在數學上高度相關(PSI 近似於 JSD,即兩個方向的 KL 散度之和),但 PSI 的業界解讀門檻(0.1 / 0.2)使其在實務監控中更易於決策。
常見問題
PSI 與 KL 散度有什麼數學關係?
PSI 在數學形式上與 Jensen-Shannon 散度(JSD)密切相關,可以理解為從「期望分布到實際分布」與「從實際分布到期望分布」兩個方向的 KL 散度的加權和。更精確地說,PSI = KL(Actual || Expected) + KL(Expected || Actual),因此 PSI 是對稱的(交換基準期與監控期結果相同),而單向 KL 散度是不對稱的。這種對稱性使 PSI 更適合作為「兩個分布相互比較」的工具,而非評估訊息損失的單向度量。
在計算 PSI 時,為什麼分箱邊界要固定用訓練集決定?
若允許監控期資料重新計算分箱邊界,當分布發生偏移時,新的邊界會自動適應新分布,使每個區間的比例看起來和訓練集相近,PSI 會被低估,掩蓋了真正的漂移。固定訓練集的分位數作為邊界(通常用等頻分箱使各區間初始比例均等),才能真實反映監控期資料在訓練集視角下的分布變化。這也是 PSI 計算實作中最容易出錯的地方之一。
模型的輸出(預測分數)也可以用 PSI 監控嗎?
可以,這稱為「分數 PSI(Score PSI)」,是監控模型效能最直接的指標之一。若預測分數的分布從訓練時的形態顯著偏移,代表模型整體的預測行為已改變,可能是因為輸入特徵變化或因果關係改變所致。在信用評分等金融場景中,分數 PSI 通常是觸發模型審查的首要指標。與特徵 PSI 同時使用,可以定位偏移是由哪些輸入特徵造成的。