mercredi 2 juin 2010

Traitement des très grands fichiers avec R

Le traitement des grands fichiers est un problème récurrent du data mining. Dans ce didacticiel, nous étudierons une solution mise en place dans R sous la forme d'une libraire. Le package " filehash " permet de copier (de " dumper " carrément) tous types d'objets sur le disque, les données mais aussi les modèles. Il utilise un format de type base de données. Il présente un avantage énorme, il est possible d'utiliser les fonctions statistiques standards ou issus d'autres packages sans avoir à procéder à une quelconque adaptation. Au lieu de manipuler des data.frame en mémoire, elles travaillent sur des data.frame stockés sur le disque, de manière totalement transparente. C'est assez épatant, il faut l'avouer. Les capacités de traitement sont largement améliorées et, dans le même temps, la dégradation du temps de calcul n'est pas rédhibitoire.

Néanmoins, nous constaterons que les fonctions R n'étant pas spécifiquement conçus pour l'appréhension des grands ensembles de données, lorsque nous augmentons encore nos exigences, les calculs ne sont plus possibles alors que les ressources ne sont pas entièrement utilisées. C'est un peu la limite des approches génériques. La modification des algorithmes d'apprentissage est souvent nécessaire pour exploiter au mieux les particularités du contexte. Il faudrait même aller plus loin. Pour obtenir des résultats réellement probants, il faudrait à la fois adapter les algorithmes d'apprentissage et organiser en conséquence les données sur le disque. Une solution qui conviendrait à tout type d'analyse paraît difficile, voire illusoire.

Pour évaluer la solution apportée par le package " filehash ", nous étudierons le temps de calcul et l'occupation mémoire, avec ou sans swap sur le disque, lors du calcul de statistiques descriptives, de l'induction d'un arbre de décision avec rpart du package du même nom, et de la modélisation à l'aide de l'analyse discriminante avec la fonction lda de la librairie MASS.

Nous réaliserons les mêmes opérations dans SIPINA. En effet, ce dernier propose également une solution de swap pour l'appréhension des très grandes bases de données. Nous pourrons ainsi comparer les performances des stratégies implémentées.

Mots clés : gros volumes, très grands fichiers, grandes bases de données, arbre de décision, analyse discriminante, sipina, C4.5, rpart, lda
Lien : fr_Tanagra_Dealing_Very_Large_Dataset_With_R.pdf
Données : wave2M.txt.zip
Références :
R package, "Filehash : Simple key-value database"
Tutoriel Tanagra, « Traitement de gros volumes – Comparaison de logiciels »
Tutoriel Tanagra, « Sipina - Traitement des très grands fichiers »
Yu-Sung Su's Blog, "Dealing with large dataset in R"