mercredi 5 février 2020

Arbres de décision avec Scikit-Learn

Tous les ans, préalablement à chacune de mes séances sur machine avec les étudiants, je fais un travail de mise à jour des instructions et indications de résultats retranscrits dans ma fiche de TD (travaux dirigés). Il faut dire que les packages sous R et Python ne se soucient pas toujours de compatibilités descendantes ou ascendantes. Une instruction valable hier peut ne pas fonctionner aujourd'hui ou, pire, fournir un résultat différent parce que les paramètres par défaut ont été modifiés ou les algorithmes sous-jacents améliorés. La situation est moins critique lorsque des fonctionnalités additionnelles sont proposées. Encore faut-il les connaître. La veille technologique est indissociable de notre activité, et j'y passe vraiment beaucoup de temps.

Concernant ma séance consacrée aux arbres de décision sous Python justement, où nous utilisons la libraire Scikit-Learn (Decision Trees), j'avais pour habitude d'annoncer à mes étudiants qu'il n'était pas possible de disposer – simplement – d'une représentation graphique de l'arbre, à l'instar de ce que nous fournirait le package "rpart.plot" pour les arbres "rpart" sous R par exemple. La nécessité d'installer un outil externe (voir "Random Forest et Boosting avec R et Python", novembre 2015 ; section 4.3.3) rendait la manipulation rédhibitoire dans une séance où nous travaillons en temps (très) restreint avec des machines (très) protégées. Je me suis rendu compte récemment au détour d'une requête Google, assez heureuse je dois l'avouer, que la situation a évolué avec la version 0.21.0 de Scikit-Learn (Mai 2019). Nous allons vérifier cela dans ce tutoriel. Nous en profiterons pour étudier les manipulations à réaliser pour pouvoir appliquer les dits-arbres sur des variables prédictives (explicatives) catégorielles. L'outil ne sait pas les appréhender de manière native... pour l'instant (version 0.22.1, février 2020).

Mots-clés : arbres de décision, indice de gini, importance des variables, représentation graphique des arbres, python, scikit-learn, codage disjonctif complet, règles imbriquées
Didacticiel : Arbres sous Python
Codes sources + données : Breast - Heart - Vote
Références :
R. Rakotomalala, "Introduction aux arbres de décision", décembre 2014.