Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
cours:plim:projet16_17:gr8:gr8 [2016/10/24 22:24] qsalmeron [Matériel disponbile] |
cours:plim:projet16_17:gr8:gr8 [2017/02/17 16:47] (Version actuelle) qsalmeron [APK] |
||
---|---|---|---|
Ligne 15: | Ligne 15: | ||
Un autre jour, l’anniversaire de Charles, un collègue de travail, arrivera. Ce jour-là, Circle Messenger proposera à Bobby d’envoyer à Charles un message lui souhaitant un joyeux anniversaire, mais sur un ton plus formel. | Un autre jour, l’anniversaire de Charles, un collègue de travail, arrivera. Ce jour-là, Circle Messenger proposera à Bobby d’envoyer à Charles un message lui souhaitant un joyeux anniversaire, mais sur un ton plus formel. | ||
+ | === Activité reconnue === | ||
+ | |||
+ | Notre application a pour but de catégoriser les contacts en fonction des interactions avec l'utilisateur. Nous allons donc reconnaître la relation entre l'utilisateur et ses contacts à partir de leur communication. | ||
+ | |||
+ | == Algorithme mis en oeuvre == | ||
+ | |||
+ | Le but de notre application étant avant tout de catégoriser les contacts de l’utilisateur, nous avons choisi comme type d’algorithme le clustering, un algorithme non supervisé répondant exactement à notre besoin. | ||
+ | Nous avons choisi plus particulièrement l’algorithme K-means, algorithme qui nous a été présenté et facile à utiliser. | ||
+ | Pour notre algorithme, nous utilisons comme métrique les différentes informations récupérées par les sondes du smartphone traitées pour n’obtenir que ce qui suit : | ||
+ | |||
+ | Les types de données suivants sur une période d'une heure : | ||
+ | |||
+ | |Nombre de SMS|Nombre d'appels|temps d'appel cumulé|Temps d'appel moyen|Est en semaine|Moment de la journée (matinée, journée, soirée)|Contact Type| | ||
==== Matériel disponbile ==== | ==== Matériel disponbile ==== | ||
* Référence du SmartPhone : Huawei Honor 5C | * Référence du SmartPhone : Huawei Honor 5C | ||
* Caractéristiques techniques | * Caractéristiques techniques | ||
- | * {{ :cours:plim:projet16_17:gr8:stat_honor.png?300 |}} | + | * {{:cours:plim:projet16_17:gr8:stat_honor.png?300|}} |
* Résumé des fiches techniques en terme de ressources du SmartPhone (capteurs mais aussi Data collectés par le Mobile) | * Résumé des fiches techniques en terme de ressources du SmartPhone (capteurs mais aussi Data collectés par le Mobile) | ||
* Caractéristiques de l'OS et des environnements logiciels utilisables pour développer sur ce SmartPhone | * Caractéristiques de l'OS et des environnements logiciels utilisables pour développer sur ce SmartPhone | ||
Ligne 33: | Ligne 46: | ||
==== Ressouces utilisées dans le Projet ==== | ==== Ressouces utilisées dans le Projet ==== | ||
- | * Liste des capteurs mais aussi Data collectés par le Mobile, utilisés pour le projet : | + | * Liste des capteurs mais aussi Data collectés par le Mobile, utilisés pour le projet |
- | * Journal d’appels | + | * Journal d'appels |
- | * Journal de SMS | + | * Journal de SMS |
- | * Répertoire de contacts | + | * Répertoire de contacts |
* Liste des SDK et API pour l'accès à ces informations | * Liste des SDK et API pour l'accès à ces informations | ||
- | * Environnement de logiciel : | + | * Environnement de logiciel : Android Studio |
- | * Android Studio | + | * Version OS : Android 6.0 (API 23) |
- | * Version OS : | + | * [[https://developer.android.com/about/versions/marshmallow/android-6.0.html|Lien vers la page de doc]] |
- | * Android 6.0 (API 23) | + | |
- | * [[http://example.com|Lien vers la page de doc]] | + | |
* Conclusion sur la Faisabilité du Projet | * Conclusion sur la Faisabilité du Projet | ||
+ | * Tout d’abord, le SDK Android 6.0 (API 23) noud permet d’accéder aux sondes dont nous avons besoin. <del>Ensuite, la bibliothèque « Java Machine Learning Library » nous permet d’utiliser l’algorithme K-means en Java. [[http://java-ml.sourceforge.net/api/0.1.7/net/sf/javaml/clustering/KMeans.html|La documentation ici]]</del> | ||
+ | * Au final nous avons utilisé la librairie RandomForest du langage R que nous avons couplé avec un serveur PHP qui permet de faire la passerelle entre notre application mobile et notre serveur. Coté serveur nous avons donc mis en place un systeme qui permet de faire l'apprentissage grâce aux données collectés. Un système qui permet de récupérer les données depuis l'application et un système qui permet d'estimer un type de contact grâce à une liste de vecteur de celui-ci. | ||
+ | ==== Rendu final ==== | ||
- | ==== Rendu du 24/10/2016 ==== | + | Dépôt GitHub : https://github.com/KingdomCodeur/Circle-Messenger |
- | === Circle Messenger === | + | |
- | + | ||
- | + | ||
- | == Membres du groupe == | + | |
- | + | ||
- | Aurélien COLOMBET et Quentin SALMERON | + | |
- | + | ||
- | == Définition du sujet de projet == | + | |
- | + | ||
- | == Ecrire un scénario d’utilisation sur 10 lignes max == | + | |
- | Bobby est une personne débordée, mais il tient à envoyer des messages d’anniversaire à ses contacts. | + | |
- | Aujourd’hui, c’est l’anniversaire d’Alexandra, une amie de Bobby. Notre application Circle Messenger catégorise Alexandra comme faisant partie de son cercle d’amis à partir des données récupérées dans le journal d’appels et le journal de SMS. Bobby reçoit une notification lui informant que c’est l’anniversaire d’Alexandra, et lui propose un message personnalisé pour lui souhaiter un bon anniversaire sur un ton familier. | + | |
- | Un autre jour, l’anniversaire de Charles, un collègue de travail, arrivera. Ce jour-là, Circle Messenger proposera à Bobby d’envoyer à Charles un message lui souhaitant un joyeux anniversaire, mais sur un ton plus formel. | + | |
- | == Définir la cible mobile que vous allez utiliser == | + | |
- | Notre projet a pour cible mobile Android, version 6.0. Nous avons à notre disposition deux smartphones : | + | |
- | * Huawei Honor 5C : | + | |
- | {{ :cours:plim:projet16_17:gr8:stat_honor.png?300 |}} | + | |
- | + | ||
- | * Huawei P8 : | + | |
- | {{ :cours:plim:projet16_17:gr8:stathuawei.png?300 |}} | + | |
- | + | ||
- | == Définir l’environnement logiciel que vous allez utiliser == | + | |
- | Nous partons sur un développement natif sur Android. Nous allons utiliser l’environnement logiciel d’Android Studio pour le développement de notre application. | + | |
- | + | ||
- | == Définir l’activité que vous allez reconnaître et utiliser == | + | |
- | Notre application a pour but de catégoriser les contacts en fonctions des interactions avec l’utilisateur, nous allons donc reconnaître la relation entre l’utilisateur et ses contacts. | + | |
- | + | ||
- | == Définir les capteurs que vous allez utiliser == | + | |
- | Circle Messenger n’aura pas besoin d’utiliser des capteurs présents sur le smartphone, mais plusieurs sondes, les principales étant le journal d’appel, le journal de SMS et le répertoire de contacts. | + | |
- | + | ||
- | == Définir les algorithmes que vous allez mettre en œuvre == | + | |
- | Le but de notre application étant avant tout de catégoriser les contacts de l’utilisateur, nous avons choisi comme type d’algorithme le clustering, un algorithme non supervisé répondant exactement à notre besoin. | + | |
- | Nous avons choisi plus particulièrement l’algorithme K-means, algorithme qui nous a été présenté et facile à utiliser. | + | |
- | Pour notre algorithme, nous utilisons comme métrique les différentes informations récupérées par les sondes du smartphone traitées pour n’obtenir que ce qui suit : | + | |
- | {{ :cours:plim:projet16_17:gr8:vector.png |}} | + | |
- | + | ||
- | + | ||
- | == Vérifier la faisabilité de vos choix en énumérant les solutions technologiques et surtout logicielles qui seront mises en œuvre == | + | |
- | + | ||
- | Tout d’abord, le SDK Android 6.0 (API 23) noud permet d’accéder aux sondes dont nous avons besoin. Ensuite, la bibliothèque « Java Machine Learning Library » nous permet d’utiliser l’algorithme K-means en Java : | + | |
- | + | ||
- | Classe KMeans : http://java-ml.sourceforge.net/api/0.1.7/net/sf/javaml/clustering/KMeans.html | + | |
- | + | ||
- | + | ||
- | + | ||
+ | APK : https://drive.google.com/file/d/0B-AGqqBLH05SV0kxLXJob0dxRDQ/view?usp=sharing |