
Tout d’abord, au niveau des versions de Python gérées, scikit-learn 0.20 sera la dernière version à fonctionner avec Python 2.7 et 3.4 : Python 3.5 (sortie en 2015) sera le minimum requis. Cette décision reflète le choix de NumPy d’arrêter toute compatibilité avec Python 2 à la fin de l’année 2018 pour les nouvelles fonctionnalités (des correctifs seront toujours disponibles jusqu’en 2020 en cas de défaut avec Python 2, mais aucune nouvelle fonctionnalité) — devoir tester le code sur des versions de Python trop différentes prend trop de ressources au niveau du projet NumPy. Python 3.4 ne sera plus de la partie, car les versions plus récentes offrent beaucoup de facilités aux développeurs de scikit-learn (notamment pour annoter les fonctions avec des types).
Pour faciliter l’utilisation de la bibliothèque par les plus débutants, la documentation fournit désormais un glossaire assez complet. Il mentionne notamment toute une série de paramètres disponibles pour les algorithmes d’apprentissage (comme n_outputs).
Une grande nouveauté de scikit-learn 0.20 concerne la gestion des données “sales” : au lieu de devoir utiliser une autre bibliothèque comme Pandas pour les gérer, scikit-learn fournit toute une série de fonctions pour les traiter. Par exemple, les données manquantes peuvent être indiquées comme des NaN : les fonctions de transformation par colonne les ignoreront par défaut ; le nouveau module impute permet alors de remplacer les valeurs manquantes (la classe SimpleImputer était déjà disponible dans le module preprocessing).
ColumnTransformer est probablement la classe à propos de laquelle l’effervescence est la plus grande. Elle permet d’appliquer des transformations complètement distinctes aux différentes colonnes d’un tableau Pandas. Aussi, les classes OneHotEncoder et OrdinalEncoder, servant à transformer les variables qualitatives (comme une couleur), peuvent prendre en entrée des chaînes de caractères ou des valeurs qualitatives de Pandas. Finalement, le module compose fait son apparition pour faciliter la composition de transformations.
Au niveau communautaire, scikit-learn dispose désormais d’une fondation (juridiquement hébergée par Inria). Elle servira notamment à récupérer les donations des particuliers et les parrainages des entreprises, mais aussi à garantir que le projet puisse embaucher des contributeurs pour travailler exclusivement sur scikit-learn. Ils pourront se concentrer sur des fonctionnalités plus ambitieuses, en éliminant les contraintes d’un autre emploi, notamment au niveau du parallélisme — sans devoir passer par les contraintes administratives propres au financement de la recherche en France. Le choix d’Inria s’est fait parce que cet organisme de recherche est à l’origine de scikit-learn, mais aussi parce que la plupart des développeurs principaux sont localisés en Europe (et le transfert d’argent par une association sans but lucratif par-delà l’Atlantique est parfois compliqué).
Source : liste des changements, A foundation for scikit-learn at Inria.
Vous avez lu gratuitement 9 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.