Outils pour utilisateurs

Outils du site


projets:plim:20152016:gr6

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:gr6 [2015/10/30 11:39] – copied missing elements from template chammamprojets:plim:20152016:gr6 [2015/11/24 17:34] (Version actuelle) – [Machine learning and clustering] boussarsar
Ligne 33: Ligne 33:
 ===== How it works ===== ===== How it works =====
  
-==== Data gathering (acquisition) ==== 
- 
-GPS data (latitude, longitude, altitude); time-stamps. 
-     
 ==== Data manipulation ==== ==== Data manipulation ====
  
-Measuring the length of the trail circuit and its total duration.+After collecting sensors raw data which are a set of latitude and longitude couple called Geopoints, it is time to calculate the length of the trail circuit.  
 +To do so, the application's algorithm takes each couple of Geopoints as input, with the measure unit of latitude and longitude, and returns the distance between these two points. As for the measure of trail'duration, the algorithm stores two times: the trail's starting and anytime which are system's timestamp at the beginning of the trail and the end of the trailThese steps are done in a background-task. 
 +==== Machine learning and clustering ====
  
-==== Clustering ==== +Based on trails information (distance and duration) the next step is to build a dataset, the database. K-Means is the unsupervised machine learning algorithm, or simply clustering algorithm, implemented in this solution to ensure grouping similar users together. There are three clusters which areeasyTrailsmediumTrails and hardTrails.  
- +The first step is to initialize the input which is a bi-dimensional array of distance and duration, choosing the appropriate distance measure mechanism and fixing the number of clusters. After that, the algorithm chooses randomly n centroids based on the number of clusters, which is called k, and calculates the distance between a given centroid and all the other points based on Euclidean distance. After initializing the clusters, the algorithm finds the nearest point in the centre of the cluster and call it centroid by calculating intra-cluster distance (distance between points in the same cluster). It also calculates the inter-cluster distance to identify which point belongs to which cluster (distance between the centroid of each cluster and points of other clusters). The system repeats these instructions until the stability of cluster centroids or reaching the iterations limit.
-Clustering every "trail" into one of three different classesEasyMedium and Hard.+
  
 ==== User matching ==== ==== User matching ====
  
-When a user searches for a hiking buddy, the app will look for another person with similar activities (has a number of trails within the same cluster).+ 
 +The main goal of this application is to give the users the possibility to find people, trail buddies, based on their hiking activities similarity. The user matching algorithm is quite simpleit relies on comparing the connected user with all application users.  
 +The comparison mechanism is based on two conditions; two trail buddies are similar, if the number of trails of the connected user is equal or lesser than 5% another one and if the connected users percentage of trails per cluster is equal or lesser than 5% another one. A set of similar trail buddies is then listed to the connected user with their phone number so he can contact them and organise a trail together.
  
 === Developped SOFTWARE === === Developped SOFTWARE ===
  
 == Screenshots and GUI description ==  == Screenshots and GUI description == 
 +Left to right:
 +  * Splash-screen
 +  * Login screen 
 +  * Main menu [start a trail or find a partner]
 +
 +{{ :projets:plim:20152016:ss-01.png |}}
 +
 +
 +Left: Tracking screen [Start or Stop tracking]
 +
 +Right: Find-a-buddy screen, where a list of matching users and their phone numbers gets displayed. 
 +
 +{{ :projets:plim:20152016:ss-02.png |}}
  
 == SOFTWARE PACKAGES of the Project == == SOFTWARE PACKAGES of the Project ==
 +  * [[https://github.com/RaedsLab/PLIM-TrailBuddies|Github]]
 +  * {{:projets:plim:20152016:plim-trailbuddies.rar|RAR file}}
  
 == Required SOFTWARE Environment == == Required SOFTWARE Environment ==
 +  - Microsoft Visual Studio 2015 Community 
 +  - Windows Phone 8.1 SDK
 +  - Parse [[https://www.parse.com/docs/dotnet/guide|.Net + Xamarin SDK]] >v1.6.1 (Requires sign-up)
 +  - [[https://www.nuget.org/packages/newtonsoft.json/|Newtonsoft.Json]] JSON framework for .NET
 +
  
 == How To build solution from project sources == == How To build solution from project sources ==
 +
 +You can build and test the solution from within Visual Studio.
 +The project has been tested on both emulator and real device.
 +
 +An account has been created for the purpose of the demo:
 +  * Username: **Demo**
 +  * Password: **1234**
 +
 +We are using [[https://www.parse.com|Parse]] to store the collected data and the users, so you will need to have internet access for this to work. 
 +
 +
 +== F.A.Q ==
 +
 +If you're going to use the //emulator//, make sure to provide the app with a number of locations so it could measure the traveled distance.
 +
 +For this demo an "//application Key//" and a "//.NET Key//" have been provided in the code. These keys are required when using the Parse SDK in order to store and retrieve data.
 +
 +If you're going to fork this project, you should locate '**ParseClient.Initialize**' in the code and change the previously mentioned keys.
 +
 +Documentation about the Parse SDK and a getting started guide are available [[https://www.parse.com/docs/dotnet/guide|here]].
  
  
 === HOW TO USE IT and RESULTS === === HOW TO USE IT and RESULTS ===
  
-== Video ==+== Tutorial video == 
  
-== Tutorial ==+{{http://www.youtube.com/v/RFEtDAr7iHc?.swf?400×333}}
projets/plim/20152016/gr6.1446205154.txt.gz · Dernière modification : 2015/10/30 11:39 de chammam