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:gr11:gr11 [2017/02/19 15:37] blagouge |
cours:plim:projet16_17:gr11:gr11 [2017/02/19 23:32] (Version actuelle) blagouge |
||
---|---|---|---|
Ligne 10: | Ligne 10: | ||
**Un scénario d'illustration du Projet** | **Un scénario d'illustration du Projet** | ||
+ | |||
Utilisation du capteur de proximité et de la détection de mise en veille de l'écran pour savoir combien de temps notre téléphone passe dans notre poche et récupération du temps passé au téléphone par l’utilisateur. Puis clusterisation des utilisateurs en fonction de ces deux temps. L’utilisateur peut donc savoir de quel type d’utilisateur il fait partie . | Utilisation du capteur de proximité et de la détection de mise en veille de l'écran pour savoir combien de temps notre téléphone passe dans notre poche et récupération du temps passé au téléphone par l’utilisateur. Puis clusterisation des utilisateurs en fonction de ces deux temps. L’utilisateur peut donc savoir de quel type d’utilisateur il fait partie . | ||
**Critères de clusterisation** | **Critères de clusterisation** | ||
+ | |||
Nos hypothèses sont les suivantes : | Nos hypothèses sont les suivantes : | ||
- si le téléphone est en veille et le capteur de proximité "proche",le téléphone est dans une poche | - si le téléphone est en veille et le capteur de proximité "proche",le téléphone est dans une poche | ||
Ligne 39: | Ligne 41: | ||
__Rôle de l'application Android :__ | __Rôle de l'application Android :__ | ||
+ | |||
- Sauvegarder les changements d’états du capteur de proximité et du fait que l’écran du téléphone soit allumé ou non en BDD locale | - Sauvegarder les changements d’états du capteur de proximité et du fait que l’écran du téléphone soit allumé ou non en BDD locale | ||
+ | |||
- Envoyer les données sauvegardées au serveur en appuyant sur le bouton “Send Datas” | - Envoyer les données sauvegardées au serveur en appuyant sur le bouton “Send Datas” | ||
+ | |||
- Demander au serveur quel type d’utilisateur on sera pour un jour futur en sélectionnant une date future sur le calendrier | - Demander au serveur quel type d’utilisateur on sera pour un jour futur en sélectionnant une date future sur le calendrier | ||
__Rôle du serveur :__ | __Rôle du serveur :__ | ||
+ | |||
- Recevoir et stocker les données de chaque utilisateur en quatre catégories : “in_use” (c’est-à-dire que le téléphone est allumé mais que le capteur de proximité ne détecte rien), “not_in_use” (le téléphone est allumé et le capteur de proximité ne détecte rien), “pocket” (le téléphone est éteint et le capteur de proximité détecte quelque chose) ou “call” (le téléphone est allumé et le capteur de proximité détecte quelque chose) | - Recevoir et stocker les données de chaque utilisateur en quatre catégories : “in_use” (c’est-à-dire que le téléphone est allumé mais que le capteur de proximité ne détecte rien), “not_in_use” (le téléphone est allumé et le capteur de proximité ne détecte rien), “pocket” (le téléphone est éteint et le capteur de proximité détecte quelque chose) ou “call” (le téléphone est allumé et le capteur de proximité détecte quelque chose) | ||
+ | |||
- En fin de journée, passer les données de chaque utilisateur par l’algorithme de Random Forest pour leur associer un type d’utilisateur et stocker cet historique | - En fin de journée, passer les données de chaque utilisateur par l’algorithme de Random Forest pour leur associer un type d’utilisateur et stocker cet historique | ||
+ | |||
- Prévoir pour un jour donné dans quel type chaque utilisateur sera classé | - Prévoir pour un jour donné dans quel type chaque utilisateur sera classé | ||
**Cible mobile utilisée : Samsung S3 Mini ** | **Cible mobile utilisée : Samsung S3 Mini ** | ||
+ | |||
__Programmation :__ Android | __Programmation :__ Android | ||
__Caractéristiques techniques__ | __Caractéristiques techniques__ | ||
+ | |||
Fiche technique : http://www.samsung.com/fr/consumer/mobile-devices/smartphones/galaxy-s/GT-I8190MBAXEF | Fiche technique : http://www.samsung.com/fr/consumer/mobile-devices/smartphones/galaxy-s/GT-I8190MBAXEF | ||
__Capteurs disponible:__ | __Capteurs disponible:__ | ||
+ | |||
- accéléromètre | - accéléromètre | ||
Ligne 90: | Ligne 101: | ||
** API et librairies:** | ** API et librairies:** | ||
+ | |||
__Pour l'algorithme de Random Forest : __ Quickml, qui nous a permis d'intégrer Random Forest dans notre code Java ; la page principale se situe ici http://quickml.org/ | __Pour l'algorithme de Random Forest : __ Quickml, qui nous a permis d'intégrer Random Forest dans notre code Java ; la page principale se situe ici http://quickml.org/ | ||
Ligne 99: | Ligne 111: | ||
**Faisabilité du projet : ** | **Faisabilité du projet : ** | ||
+ | |||
Pour conclure le projet est totalement faisable.Android offre la possibilité d’avoir accès aux différents capteurs du téléphone donc le capteur de proximité. Nous pourrons donc aussi connaître le temps que le téléphone passe dans la poche de l’utilisateur. | Pour conclure le projet est totalement faisable.Android offre la possibilité d’avoir accès aux différents capteurs du téléphone donc le capteur de proximité. Nous pourrons donc aussi connaître le temps que le téléphone passe dans la poche de l’utilisateur. | ||
**Algorithme à mettre en oeuvre :** | **Algorithme à mettre en oeuvre :** | ||
+ | |||
Nous allons récupérer des temps d’utilisations et voulons les clusteriser afin de classifier les différents utilisateurs. | Nous allons récupérer des temps d’utilisations et voulons les clusteriser afin de classifier les différents utilisateurs. | ||
Nous avons utilisé Random Forest en mode supervisé avec le temps en métrique. | Nous avons utilisé Random Forest en mode supervisé avec le temps en métrique. | ||
**Exécutables, Git, How-to...** | **Exécutables, Git, How-to...** | ||
- | __Voici l'APK Android : __COUCOU À RAJOUTER | ||
- | __Voici l'exécutable Java du serveur : __COUCOU À RAJOUTER | + | __Voici l'APK Android : __ https://github.com/Sualty/ProjetELIM/blob/master/app-debug.apk |
+ | |||
+ | __Voici l'exécutable Java du serveur : __ https://github.com/Sualty/ProjetELIM/blob/master/elim-1.0-SNAPSHOT-jar-with-dependencies.jar | ||
__Voici le lien du git :__ https://github.com/Sualty/ProjetELIM.git | __Voici le lien du git :__ https://github.com/Sualty/ProjetELIM.git | ||
Ligne 114: | Ligne 129: | ||
__Comment utiliser notre projet?__ | __Comment utiliser notre projet?__ | ||
- | L'application Android peut se lancer en utilisant l'APK COUCOU REGARDER COMMENT FAIRE | + | L'application Android peut se lancer en utilisant l'APK : en transférant le fichier .apk vers le téléphone, en "cliquant" dessus, et en disant qu'on veut l'installer, ça l'installe. (il faut indiquer qu'on accepte les .apk de sources externes dans l'onglet "Sécurité" des paramètres. |
- | Le serveur peut se lancer en utilisant dans un terminal la commande COUCOU REGARDER COMMENT FAIRE | + | |
+ | |||
+ | Le serveur peut se lancer en utilisant dans un terminal la commande | ||
+ | java -jar elim-1.0-SNAPSHOT-jar-with-dependencies.jar | ||
Il faut noter que pour envoyer/recevoir des données de l'application ver le serveur ,il faut avoir le serveur lancé puis (re)lancer l'application. | Il faut noter que pour envoyer/recevoir des données de l'application ver le serveur ,il faut avoir le serveur lancé puis (re)lancer l'application. | ||