Package Python pour la modélisation prédictive concise, transparente et précise.
Tous-compatibles Sklearn et faciles à utiliser.
Pour l'interprétabilité dans NLP, consultez notre nouveau package: IMODELSX
Docs • Notebooks de démonstration
Les modèles modernes d'apprentissage automatique sont de plus en plus complexes, ce qui les rend souvent difficiles à interpréter. Ce package fournit une interface simple pour l'ajustement et l'utilisation de modèles interprétables de pointe, tous compatibles avec Scikit-Learn. Ces modèles peuvent souvent remplacer les modèles de boîte noire (par exemple les forêts aléatoires) par des modèles plus simples (par exemple, les listes de règles) tout en améliorant l'interprétabilité et l'efficacité de calcul, le tout sans sacrifier la précision prédictive! Importez simplement un classificateur ou un régresseur et utilisez les méthodes fit et predict , identiques que les modèles Scikit-Learn standard.
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]
Installez avec pip install imodels (voir ici pour obtenir de l'aide).
Docs? Document de recherche? Implémentation du code de référence
| Modèle | Référence | Description |
|---|---|---|
| Ensemble de règles de règle RuleFit | ,? ,? | Convient à un modèle linéaire clairsemé sur les règles extraites des arbres de décision |
| Ensemble de règles Skope | ,? | Extrait les règles des arbres soulevés par gradient, les déduplique, puis les combine linéairement en fonction de leur précision OOB |
| Ensemble de règles stimulé | ,? ,? | S'adapte séquentiellement à un ensemble de règles avec Adaboost |
| Ensemble de règles de pantoufle | ,? | Apprend séquentiellement un ensemble de règles avec une pantoufle |
| Ensemble de règles bayésien | ,? ,? | Trouve un ensemble de règles concises avec un échantillonnage bayésien (lent) |
| Liste de règles optimale | ,? ,? | Convient à la liste des règles en utilisant l'optimisation globale pour la rareté (Corels) |
| Liste des règles bayésiennes | ,? ,? | Convient à la distribution de la liste des règles compactes avec l'échantillonnage bayésien (lent) |
| Liste des règles gourmandes | ,? | Utilise CART pour s'adapter à une liste (un seul chemin), plutôt qu'un arbre |
| Liste des règles d'on | ,? | Correspond à la liste des règles limites à une seule fonctionnalité |
| Arbre de règle optimal | ,? ,? | Convient à l'arbre succinct en utilisant l'optimisation globale pour la rareté (GOSDT) |
| Arbre de règles gourmands | ,? ,? | S'adapte avidement à l'arbre à l'aide du chariot |
| Arbre de règle C4.5 | ,? ,? | S'adapte à l'arbre en utilisant C4.5 |
| Tao Rule Tree | ,? | S'adapte à l'arbre en utilisant l'optimisation alternative |
| Aléatoire itératif forêt | ,? ,? | S'adaptez à plusieurs reprises à une forêt aléatoire, donnant des fonctionnalités avec une plus grande importance une plus grande chance d'être sélectionné |
| Entier clairsemé modèle linéaire | ,? | Modèle linéaire clairsemé avec des coefficients entiers |
| Gam arbre | ,? ,? | Modèle additif généralisé ajustement avec des arbres à remontée courte |
| Arbre gourmand sommes (figues) | , ㅤ? | Somme de petits arbres avec très peu de règles totales (figues) |
| Hiérarchique enveloppe de rétrécissement | ,? | Améliorer un arbre de décision, une forêt aléatoire ou Ensemble de renforcement des gradient avec une régularisation ultra-rapide post-hoc |
| RF + (MDI +) | ,? | Importance de fonctionnalité basée sur la forêt aléatoire flexible |
| Distillation emballage | Former un modèle de boîte noire, puis distiller en un modèle interprétable | |
| Emballage automatique | Ajuster automatiquement et sélectionner un modèle interprétable | |
| Plus de modèles | ⌛ | (À venir bientôt!) Induction de règles légères, mlrules, ... |
Les démos sont contenues dans le dossier des ordinateurs portables.
imodels pour dériver une règle de décision cliniqueLa forme finale des modèles ci-dessus prend l'une des formes suivantes, qui visent à être simultanément simples à comprendre et très prédictives:
| Ensemble de règles | Liste de règles | Arbre de règle | Modèles algébriques |
|---|---|---|---|
Différents modèles et algorithmes varient non seulement dans leur forme finale, mais aussi dans différents choix faits lors de la modélisation, tels que la façon dont ils génèrent, sélectionnent et les règles de post-traitement:
| Génération des candidats aux règles | Sélection des règles | Règle post-traitement |
|---|---|---|
Différents modèles prennent en charge différentes tâches d'apprentissage automatique. La prise en charge actuelle de différents modèles est indiquée ci-dessous (chacun de ces modèles peut être importé directement à partir d'IMODELS (par exemple from imodels import RuleFitClassifier ):
| Modèle | Classification binaire | Régression | Notes |
|---|---|---|---|
| Ensemble de règles de règle RuleFit | RulefitClassifier | RulefitRegressor | |
| Ensemble de règles Skope | Skoperulesclassifier | ||
| Ensemble de règles stimulé | BoostEdrulesClassifier | BoostedrulesRegressor | |
| Ensemble de règles de pantoufle | Slippercasseur | ||
| Ensemble de règles bayésien | BayesianrulesetClassifier | Échoue pour de gros problèmes | |
| Liste de règles optimale (Corel) | OptimalRulelistClassifier | Nécessite des carrés, échoue pour de gros problèmes | |
| Liste des règles bayésiennes | BayesianrulelistClassifier | ||
| Liste des règles gourmandes | CupidyrulelistClassifier | ||
| Liste des règles d'on | Classificateur | ||
| Arbre de règles optimal (GOSDT) | OptimaltreeClassifier | Nécessite le GOSDT, échoue pour de gros problèmes | |
| Arbre de règles gourmands (CART) | Gourmand | Gourmand | |
| Arbre de règle C4.5 | C45treClassifier | ||
| Tao Rule Tree | Taotteclassifier | Taotteeregressor | |
| Forêt aléatoire itérative | Irfclassifier | Nécessite IRF | |
| Modèle linéaire entier clairsemé | Slimclassifier | Minceur | Nécessite des dépendances supplémentaires pour la vitesse |
| Gam arbre | TreegamClassifier | Treegamregressor | |
| Summes d'arbres gourmands (figues) | Classificateur | Figure | |
| Retrait hiérarchique | Htreeclassifiercv | Htreeeregressorcv | Enveloppe tout modèle basé sur l'arbre Sklearn |
| Distillation | Distillé | Enveloppe tous les modèles compatibles Sklearn | |
| Modèle Automl | Auto-InterpretableClassifiertres. | Auto-intermédiaire |
| Discréditeur | Référence | Description |
|---|---|---|
| Mdlp | ,? ,? | Discrétiser l'utilisation de l'entropie minimisation heuristique |
| Simple | ,? | Discrétisation Kbins simple |
| Forêt aléatoire | Discrétiser en bacs basés sur la popularité aléatoire de la forêt |
Après avoir développé et joué avec imodels , nous avons développé quelques nouveaux modèles pour surmonter les limites des modèles interprétables existants.
? Papier, ? Poste, ? Citation
Les sommes (Fig) (Fig) (Fig) est un algorithme pour ajuster les modèles concis basés sur des règles. Plus précisément, les FIGS généralisent le CART pour cultiver simultanément un nombre flexible d'arbres dans une sommation. Le nombre total de divisions dans tous les arbres peut être limité par un seuil pré-spécifié, en gardant le modèle interprétable. Des expériences sur un large éventail de jeux de données du monde réel montrent que les Figs obtiennent des performances de prédiction de pointe lorsqu'elles sont limitées à quelques fentes (par exemple moins de 20).
Exemple de modèle Figs. Les figues apprennent une somme d'arbres avec un nombre flexible d'arbres; Pour faire sa prédiction, il résume le résultat de chaque arbre.
? Papier (ICML 2022) ,? Poste, ? Citation
Le retrait hiérarchique est une méthode de régularisation post-hoc extrêmement rapide qui fonctionne sur tout arbre de décision (ou ensemble basé sur des arbres, comme la forêt aléatoire). Il ne modifie pas la structure de l'arbre et régulise à la place l'arbre en rétrécissant la prédiction sur chaque nœud vers les moyennes de l'échantillon de ses ancêtres (en utilisant un seul paramètre de régularisation). Les expériences sur une grande variété de jeux de données montrent que le retrait hiérarchique augmente considérablement les performances prédictives des arbres de décision individuels et des ensembles de l'arbre de décision.
Exemple HS. HS applique une régularisation post-hoc à tout arbre de décision en rétrécissant chaque nœud vers son parent.
? Papier, ? Poste, ? Citation
MDI + est un nouveau cadre d'importance de caractéristique, qui généralise la diminution moyenne populaire du score d'importance de l'impureté (MDI) pour les forêts aléatoires. À la base, MDI + développe un lien récemment découvert entre la régression linéaire et les arbres de décision. Ce faisant, MDI + permet aux praticiens de (1) d'adapter le calcul de l'importance des fonctionnalités pour la structure des données / problèmes et (2) intégrer des caractéristiques ou des connaissances supplémentaires pour atténuer les biais connus des arbres de décision. Dans les études de cas de données réelles et les simulations inspirées des données réelles réelles, MDI + surpasse les mesures d'importance couramment utilisées (par exemple, MDI, scores basés sur la permutation et Treeshap) par des marges de substantif.
Veuillez citer le package si vous l'utilisez dans un travail académique :)
@ 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 },
}