Vous êtes sur la page 1sur 5

Master BIG DATA & IoT

COMPTE RENDU TP-4:


Module: DEVELOPMENT DES PLATFORMS BIG DATA

Objectif : de ce TP est de présenter l’emploi des SVM linéaires dans


Spark, y compris la définition de pipeline et la recherche de valeurs en
utilisant la validation croisée. La même méthodologie doit être
employée pour la construction de tout modèle décisionnel avec Spark.

Réaliser par :
AIT-ZI Khalid

1
❖ Récupération des fichiers nécessaires
Nous travaillerons dans ce travail pratique sur un découpage, apprentissage et test
particulier d’une partie des données Adult de la base UCI. Les données ont été
employées pour prédire si le revenu annuel d’un individu dépasse 50 k$ (en 1996).

• Importer les données


La première chose à faire c’est d’importer les données dans le contenaire.
C:\Users\pc>docker cp C:\Users\pc\Desktop\data.txt 5c802f96b83851c6a51efb
6d779e644959a38810c87c51330211c8e95fb9d6a1:/opt/spark/work-dir
Après en va lire les données dans le format approprié.

La visualisation des 20 et 2 premières lignes du data frame.

2
• Partitionner les données
Partitionner les données en deux catégories, 50% pour l’apprentissage et 50%
pour le test, cela pour tester la capacité de notre modèle prédictif à généraliser
sur des données non-vues. Et conserver partition (0) d’apprentissage dans la
mémoire. Et une variable test contient la partition de test.

• Construction de pipeline
En général, différents traitements préalables sont appliqués aux données avant la
modélisation décisionnelle. Ces traitements peuvent être regroupés dans un
pipeline. Nous construisons ici encore un pipeline qui dans un premier temps se
réduit à la SVM, et dans cette section optionnelle inclut en plus une réduction de
dimension par ACP.
1-Définition de l'estimateur SVC linéaire.
2- Définition du pipeline (réduit ici au SVM linéaire).

Un modèle décisionnel obtenu comme résultat d’une procédure de modélisation


dépend des données (observations) d’apprentissage.

• Recherche des valeurs optimales des hyperparamètres


Afin d’obtenir le « meilleur » modèle (pour un ensemble de données et dans une
famille paramétrique fixée, comme les SVM linéaires) il est nécessaire d’explorer
l’espace des valeurs des hyperparamètres. Cette exploration fait en général appel
à une grille multidimensionnelle (une dimension par hyperparamètre) et porte
dans ce cas le nom grid-search. Chaque point de la grille correspond à une
combinaison de valeurs pour les différents hyperparamètres. Chaque combinaison
sera caractérisée par le score de validation croisée obtenu pour les modèles qui
possèdent ces valeurs des hyperparamètres.
1- Construction de la grille de paramètres utilisée pour grid-search, Une
composante est ajoutée avec addGrid() pour chaque paramètre à explorer.

3
2- Définition de l'instance de CrossValidator : à quel estimateur l'appliquer,
avec quels (hyper)paramètres, combien de folds, comment évaluer les
résultats.
3- Construction et évaluation par validation croisée des modèles
correspondant à toutes les combinaisons de valeurs de paramètres de
paramGrid.
4- Afficher les meilleures valeurs pour les hyperparamètres.
5- Enregistrement du meilleur modèle.

3
4

4
• Évaluation du modèle obtenu avec les valeurs optimales
des hyper-paramètres
Le meilleur modèle (obtenu avec la meilleure combinaison de valeurs pour les
hyperparamètres après un nouvel apprentissage sur la totalité des données
d’apprentissage) est accessible dans cvSVCmodel. Nous pouvons évaluer ses
performances sur les données d’apprentissage et sur les données de test. Pour cela,
il est d’abord nécessaire de s’en servir avec .transform() pour obtenir les
prédictions de ce modèle sur les deux ensembles de données.
1- Calculer les prédictions sur les données d'apprentissage
2- Calculer les prédictions sur les données de test
3- Afficher le schéma du DataFrame résultats
4- Afficher 10 lignes complètes de résultats (sans la colonne features)
5- Calculer AUC (area under roc) sur données d'apprentissage
6- Pour réaliser l’évaluation des modèles, il faut passer par l’objet Evaluator
accessible via getEvaluator. Cet objet expose simplement une méthode
evaluate alors on doitCalculer AUC sur données de test
1

5
6

Vous aimerez peut-être aussi