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 },
}