Outils pour utilisateurs

Outils du site


projets:plim:20152016:gr11

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
projets:plim:20152016:gr11 [2015/10/20 06:42] – [Main Info] palagiprojets:plim:20152016:gr11 [2015/11/22 18:10] (Version actuelle) – [Fonctionnement de l'algorithme HAC] merai
Ligne 3: Ligne 3:
  
  
-===== Main Info =====+===== Information principale ===== 
 +Le but principal de cette application est de suivre les changements de position GPS de l'utilisateur quand il bouge. A partir de ces données nous allons reconnaitre les trajets de l'utilisateur.
  
-The main purpose of the application is to track users' GPS activities when moving. From this data we're going to recognize users' journey and habit, then we'll give them precious data about it. 
  
- +=== Membres de l'équipe ===
-=== Team Members ===+
   * Ameni Merai   * Ameni Merai
   * Yoann Boutin   * Yoann Boutin
   * Damien Palagi   * Damien Palagi
  
-=== Equipments ===+=== Equipements ===
  
   * IDE : Visual Studio Community 2015   * IDE : Visual Studio Community 2015
Ligne 20: Ligne 19:
  
 ===== Processus ===== ===== Processus =====
-=== Scénario Type === +=== Scénario enregistrement de données === 
-  L'utilisateur installe notre application et la lance pour la première fois. +  L'utilisateur installe notre application et la lance pour la première fois. 
-  L'application lui propose de commencer à suivre sa position grâce au GPS. +  L'application lui propose de commencer à suivre sa position grâce au GPS. 
-  Après avoir répondu "OK", nous enregistrons une tâche de fond pour tracer l'activité GPS de l'utilisateur. +{{:projets:plim:20152016:wp_ss_20151121_0001.jpg?200|}} 
-  Nous sauvegardons tous les changements de position au sein de l'application. +  Après avoir appuyé sur "Start", nous commençons à enregistrer les déplacements de l'utilisateur grâce à ses coordonnées GPS 
-  Une fois une première vague de données établies (à voir quand arrêter), nous établissons des clusters de données à analyser. +{{:projets:plim:20152016:wp_ss_20151121_0002.jpg?200|}} 
-  Après analyse nous proposons à l'utilisateur de nommer ce clusteur en tant que trajet pour "MAISON/TRAVAIL""TRAVAIL/SPORT"... afin de lui permettre de reconnaître ce trajet+{{:projets:plim:20152016:wp_ss_20151121_0003.jpg?200|}} 
-  - Ne reste plus qu'à fournir des données pertinentes relatives à ce trajet!+  Nous sauvegardons tous les changements de position au sein de l'application. 
 +  Une fois une première vague de données établies lorsque l'utilisateur aura appuyé sur le bouton "Stop", nous établissons des clusters de données à analyser. 
 +  Après analyse, le cluster est ajouté à la liste des trajets à visualiser. 
 + 
 +=== Scénario visualisation des trajets === 
 +  * L'utilisateur appuie sur le bouton "Visualize"
 +  * L'utilisateur arrive sur une autre page où est affiché la carte ainsi que la liste des différents trajets (clusters). 
 +{{:projets:plim:20152016:wp_ss_20151121_0004.jpg?200|}} 
 +  * Il peut alors renommer ses trajets en appuyant sur le bouton "Renommerde chaque trajet, mais il peut également appuyer sur un trajet afin de l'afficher sur la carte. 
 +{{:projets:plim:20152016:wp_ss_20151121_0005.jpg?200|}} 
 +{{:projets:plim:20152016:wp_ss_20151121_0006.jpg?200|}} 
 +  * L'utilisateur pourra revenir sur l'écran d'accueil en appuyant sur le bouton de retour du téléphone. 
 + 
 + 
 +===== Fonctionnement de l'algorithme HAC ===== 
 +L’algorithme de classification ascendante hiérarchique (CAH) est une méthode de classification automatique de données qui a pour but de repartir ces données dans un certain nombre de classes(clusters).\\  
 +La classification ascendante hiérarchique est faite en **4** grandes étapes : 
 +  - Préparation des données 
 +  - Choix de l’indice de **dissimilarité** entre les individus : c’est la distance entre individus dans une classe. 
 +  - Choix de l’indice **d’agrégation** : c’est la distance entre les individus appartenant à des classes différentes. Pour calculer cet indice, on utilise deux stratégies : stratégie du saut minimum ou //__single linkage__// (On regroupe les 2 éléments présentant la plus petite distance entre éléments des deux classes.) et stratégie du saut maximum ou du diamètre ou //__complète linkage__// (On regroupe les 2 éléments présentant la plus grande distance entre éléments des deux classes). 
 +  - Choix de la partition finale : On définit un ensemble de classes de l'ensemble des individus tel que toute classe soit non vide, deux classes distinctes sont disjointes et tout individu appartient à une classe.\\ 
 +Initialement, chaque individu forme une classe (pour n individus on a n classes). 
 +A chaque itération, on calcule les distances entre les éléments d’une classe, et on les compare à l’indice de dissimilarité. Par la suite, on regroupe les classes deux à deux. Puis on fusionne celles qui sont les plus proches, selon l’indice d’agrégation, en remplaçant les deux classes regroupées par la nouvelle.\\ 
 +Contrairement au K-MEANS, le nombre de classes obtenus grâce au CAH n’est pas connu à l’avance. Il dépend de nombre d’éléments, de l’indice de dissimilarité et de l’indice d’agrégation. 
 +===== Problèmes rencontrés ===== 
 +  * Lorsque nous lançons l'enregistrement des données GPS nous voulions au départ lancer une tâche de fond afin de continuer l'enregistrement des données, même dans le cas ou l'utilisateur quitterai l’application. Malheureusement il se trouve que sur les applications Windows 8.1 il n'est plus possible de créer une tâche de fond d'enregistrement de données GPS (cf : [[https://social.msdn.microsoft.com/Forums/windowsapps/en-US/a3752d73-ea97-473a-9a6e-63c5012a4856/wp81-background-tasks-geofencing-geoposition-tracking]], première réponse). De ce fait nous avons décidé de bloquer le verrouillage automatique de l'écran pendant l'enregistrement de données afin de les récupérer tant que le téléphone est déverrouillé. 
 +  * Au départ pour nos calculs de cluster nous utilisions une fonction de calcul de distance entre deux points qui était proposé dans l'algorithme de clustering HAC mais qui n'était pas bonne. Nous avons donc créé notre propre classe qui utilise la fonction //Haversine// qui permet de calculer la distance entre deux points en utilisant leur longitude et latitude.  
 + 
 +===== Projet et explication de lancement ===== 
 +== Détails sur le lancement de l'application : == 
 +  - Télécharger le .zip dans la partie suivante puis le dézipper. 
 +  - Ouvrir la solution PLIM-GPS.sln sous Visual Studio puis la lancer avec ce dernier.
  
 +== Fichier ==
 +{{:projets:plim:20152016:plim-gps.rar|}}
projets/plim/20152016/gr11.1445323328.txt.gz · Dernière modification : 2015/10/20 06:42 de palagi