.. _part1_chap4:
***********************************************************************
Chapitre 4 : Outils d'implémentation
***********************************************************************
Pour mettre en pratique le data mining, on dispose de trois familles d'outils :
**langages de programmation**, **solveurs/bibliothèques spécialisés** et
**logiciels tout-en-un**.
Objectifs
=========
À la fin de ce chapitre, vous devez pouvoir :
- Choisir un **langage** adapté à une tâche de data mining
- Citer des **bibliothèques/solveurs** spécialisés et des **logiciels** tout-en-un
- Savoir où trouver des **implémentations de référence**
1. Langages de programmation
============================
- **Python** — l'écosystème de référence en data science : ``pandas`` (manipulation),
``numpy`` (calcul), ``scikit-learn`` (ML/clustering), ``matplotlib``/``seaborn``
(visualisation), ``mlxtend`` (Apriori/FP-Growth).
- **R** — très présent en statistique et exploration : ``dplyr``/``tidyverse``,
``ggplot2``, ``arules`` (règles d'association).
.. note::
Les bases de Python et de R sont traitées dans le cours
`PythonR `_ — réutilisez-le comme référence.
2. Solveurs et bibliothèques spécialisés
========================================
Pour le *pattern mining*, des bibliothèques fournissent des implémentations
optimisées (souvent plus rapides qu'une implémentation maison) :
- **SPMF** (`spmf `_) — une référence
Java : Apriori, Eclat, FP-Growth, PrefixSpan, CloSpan, CMRules, gSpan, … (utilisée
en :doc:`Partie 3 <../part3/index>`).
- **FIMI** (`fimi `_) — implémentations et **datasets**
de référence pour le *frequent itemset mining* (dont **LCM**, parmi les plus rapides).
3. Logiciels tout-en-un (standalone)
====================================
Des environnements graphiques permettent de faire du data mining **sans coder** (par
glisser-déposer de blocs) :
- **Weka**, **Orange**, **KNIME**, **RapidMiner** — exploration, prétraitement,
clustering, règles d'association, évaluation.
Ils sont utiles pour prototyper vite et pour enseigner les concepts, avant de passer
à une implémentation programmée pour plus de contrôle et de performance.
Exercice
========
Pour chacune de ces tâches, proposez **un** outil adapté et justifiez : (a) analyse
descriptive rapide d'un CSV ; (b) Apriori sur une grosse base de transactions ;
(c) prototypage visuel d'un *pipeline* de clustering sans coder.