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/11/21 15:41] – [User matching] 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 trail. These steps are done in a background-task
-==== Clustering ====+==== Machine learning and clustering ====
  
-Clustering every "trail" into one of three different classesEasyMedium and Hard.+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.
  
 ==== 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 ===
Ligne 73: Ligne 72:
   - Microsoft Visual Studio 2015 Community    - Microsoft Visual Studio 2015 Community 
   - Windows Phone 8.1 SDK   - Windows Phone 8.1 SDK
-  - Parse [[https://www.parse.com/docs/dotnet/guide|.Net + Xamarin SDK v1.6.2]] (Requires sign-up)+  - Parse [[https://www.parse.com/docs/dotnet/guide|.Net + Xamarin SDK]] >v1.6.(Requires sign-up)
   - [[https://www.nuget.org/packages/newtonsoft.json/|Newtonsoft.Json]] JSON framework for .NET   - [[https://www.nuget.org/packages/newtonsoft.json/|Newtonsoft.Json]] JSON framework for .NET
  
Ligne 102: Ligne 101:
 === 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.1448120506.txt.gz · Dernière modification : 2015/11/21 15:41 de chammam