# Weka (informatique)

Weka (acronyme pour Waikato environment for knowledge analysis, en français : « environnement Waikato pour l'analyse de connaissances ») est une suite de logiciels d'apprentissage automatique écrite en Java et développée à l'université de Waikato en Nouvelle-Zélande. Weka est un logiciel libre disponible sous la Licence publique générale GNU (GPL).

## Description

L'espace de travail Weka contient une collection d'outils de visualisation et d'algorithmes pour l'analyse des données et la modélisation prédictive, allié à une interface graphique pour un accès facile de ses fonctionnalités. La version « non-Java » originale de Weka était un front-end en Tcl/Tk pour des algorithmes de modélisation (essentiellement tierces) implémentés dans d'autres langages de programmation, complété par un des utilitaires de préprocesseur de données en C, et un système à base de makefile pour lancer les expériences d'apprentissage automatique. Cette version originale était avant tout conçue comme un outil pour analyser des données agricoles$^,$, mais la version plus récente entièrement basée sur Java (Weka 3), pour laquelle le développement a débuté en 1997, est désormais utilisée dans beaucoup de domaines d'application différents, en particulier pour l'éducation et la recherche. Les principaux points forts de Weka sont qu'il :
* est libre et gratuit, distribué selon les termes de la licence publique générale GNU ;
* est portable car il est entièrement implémenté en Java et donc fonctionne sur quasiment toutes les plateformes modernes, et en particulier sur quasiment tous les systèmes d'exploitation actuels ;
* contient une collection complète de préprocesseurs de données et de techniques de modélisation ;
* est facile à utiliser par un novice en raison de l'interface graphique qu'il contient.
Weka supporte plusieurs outils d'exploration de données standards, et en particulier, des préprocesseurs de données, des agrégateurs de données (data clustering), des classificateurs statistiques, des analyseurs de régression, des outils de visualisation, et des outils d'analyse discriminante. Toutes les techniques de Weka reposent sur la supposition que les données sont disponibles dans un unique fichier plat ou une Relation binaire, ou chaque type de donnée est décrit par un nombre fixe d'attributs (les attributs ordinaires, numériques ou symboliques, mais quelques autres types d'attributs sont aussi supportés). Weka fournit un accès aux bases de données SQL en utilisant le Java Database Connectivity (JDBC) et peut traiter le résultat d'une requête SQL. Il n'est pas capable de faire de l'exploration de données multi-relationnelles, mais il existe des logiciels tiers pour convertir une collection de tables de base de données liées entre elles en une table unique adaptée au traitement par Weka. Un autre domaine important qui n'est pour le moment pas couvert par les algorithmes inclus dans la distribution Weka est la modélisation de séquences.
L'interface principale de Weka est l’explorer, mais à peu près les mêmes fonctionnalités peuvent être atteintes via l'interface « flux de connaissance » de chaque composant et depuis la ligne de commande. Il y a aussi l’experimenteur, qui permet la comparaison systématique (taxinomique) des performances prédictives des algorithmes d'apprentissage automatique de Weka sur une collection de jeux de données.
L'interface explorer possède plusieurs onglets qui donnent accès aux principaux composants de l'espace de travail. L'onglet preprocesseur a plusieurs fonctionnalités d'import de données depuis des bases de données, un fichier CSV et pour pré-traiter ces données avec une algorithme appelé filtering. Ces filtres peuvent être utilisés pour transformer les données (par exemple, transformer des attributs numériques réels en attributs discrets) et rendre possible l'effacement d'instances et d'attributs selon des critères spécifiques. L'onglet classify permet à l'utilisateur d'appliquer des classifications et des algorithmes de régression (indifféremment appelés « classifiers » dans Weka) au jeu de données résultant, pour estimer la précision du modèle prédictif, et de visualiser les prédictions erronées, ROC curves, etc. ou le modèle lui-même (si le modèle est sujet à visualisation, comme un Arbre de décision). L'onglet Associate donne accès aux apprentissages par règles d'association qui essayent d'identifier toutes les relations importantes entre les attributs dans les données. L'onglet Cluster donne accès aux techniques de clustering de Weka, comme l'algorithme du k-means. Il y a aussi une implémentation d'algorithme espérance-maximisation pour l'apprentissage d'un mélange de distributions normales. L'onglet « Select attributes » fournit des algorithmes pour l'identification des attributs les plus prédictifs dans un jeu de données. Le dernier onglet, « Visualize » montre une matrice de nuages de points, ou des nuages de points individuels peuvent être sélectionnés et élargis, et davantage analysés en utilisant divers opérateurs de sélection.

## Historique

* En 1992, l'université de Waikato en Nouvelle-Zélande commença le développement de la version originale de Weka (qui devint un mélange de Tcl/Tk, de langage C et de Makefile).
* En 1997, la décision fut prise de développer une nouvelle fois Weka à partir de zéro en Java, y compris l'implémentation des algorithmes de modélisation.
* En 2005, Weka reçoit le SIGKDD (Data Mining and Knowledge Discovery Service Award).
* En 2006, Pentaho acquiert une licence exclusive pour utiliser Weka pour de l'informatique décisionnelle. Il forme le composant d'exploration de données analytique et prédictif de la suite de logiciels décisionnels Pentaho.