承接上一篇XAI的Explainable Boosting Machine,今天我們要聊的是Skoped Rules演算法。
Skoped Rules 的相關套件在Sklearn Package中,是由法國的 BPCE DIGITAL團隊在2018年提出的演算法。
此演算法是透過學習決策樹的規則來作為目標類別的範圍界定(Scoping),使得決策樹相關的模型同時具有解釋力與預測能力。
Skoped Rules的介紹將分為兩個部分:
- 介紹演算法(本篇)
- 實作
這個演算法有三個階段:
- Bagging Estimator: 訓練多個決策樹做Bagging集成(也就是隨機森林),將其產生出的規則作為Rules
- Performance Filtering: 將Out Of Bag的資料分別對每一個Rule做對應的預測,如果Precision和Recall的值並未超過所設定的threshold,此Rule將會從規則的集合中被剔除
- Semantic Deduplication: 將決策規則的集合重新建立成一棵樹,並從其中剔除語意重複的規則
在這三個步驟中,若有基礎對隨機森林和分類問題評估的概念,應該蠻好理解前兩個步驟的。
但在第三個步驟提及:「Semantic Deduplication語意重複數據刪除 」的概念就需要花一點時間來仔細看一下了。
為了保持規則的多樣性,去除帶有重複意義的規則能造保有多樣性,並且較具有解釋能力上的優勢。
在規則集合中我們已經透過第二個步驟篩選出一些規則的集合,下圖中可看到,將集合中出現最多次的特徵作為根節點來建構出一棵新的Rule Tree。
下圖使用 C0作為根節點,並以 C0是大於或是小於某個數 亦或者C0不在規則中來作為節點的分裂。
第二層的節點分裂中,可以看出有些規則在同一次分裂中有相似的特徵但不同的閥值,在此會被認為是有重複的語意。
然而,如何在重複語意的規則中究竟該保留哪一個規則,在Skoped Rules 的documentation和海報中都沒有看到詳細的解釋。
二、Sample Code 實作
Quesitons:
Q:讀過本篇過後,我目前對於 Skoped Rules 困惑的點是在經過第三步驟後,是如何得到對應結果的?是與RuleFit一樣做Regression訓練嗎還是…?
希望各路大神有任何指教不吝提出!謝謝!