lundi 18 novembre 2013

Manipuler de gros fichiers en ayant peu de mémoire vive

SAS a une gestion très poussée de la mémoire, cet outil propriétaire permet de manipuler des bases de données de très grande taille et utilise la mémoire vive ainsi que le disque dur comme espace de travail, or cet outil n'est pas toujours disponible dans les petites structures et présente un coût non négligeable en licence.

R est un outil puissant de modélisation, mais dans le domaine du datamanagement il a un certain nombre de faiblesses : la taille des tables est limitée par la taille de la mémoire vive, les modules complémentaires de R qui facilitent le chargement de grosses tables ne permettent pas d'accéder à l'ensemble des librairies de modélisation.
Pour la partie modélisation, il semble difficile de s'astreindre des contraintes en mémoire vive, on utilisera volontiers des technologies cloud telles qu' Amazon EC2. Pour le datamanagement, il est possible de réaliser la plupart des manipulations de fichier avec des ressources très faibles avec PostgreSQL ou le langage de programmation PYTHON.

samedi 11 mai 2013

Calcul matriciel

À la suite du concours Heritage Health Prize j'ai constaté que sous R le moteur de calcul matriciel n'était pas rapide (je ne fais pas référence aux calculs des librairies spécialisées) ce qui n'est pas vraiment compatible avec une utilisation professionnelle. 
Il existe pourtant des solutions qui permettent de faire du calcul matriciel avec un rapport coût/performance intéressant. J'en ai testé quelques-unes.

mercredi 10 avril 2013

Heritage Provider Network Health Prize


L'Heritage Provider Network Health Prize est une compétition qui a pour objectif de créer un modèle qui sera à même de prévoir le nombre de jours d'hospitalisation à partir de données historiques.

À partir des données historiques d'un patient (nombre et type de consultation, prise de médicaments, catégories de maladie...) à la période n, nous devons estimer le nombre de jours d'hospitalisation à la période n+1. 

Pour cela nous disposons de données années 1 avec le nombre de jours d'hospitalisation années 2, de données années 2 avec le nombre de jours d'hospitalisation années 3 et enfin de données années 3 à partir desquelles on estimera le nombre de jours d'hospitalisation années 4.

J'utilise les données années 1 avec le nombre de jours d'hospitalisation années 2 en échantillon d'apprentissage.
J'utilise les données années 2 avec le nombre de jours d'hospitalisation années 3 en échantillon de test.

Le but est de minimiser le score suivant :
Soit : i : un individu, n : le total d'individu, pred : prévision du nombre de jours hospitalisés, act : le nombre de jours passés à l’hôpital.

Résultat : le meilleur modèle a un score de 0.461197, mon modèle arrive à un score de 0.470774.
En classement final, j'obtiens la 241e place sur un total de 1358 équipes participantes.

jeudi 28 février 2013

Course aux algorithmes ?

Les données doivent devenir le pétrole du 21ie siècles. À travers de nombreux cours et de concours de modélisation une communauté de data scientist est en train de se constituer. Le big data est un terme à la mode alors que déjà les statisticiens font du big data depuis un certain temps.

Pourquoi une telle effervescence ?

  • des outils libres ont fait leurs apparitions et ainsi ont permis de diffuser le data mining, alors qu'auparavant seuls des outils onéreux étaient disponibles.
  • il est possible de louer de la puissance de calcul en faisant appel à des services de cloud comme Azure ou Amazon EC2 pour quelques euros

La contrepartie à ce développement est de mettre de coté l'importance des statistiques pour la réalisation et la compréhension des modèles.

jeudi 20 décembre 2012

Retour sur le Census

L’intérêt des compétitions de Kaggle est qu'une fois l'épreuve terminée il est possible de découvrir les meilleures solutions. La méthodologie gagnante sera bientôt accessible dans le détail, car le bureau du recensement a décidé de partager le modèle avec l'ensemble de la communauté, en attendant il ressort plusieurs pistes qui ont permis aux compétiteurs de s'élever en haut du classement

- à partir des variables de départ de nouvelles variables ont été créées à la suite d'étude des relations des variables entres-elles souvent en réalisant de simples régressions, à noter qu'un module de R : Mars permet de rechercher ces interactions (à voir)

- Les modèles n'ont pas été simplement lancés en testant différents paramètres, mais un gros travail de "fitting" a été réalisé c'est-à-dire que pour chacun des paramètres des modèles des intervalles ont été définis et le programme de recherche du modèle a tourné le temps que les modifications de ces paramètres permettent de réduire l'erreur du modèle. Cette méthode a donné de bons résultats, mais a été gourmande en calcul : pour trouver le nombre d'arbres optimal en utilisant le gradient boosting cela a nécessité sur un ordinateur personnel près de trois journées de calcul. Il est donc nécessaire de savoir programmer pour trouver les meilleurs paramètres.

- il semble obligatoire de réaliser un ensemble model c'est-à-dire en utilisant différents modèles pour réaliser la prévision

mardi 6 novembre 2012

Predict census mail return rates

https://www.kaggle.com/c/us-census-challenge

1: En 2010 des courriers ont été envoyés dans les foyers américains pour réaliser le recensement. Afin d'optimiser sa communication le bureau du recensement recherche le meilleur modèle qui sera à même de prévoir le taux de retour des plis, pour cela nous avons à notre disposition le taux de retour réel de 2010, ainsi qu'un ensemble de données sociodémographique. Les données sont au niveau des "block group" qui regroupent jusqu'à 25 000 habitants. Il a été possible d'inclure des données externes après validation par le bureau du recensement américain.

L'évaluation se fait par la moyenne absolue des erreurs pondérées par le poids des populations (weighted mean absolute error).


Résultat : le meilleur modèle a un WMAE de 2.54476, mon modèle arrive à un WMAE de 3.27624.
En classement final j'obtiens la 98e place sur un total de 244 équipes participantes.

samedi 29 septembre 2012

Best Buy mobile web site

http://www.kaggle.com/c/acm-sf-chapter-hackathon-small

On recherche à déterminer le comportement d'achat de jeux Xbox à partir de requêtes sur la plate forme mobile de Best Buy. À partir d'une requête comment peut-on prévoir le clic sur un produit ?

Pour cela nous disposons d'un historique de deux années comportant 67 millions de clics et 27 millions de recherches, ainsi d'un catalogue des jeux Xbox avec leur référence produit respective.


Résultat : la meilleure méthodologie arrive à prévoir en moyenne 78 % de clics sur un produit, ma méthodologie arrive à en prévoir en moyenne 64 %. En classement final, j'obtiens la 65e place sur un total de 97 équipes participantes.