Connexion à Dataiku

Si tout va bien, il suffit de cliquer sur http://localhost:10000.

Si vous arrivez sur cet écran

cliquez sur "no", puis choisissez "Free edition".

Il faut utiliser admin comme nom d'utilisateur et admin comme mot de passe pour se connecter.

N'oubliez pas d'exporter vos projets si vous voulez les récupérer - les données et traitements ne seront pas associés à votre compte.

Création d'un projet

Les projets contient un ensemble de données et de traitements sur celles-ci. La première action est donc de créer un projet. Pour cela, il faut cliquer sur + NEW PROJECT (en haut à droite) ou sur "Blank project" :

Vous allez créer un projet nommé "visualisation"

Une fois le projet créé vous devriez arriver sur ce tableau de bord :

En haut, apparaissent de gauche à droite (prenez le temps d'inspecter les différents menus):

Import d'un jeu de donnéees

Nous allons importer les données ""iris" qui correspondent aux mesures du sépale et du pétale. Pour cela, vous allez ajouter ce jeu de données :

http://teaching.piwowarski.fr/data/UCI/iris.csv

Une fois le jeu de données importé, vous pourrez visualiser les données et afficher par exemple un histogramme des valeurs (en cliquant sur l'en-tête d'une colonne). Prenez le temps de regarder la distribution des valeurs afin de décider si une normalisation des données (variance) est nécessaire.

ACP

Dataiku permet d'effectuer des pré-traitement simples sur les données. Pour cela, cliquez sur le jeu de données IRIS puis sur "Actions" (à droite). Enfin, choisissez "Prepare"; choisissez comme nom "iris_area"

Pour effectuer une ACP sur les données,
  1. cliquez sur un jeu de données puis sur "Lab" (en haut à droite)
  2. Choisissez un "Code Notebook" puis "PCA".
  3. Exécutez une à une les cellules; modifiez ce qui vous parait important pour analyser ces données (par exemple, centrez mais ne réduisez pas les données)
  4. Pour la PCA, il faudra impérativement exclure la classe des données; vous pouvez le faire en utilisant df = df.drop(["class"])

Une fois le carnet terminé, vous pouvez le transformer en "recette" (recipe) qui sera directement intégré au processus de traitements disponibles (flow).

Traitement de données simples

Dataiku permet d'effectuer des pré-traitement simples sur les données. Pour cela, cliquez sur le jeu de données IRIS puis sur "Actions" (à droite). Enfin, choisissez "Prepare"; choisissez comme nom "iris_area"

Le but est de

  1. Calculer la surface du sépale et du pétale, et de les ajouter
  2. Renommer les colonnes (sepal-area et petal-area)
  3. Enlever les valeurs extrêmes (+1.5 IQR, "interquartile range") en utilisant "analyze", puis "actions" sur l'en-tête d'une colonne

Une fois ce pré-traitement effectué, refaites une ACP et un T-SNE, et observez les résultats.

Création d'un rapport (dashboards)

Dataiku permet de créer des rapports qui sont composés de vues (insights)

Note : Dans la pratique, on utilise des "scénarios" pour regénérer les figures lorsqu'un jeu de données a changé

Vous commencerez à rédiger un rapport sur ce TP, en donnant les principaux résultats obtenus. Ce type de rapport sera ce que vous remettrez à la fin de chaque TP. Beaucoup d'éléments peuvent être utilisés pour mettre en place un rapport, mais pour l'instant nous nous intéresserons à :

Utilisation des carnets

Il suffit d'ajouter un carnet python pour voir le résultat de son exécution

Utilisation des images

Nous allons tout d'abord générer une image utilisable pour construire un rapport. Pour cela, il faut la sauvegarder de la façon suivante :

# À placer après la génération d'une figure
from dataiku import insights
insights.save_figure("my-matplotlib-plot")

Pour plus d'information, allez sur la documentation Dataiku

Traitemement des données et AFCM

L'AFCM est une généralisation de l'ACP à des données catégorielles et continues.

Nous allons l'appliquer au jeu de donnéees "Cylinder Bands"; ce jeu de données s'intéresse à l'état d'une machine de rotogravure

La page UCI décrit les données qui sont contenues dans "Data Folder" (en haut à gauche)

https://archive.ics.uci.edu/ml/datasets/Cylinder+Bands

Contrairement à IRIS, ce jeu de donnéees doit être modifié car les colonnes ne sont pas nommées. Vous pouvez le faire à la main, mais il est plus rapide de le faire en codant ! Pour cela, vous allez créer une recette ("recipee"), qui sera du code python, avec comme entrée le jeu de données importé et comme sortie un nouveau jeu de données en CSV. Dataiku va créer automatiquement un fichier python, où vous manipulerez les données en utilisant des Pandas. Pour modifier les colonnes, il suffit d'utiliser bands_c_df.columns qui est un tableau de chaînes de caractères.

Pour obtenir les noms de colonnes, vous utiliserez le texte fourni et des expressions régulières (utilisez re.finditer(EXPR, s, re.MULTILINE))

 s = """1. timestamp: numeric;19500101 - 21001231
2. cylinder number: nominal
...
40. band type: nominal; class; band, no band"""

La seconde opération est de créer une table de contigence; vous utiliserez encore un code python pour effectuer cette opération. Pour cela,

t-SNE et autres

Utilisez t-SNE et un autre algorithme vu en cours (Isomap, LLE, ...) pour les données et observez les différences. Pour T-SNE, vous pourrez essayer différentes perplexités.

Données Google Trends

Utilisez les données [sur les pays](https://perso.telecom-paristech.fr/eagan/class/igr204/datasets), afin de les visualiser en 2D. Utilisez deux techniques parmi celles que vous avez vues.