imodels 项目的详细介绍
imodels 是一个旨在简化、透明且高效的预测建模 Python 软件包。该项目专注于提供易于理解的机器学习模型,方便用户在保障预测准确性的同时,增强模型的可解释性和计算效率。以下是对 imodels 项目的详细介绍。
项目背景
在现代机器学习中,模型的复杂性日益增加,使得模型的解释变得愈加困难。imodels 提供了一种简单的接口,可以用于拟合和使用最新的可解释模型。这些模型与 scikit-learn 兼容,可以用简化的模型(如规则列表)替代黑箱模型(如随机森林),提高模型的可解释性和计算效率,而不损失预测精度。
使用方式
只需导入一个分类器或回归器,并使用与 scikit-learn 模型相同的 fit
和 predict
方法,即可开始使用 imodels。以下是一个简单的使用示例:
from sklearn.model_selection import train_test_split
from imodels import get_clean_dataset, HSTreeClassifierCV
# 准备数据
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)
# 拟合模型
model = HSTreeClassifierCV(max_leaf_nodes=4)
model.fit(X_train, y_train, feature_names=feature_names)
preds = model.predict(X_test)
preds_proba = model.predict_proba(X_test)
print(model)
安装方法
可以通过 pip install imodels
进行安装。如需帮助可以查阅此处。
支持的模型类型
imodels 支持多种模型类型,包括但不限于:
- Rulefit 规则集
- Skope 规则集
- Boosted 规则集
- SLIPPER 规则集
- 贝叶斯规则集
- 最优规则列表
- 贪婪规则列表
- C4.5 规则树
- 多其余模型类型
详细支持模型列表以及其描述和参考文档可通过这里查阅。
示例与任务支持
imodels 提供许多示例以及支持不同机器学习任务的多种模型类型,包括二元分类、回归等。这些示例展示了如何对不同的可解释模型进行拟合、预测和可视化。
额外功能
imodels 还提供了一些额外的功能,例如数据清洗、误差解释、快速和有效的数据离散化等,以帮助用户更好地进行数据预处理和分析。
我们的特色模型
-
FIGS: 快速可解释的贪婪树求和
- FIGS 是一种用于拟合简单规则模型的算法,能够在少量分裂下实现先进的预测性能。
-
层级缩减: 基于树的后期正则化
- 一种极其快速的后期正则化方法,在多种数据集上显著提升树模型及其集成的预测性能。
-
MDI+: 灵活的基于树的特征重要性框架
- MDI+ 是一种创新的特征重要性框架,可根据问题结构量身定制特征重要性计算。
参考与资源
imodels 项目是对多种现有项目的集成、优化和维护,提供统一的接口和文档。项目还在持续更新中,欢迎关注更新并提出贡献。
如您在学术研究中使用 imodels,请记得进行引用。完整的引用格式如下:
@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},
}
imodels 借助其强大的功能和简洁的使用方法,正在成为机器学习领域中一项重要的工具,帮助用户更好地理解和应用复杂的预测模型。