Outil CLI
csinva/imodels avatar
csinva/imodels

imodels : un paquet compatible sklearn pour la modélisation prédictive interprétable

csinva/imodels offre une implémentation open source exploitable en conditions réelles avec une structure réutilisable.

1 619 étoiles141 forksJupyter NotebookMIT

En bref

De quoi s’agit-il ?
Le paquet réunit les ensembles de règles, listes de règles, arbres de règles et modèles algébriques interprétables sous une même API de style sklearn, et inclut des méthodes originales comme FIGS et le rétrécissement hiérarchique.
À qui s’adresse-t-il ?
imodels consolide des modèles interprétables issus de différentes traditions de recherche dans une seule API, ajoute des méthodes originales telles que FIGS et le rétrécissement hiérarchique, et fournit des utilitaires pour inspecter les règles, traiter les caractéristiques catégorielles et tracer les arbres. La licence MIT autorise l'utilisation et la modification libres, mais n'offre aucune garantie ni engagement de maintenance.
Puis-je l’utiliser commercialement ?
Oui. MIT est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 1 jour.
En quel langage est-il écrit ?
Principalement Jupyter Notebook, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Ce que fait le paquet

imodels est un paquet Python pour ajuster des modèles prédictifs interprétables, destiné aux utilisateurs qui veulent remplacer les modèles boîte noire par des ensembles de règles, des listes de règles, des arbres ou des modèles algébriques. La description du dépôt le positionne pour une modélisation prédictive concise, transparente et précise, tous les modèles étant compatibles avec scikit-learn. L'exemple central entraîne un classifieur à arbre de décision sur un petit jeu de données clinique, et la sortie s'imprime directement, montrant la valeur prédite dans chaque nœud feuille. Le paquet n'ajoute pas de méthodes d'explication en complément ; le modèle interprétable est lui-même le prédicteur.

Familles de modèles et implémentations

La liste des modèles dans le README se divise en ensembles de règles, listes de règles, arbres et modèles algébriques. Les ensembles de règles incluent RuleFit, SkopeRules, FPSkope, SLIPPER et Bayesian Rule Set ; les listes de règles incluent Bayesian Rule List, Greedy Rule List, Fast-and-frugal tree et OneR ; les arbres incluent CART, C4.5, TAO et FIGS ; les modèles algébriques incluent SLIM et Tree GAM. Tous les modèles ne sont pas de nouvelles implémentations : le README indique clairement que le code dérive fortement de projets antérieurs, notamment sklearn-expertsys, rulefit, skope-rules et BOA, et que imodels extrait, unifie et maintient des parties clés de ces projets.

Conventions d'API et prise en charge des tâches

Les modèles suivent l'API standard des estimateurs sklearn : fit renvoie l'estimateur, predict renvoie les étiquettes, predict_proba renvoie une matrice de probabilités dont les lignes somment à 1, l'entrée DataFrame définit feature_names_in_, les modèles peuvent être clonés, et ils fonctionnent dans des pipelines et des recherches par grille. Le README inclut une matrice de prise en charge des tâches : certains modèles sont uniquement binaires, tandis que FIGSClassifier, GreedyTreeClassifier, HSTreeClassifier, TaoTreeClassifier, BoostedRulesClassifier, SLIMClassifier, C45TreeClassifier et DecisionTreeCCPClassifier gèrent le multiclasse. Les modèles d'ensembles de règles et de listes de règles lèvent une erreur lorsqu'on leur donne une cible multiclasse.

FIGS et rétrécissement hiérarchique

La section « Our favorite models » du README décrit deux approches originales. FIGS (Fast Interpretable Greedy-Tree Sums) généralise CART en faisant croître simultanément un nombre flexible d'arbres dans une somme, le nombre total de divisions sur tous les arbres étant limité par un seuil prédéfini ; le README affirme que des expériences sur des jeux de données réels montrent que FIGS atteint des performances de prédiction de pointe lorsqu'il est limité à quelques divisions, par exemple moins de 20. Le rétrécissement hiérarchique est une méthode de régularisation a posteriori qui fonctionne sur tout arbre de décision ou ensemble à base d'arbres comme les forêts aléatoires ; elle ne modifie pas la structure de l'arbre, mais réduit la prédiction de chaque nœud vers les moyennes d'échantillon de ses ancêtres à l'aide d'un seul paramètre de régularisation. Le README rapporte des expériences montrant qu'elle augmente substantiellement les performances prédictives des arbres individuels et des ensembles.

Inspecter les règles et tracer les arbres

Chaque modèle à base de règles expose ses règles de la même manière, via get_rules(), qui renvoie un DataFrame pandas avec une ligne par règle. Deux colonnes sont toujours présentes : rule, la condition sous forme de chaîne, et prediction, ce que cette règle prédit. Les modèles ajoutent leurs propres colonnes, telles que coef, support et importance pour RuleFit, tree pour les modèles composés de plusieurs arbres, et weight pour les ensembles boostés. Pour les modèles additifs comme FIGS, prediction est la contribution de cet arbre, de sorte que les contributions des règles correspondantes se somment à la sortie du modèle. Les modèles à base d'arbres peuvent être dessinés avec dtreeviz ; la fonction shadow_tree construit le ShadowDecTree dont dtreeviz a besoin à partir de tout modèle d'arbre imodels. dtreeviz n'est pas une dépendance et n'est importé que lorsqu'il est appelé.

Caractéristiques catégorielles et prétraitement

La plupart des modèles attendent une entrée numérique, donc les colonnes catégorielles doivent être encodées au préalable, par exemple avec sklearn.preprocessing.OneHotEncoder. Une exception est FIGS, qui accepte directement les caractéristiques catégorielles : passez les noms de colonnes via l'argument categorical_features et il les encode en one-hot en interne, en s'en souvenant pour predict. Le README mentionne également des discrétiseurs pour les colonnes numériques qu'un modèle à base de règles doit binariser. Pour SLIMClassifier et SLIMRegressor, les coefficients sont des entiers, donc des caractéristiques sur des échelles très différentes s'effondrent à zéro lors de l'arrondi ; le README conseille de standardiser X avant de les ajuster.

Installation et licence

L'installation se fait avec pip install imodels, et le README renvoie à un document de dépannage. Le dépôt est distribué sous licence MIT, dont le texte accorde la permission d'utiliser, copier, modifier, fusionner, publier, sous-licencier et vendre des copies du logiciel, à condition d'inclure l'avis de droit d'auteur et de permission. Le logiciel est fourni « tel quel », sans garantie d'aucune sorte. Le texte de la licence ne dit rien sur la sécurité, le support ou la maintenance, et les métadonnées du dépôt ne couvrent pas non plus ces aspects.

Conclusion éditoriale

imodels consolide des modèles interprétables issus de différentes traditions de recherche dans une seule API, ajoute des méthodes originales telles que FIGS et le rétrécissement hiérarchique, et fournit des utilitaires pour inspecter les règles, traiter les caractéristiques catégorielles et tracer les arbres. La licence MIT autorise l'utilisation et la modification libres, mais n'offre aucune garantie ni engagement de maintenance. La documentation du dépôt ne traite ni des versions publiées, ni du nombre d'utilisateurs, ni des déploiements en production.

Sources officielles

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Notes de la communauté

Notes de la communauté