Convention

30 min Niveau 3

Les objets de Scikit-learn partagent une API de base uniforme, qui se compose des trois interfaces complémentaires suivantes : - l'interface Estimator - Elle permet de construire des modèles et de les ajuster.

  • Interface de l'estimateur - Elle sert à construire et à ajuster les modèles.
  • Interface de prédiction - Elle permet de faire des prédictions.
  • Interface Transformer - Elle permet de convertir les données.

Les API adoptent des conventions simples et les choix de conception ont été guidés de manière à éviter la prolifération du code cadre.

Objectif des conventions

L'objectif des conventions est de s'assurer que l'API respecte les grands principes suivants :

  • Cohérence - Tous les objets, qu'ils soient de base ou composites, doivent partager une interface cohérente qui se compose en outre d'un ensemble limité de méthodes.
  • Inspection - Les paramètres des constructeurs et les valeurs des paramètres déterminés par l'algorithme d'apprentissage doivent être stockés et exposés en tant qu'attributs publics.
  • Non-prolifération des classes - Les ensembles de données doivent être représentés sous forme de tableaux NumPy ou de matrices éparses Scipy, tandis que les noms et valeurs des hyperparamètres doivent être représentés sous forme de chaînes Python standard afin d'éviter la prolifération du code du framework.
  • Composition - Les algorithmes, qu'ils soient exprimables sous la forme de séquences ou de combinaisons de transformations des données ou qu'ils soient naturellement considérés comme des méta-algorithmes paramétrés sur d'autres algorithmes, doivent être mis en œuvre et composés à partir de blocs de construction existants.
  • Valeurs par défaut sensibles - Dans scikit-learn, chaque fois qu'une opération nécessite un paramètre défini par l'utilisateur, une valeur par défaut appropriée est définie. Cette valeur par défaut doit permettre d'effectuer l'opération d'une manière raisonnable, par exemple, en donnant une solution de base pour la tâche à accomplir.

Conventions diverses

logo discord

Besoin d'aide ?

Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !

En savoir plus