Test d'Orange (Outil de Data Science)

Si vous utilisez anaconda vous avez sans doute déjà vu un icone en forme d’Orange dans Anaconda Navigator. Dans le cas contraire, peut être avez-vous fait quelques recherches dans les outils de DataScience et êtes-vous tombé par hasard sur ce petit logiciel gratuit qu’est Orange. Dans tous les cas ça faisait longtemps que je voulais l’essayer afin de voir si cet outil Open-Source pouvait se révéler utile. Je me suis donc lancé avec les données du titanic afin de voir comment l’utiliser.

Installer Orange

Même si vous utilisez Anaconda, ce logiciel n’est pas installé par défaut. Par contre un simple click sur le bouton Install dans l’Anaconda Navigator le fera tout simplement en quelques secondes. Installez la dernière version majeure (la version 3). Bien sur vous pouvez aussi le faire en ligne de commande:

conda config --add channels conda-forge
conda install orange3

Vous pouvez aussi l’installer directement avec pip:

pip install orange3

Découvrir L’environnement Orange

A première vue l’environnement parait simple. Il se décompose en deux partie :

  • La palette de widgets (à gauche) : chaque widget va vous permettre d’effectuer des opérations sur les données
  • Un canevas (à droite) dans lequel vous allez disposer vos widgets et les enchainer.

La philosophie d’Orange est plutôt simple et je le comparerai volontier à Jupyter Notebook dans la façon de l’utiliser !

… A la différence près que le premier vous permettra de concevoir graphiquement tandis que le second nécessite des connaissances Python ! Pas de code donc avec Orange et une approche totalement graphique dans laquelle on relie point à point des widgets entres eux.

On trouve plusieurs catégories de widgets dans la palette :

  • Data : pour se connecter à des sources de données, analyser et effectuer des opérations sur ces dernières.
  • Visualize : pour mieux voir les données au travers de graphiques (bars, scatter plots, etc.)
  • Model : Pour modéliser et gérer la persistence de vos modèles.
  • Evaluate: Pour prédire et qualifier ses modèles.
  • Unsupervised : pour la modélisation non supervisée
  • Etc.

D’autres groupes de widgets sont bien sur disponibles au travers des Addons d’Orange (Cf. menu Options). Attention si vous êtes sur Windows certains addons nécessitent Visual C++ installé sur votre machine.

Premières manipulations

Pour ajouter un widget, un simple drag’n drop de ce dernier de la palette vers le canevas suffit. Pour relier deux widgets entres eux il faut attraper la parenthèse droite du premier widget (source) et faire un drag’n drop vers la parenthèse gauche du second (destination) :

Pratique: vous pouvez aussi (à partir du seul widget source) faire un drag’n drop dans le vide et lâcher. Dans ce cas une liste déroulante des widgets possible à utiliser sera proposée.

Pour voir le résultat d’un widget double-cliquez simplement dessus. Dans le cas de figure ci-dessus voici ce qui se produit quand je double-clic sur Info Titanic (widget Data Info):

Modélisons la survie des voyageurs du Titanic

Vous avez compris comment fonctionne Orange ? très bien alors prenons les données Kaggle du Titanic et faisons notre premier modèle avec cet outil. Bien sur nous allons respecter les 6 différentes phases de ce type de projet … mais avec pour seul compagnon Orange !

Tout d’abord il faut savoir que Orange permet de visualiser les données dans des objets (widgets) Data Table :

Afin d’analyser vos données par rapport au résultat (ici survivant ou non) rien de tel que l’analyse via le widget Distributions. Ce widget interactif vous permettra de voir vos données sur toutes les facettes :

Vous verrez sans doute alors visuellement quelques corrélations que vous allez pouvoir qualifier via le widget Corellation :

Humm ! ici on voit bien qu’il existe par exemple un lien potentiel entre le coût du billet et la classe !

Ensuite nous allons enchaîner plusieurs widgets afin d’entraîner un modèle (arbre de décision). Voici le résultat :

Vous pouvez aussi télécharger le projet Orange déjà fait sur GitHub.

Quelques explications s’imposent …

  • File > Data Table : il s’agit juste ici de proposer à l’utilisateur de visualiser les données.
  • Data Table > Select Column : ce widget permet de créer son domaine de travail (sélectionner et positionner les variables). Vous sélectionnez ici les variables que vous allez prendre en compte et préciser (dans le cas d’un modèle supervisé) quelle colonne est la cible :
  • Select Column > Impute: Ce widget vous permet de gérer très simplement les valeurs manquantes de votre jeu de données et par variable/colonne :
  • Impute > Scatter plot : Vous permet de visualiser de manière interactive la distribution des données :
  • Impute > Tree : Vous permet d’appliquer un algorithme d’arbre de décision à votre jeu de données. Vous pouvez ici préciser les hyper-paramètres.
  • Tree > Test & Score : Ce widget vous donnera votre score (AUC, F1, et autres dans ce cas ici)
  • Test & Score > Save Model : Pour sauvegarder votre modèle entraîné !

Utiliser le modèle

Utiliser un modèle enregistré n’est pas très complexe. Pour celà il suffit d’utiliser les widgets Load Model (avec le fichier enregistré au préalable, cf ci-dessous), puis le widget Predictions comme suit :

La vidéo

Conclusion

Orange est un outil plutôt simple à prendre en main. Néanmoins et par son approche, il peut paraître complexe pour ceux qui ne sont pas habitués aux projets de Machine Learning (à ceux-ci je suggère de lire mon article sur les étapes de ce type de projet ici). En fait je trouve que c’est un outil vraiment très pratique pour du prototypage mais qui trouve certaines limitations dés lors que l’on a des transformations (préparation de données) complexe à réaliser ou tout simplement beaucoup de préparation de données à réaliser. En effet le canevas devient vite alors vite illisible … quand il ne faut pas utiliser le widget Python pour coder directement ! Des limitations donc sur la partie préparation mais une très bonne surprise par contre coté visualisation de données (qui s’avère être bien adaptée au Machine Learning).

La bonne nouvelle vient des addons qui permettent d’étendre les possibilités de l’outil. C’est une fonctionnalité nouvelle (2019), du coup la bibliothèque est encore assez pauvre. On peut faire confiance à la communauté pour l’enrichir rapidement 😉

L’ergonomie quant à elle est fluide et plutôt intuitive, même si de temps en temps on peut se perdre un peu sur quelques détails (par exemple la gestion des liens entre widgets). Rien de vraiment gênant en tout cas !

Pour conclure, je dirais que Orange est un outil très ludique qui permet d’aborder et de gérer toutes les facettes d’un projet de Machine Learning. C’est donc une bonne surprise … gratuite en plus, c’est donc un outil à essayer absolument !

Partager cet article

2 Replies to “Test d'Orange (Outil de Data Science)”

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.