Python包裝,用於簡潔,透明和準確的預測建模。
所有與Sklearn兼容且易於使用。
有關NLP中的可解釋性,請查看我們的新軟件包:imodelsx
文檔•演示筆記本
現代的機器學習模型越來越複雜,通常使其難以解釋。該軟件包提供了一個簡單的接口,用於擬合和使用最新的可解釋模型,所有模型都與Scikit-Learn兼容。這些模型通常可以用更簡單的模型(例如規則列表)替換黑框模型(例如隨機森林),同時提高可解釋性和計算效率,而無需犧牲預測精度!只需導入分類器或回歸器,並使用fit和predict方法,與標準Scikit-Learn模型相同。
from sklearn . model_selection import train_test_split
from imodels import get_clean_dataset , HSTreeClassifierCV # import any imodels model here
# prepare data (a sample clinical dataset)
X , y , feature_names = get_clean_dataset ( 'csi_pecarn_pred' )
X_train , X_test , y_train , y_test = train_test_split (
X , y , random_state = 42 )
# fit the model
model = HSTreeClassifierCV ( max_leaf_nodes = 4 ) # initialize a tree model and specify only 4 leaf nodes
model . fit ( X_train , y_train , feature_names = feature_names ) # fit model
preds = model . predict ( X_test ) # discrete predictions: shape is (n_test, 1)
preds_proba = model . predict_proba ( X_test ) # predicted probabilities: shape is (n_test, n_classes)
print ( model ) # print the model ------------------------------
Decision Tree with Hierarchical Shrinkage
Prediction is made by looking at the value in the appropriate leaf of the tree
------------------------------
|--- FocalNeuroFindings2 <= 0.50
| |--- HighriskDiving <= 0.50
| | |--- Torticollis2 <= 0.50
| | | |--- value: [0.10]
| | |--- Torticollis2 > 0.50
| | | |--- value: [0.30]
| |--- HighriskDiving > 0.50
| | |--- value: [0.68]
|--- FocalNeuroFindings2 > 0.50
| |--- value: [0.42]
使用pip install imodels安裝(請參閱此處的幫助)。
文件?研究論文?參考代碼實現
| 模型 | 參考 | 描述 |
|---|---|---|
| RuleFit規則集 | ,?,? | 適合從決策樹提取的規則上的稀疏線性模型 |
| Skope規則集 | ,? | 從梯度增強的樹中提取規則,將其重複變性, 然後根據其OOB精度線性地結合它們 |
| 提升規則集 | ,?,? | 依次適合與Adaboost的一組規則 |
| 拖鞋規則集 | ,? | 依次了解拖鞋的一組規則 |
| 貝葉斯規則集 | ,?,? | 找到用貝葉斯採樣(慢)設置的簡潔規則 |
| 最佳規則列表 | ,?,? | 使用稀疏性全局優化(旋轉)擬合規則列表 |
| 貝葉斯規則清單 | ,?,? | 適合貝葉斯採樣(慢)的緊湊規則列表分佈 |
| 貪婪的規則清單 | ,? | 使用購物車適合列表(只有單個路徑),而不是樹 |
| ONER規則列表 | ,? | 擬合規則列表僅限於一個功能 |
| 最佳規則樹 | ,?,? | 使用稀疏(GOSDT)全局優化的簡潔樹適合樹 |
| 貪婪的規則樹 | ,?,? | 貪婪地使用購物車適合樹 |
| C4.5規則樹 | ,?,? | 貪婪地使用C4.5適合樹 |
| 道規則樹 | ,? | 使用交替優化適合樹 |
| 迭代隨機 森林 | ,?,? | 反复適合隨機森林,提供特徵 高度重視被選中的機會 |
| 稀疏整數 線性模型 | ,? | 具有整數係數的稀疏線性模型 |
| 樹木 | ,?,? | 通用添加劑模型擬合短的樹木 |
| 貪婪的樹 總和(圖2) | ,ㅤ? | 總規則很少的小樹的總和(圖2) |
| 分層 收縮包裝紙 | ,? | 改善決策樹,隨機森林或 具有超快速的事後正則化的梯度增強合奏 |
| RF+(MDI+) | ,? | 靈活的基於森林的特徵重要性 |
| 蒸餾 包裝紙 | 訓練黑盒模型, 然後將其提煉成可解釋的模型 | |
| 汽車包裝器 | 自動擬合併選擇一個可解釋的模型 | |
| 更多模型 | ⌛ | (即將推出! |
演示包含在筆記本文件夾中。
imodels得出臨床決策規則的示例上述模型的最終形式採用以下形式之一,旨在同時簡單地理解和高度預測:
| 規則集 | 規則列表 | 規則樹 | 代數模型 |
|---|---|---|---|
不同的模型和算法不僅以其最終形式有所不同,而且在建模過程中做出的不同選擇,例如它們如何生成,選擇和後過程規則:
| 規則候選人生成 | 規則選擇 | 規則後處理 |
|---|---|---|
不同的模型支持不同的機器學習任務。下面給出了對不同模型的當前支持(這些模型中的每一個都可以直接從iModels導入(例如from imodels import RuleFitClassifier ):
| 模型 | 二進制分類 | 回歸 | 筆記 |
|---|---|---|---|
| RuleFit規則集 | RuleFitClassifier | RuleFitRegressor | |
| Skope規則集 | SkoperulesClassifier | ||
| 提升規則集 | BoostrulesClassifier | BoostEdrulesRegressor | |
| 拖鞋規則集 | 拖鞋分類器 | ||
| 貝葉斯規則集 | 貝葉斯列賽班cl | 失敗了大問題 | |
| 最佳規則列表(Corels) | OptimalrulelistClassifier | 需要絞車,無法解決大問題 | |
| 貝葉斯規則清單 | BayesianrulelistClassifier | ||
| 貪婪的規則清單 | GreedyrulelistClassifier | ||
| ONER規則列表 | onerclallalifier | ||
| 最佳規則樹(GOSDT) | OptimAltreClalteifier | 需要GOSDT,對於大問題而失敗 | |
| 貪婪的規則樹(購物車) | 貪婪的分類劑 | greedytrereegressor | |
| C4.5規則樹 | C45TREECLAPERIER | ||
| 道規則樹 | taotreeclalsifier | taotreeregressor | |
| 迭代隨機森林 | IRFClassifier | 需要IRF | |
| 稀疏整數線性模型 | Slimclassifier | Slimregressor | 需要額外的依賴性 |
| 樹木 | TreegamClassifier | Treegamregressor | |
| 貪婪的樹總和(無花果) | 無花果classifier | 無花果區域 | |
| 分層收縮 | hstreeclalsifiercv | hstreeregressorcv | 包裝任何基於Sklearn樹的模型 |
| 蒸餾 | 蒸餾器 | 包裝任何與Sklearn兼容的模型 | |
| 汽車型號 | AutoInterPretableClalsifier️ | AutoInterPretableReReRegressor️ |
| 離散器 | 參考 | 描述 |
|---|---|---|
| MDLP | ,?,? | 使用熵最小化啟發式啟發式 |
| 簡單的 | ,? | 簡單的KBINS離散化 |
| 隨機森林 | 基於隨機森林分裂的流行而離散為垃圾箱 |
在開發和使用imodels之後,我們開發了一些新模型來克服現有可解釋模型的局限性。
?紙, ?郵政, ?引用
快速解釋的貪婪樹總和(圖2)是用於擬合基於簡明規則的模型的算法。具體而言,無花果概括購物車以同時在總結中生長出柔性數量的樹木。所有樹木的拆分總數可以受到預先指定的閾值的限制,從而使模型可解釋。各種各樣的現實世界數據集進行的實驗表明,無花果僅限於幾次分裂(例如小於20)時,無花果實現最先進的預測性能。
示例無花果模型。無花果學會的樹木和有大量樹木的樹木。為了進行預測,它總結了每棵樹的結果。
?紙(ICML 2022),?郵政, ?引用
分層收縮是一種非常快速的事後正則化方法,可用於任何決策樹(或基於樹的合奏,例如隨機森林)。它不會修改樹的結構,而是通過將每個節點上的預測縮小到其祖先的樣本平均值(使用單個正則化參數)來使樹正規化。各種數據集的實驗表明,分層收縮大大提高了單個決策樹和決策樹的預測性能。
HS示例。 HS通過將每個節點縮小到其父級,將事後正則化適用於任何決策樹。
?紙, ?郵政, ?引用
MDI+是一個新穎的特徵重要性框架,它概括了隨機森林的普遍雜質(MDI)重要性評分。 MDI+以線性回歸與決策樹之間的最近聯繫,以其核心擴展。在此過程中,MDI+使從業人員能夠(1)對數據/問題結構的特徵定制計算的重要性計算,並且(2)結合其他功能或知識以減輕決策樹的已知偏見。在實際數據案例研究和廣泛的實際數據啟發的模擬中,MDI+的表現均優於常用的特徵重要性度量(例如,MDI,基於置換的分數和TREESHAP)。
如果您在學術工作中使用包裹,請引用包裹:)
@ software {
imodels2021 ,
title = { imodels : a python package for fitting interpretable models },
journal = { Journal of Open Source Software },
publisher = { The Open Journal },
year = { 2021 },
author = { Singh , Chandan and Nasseri , Keyan and Tan , Yan Shuo and Tang , Tiffany and Yu , Bin },
volume = { 6 },
number = { 61 },
pages = { 3192 },
doi = { 10.21105 / joss.03192 },
url = { https : // doi.org / 10.21105 / joss.03192 },
}