IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Statistiques, Data Mining et Data Science Discussion :

Classification de données


Sujet :

Statistiques, Data Mining et Data Science

  1. #1
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 25
    Par défaut Classification de données
    Bonjour à tous,

    Dans le cadre d'un projet pour l'université, il nous est demandé de concevoir un système électronique dont le but est de mettre au point un système permettant de détecter les types de démarches à risque (susceptibles de chute), chez les personnes âgées.

    Ainsi, après avoir développé un réseau d'accéléromètres, nous recevons un paquet de données contenant des accélérations selon X, Y et Z des 10 capteurs par échantillon recueilli.

    Pour tester notre système, nous avons demandé à plusieurs étudiants de s'équiper des capteurs et de tester ceux-ci dans deux situations : une marche de 10m à plat, et une montée d'environ 15 marches.

    La prochaine étape est celle qui me pose le plus problème : il s'agit de pouvoir implémenter un ou plusieurs algorithmes de classification de données sous MatLab.

    Pour faire simple, nous allons commencer par implémenter un algorithme qui, sur base d'un échantillon que nous chargeons, va distinguer s'il s'agit d'une marche de type "à plat" ou de type "en escaliers" (les autres distinctions (démarches lentes, hésitantes, etc.) viendront plus tard).

    Seulement voilà, je n'ai aucune connaissance sous MatLab (si en fait, je sais charger mes données et faire un plot), et je ne vois donc vraiment pas comment faire. On nous a parlé d'algorithmes basiques (nearest neighbour, etc.), mais je ne vois absolument pas comment les implémenter.

    Pouvez-vous m'aider? M'orienter? je suis preneur de toutes bonnes infos ^^

    Un tout grand merci.

    Jérôme

  2. #2
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2007
    Messages
    979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 979
    Par défaut
    Salut,

    J'avais vu un projet matlab qui fait presque la même choses, cherche le sur le net .

    Il utilisait l'analyse par composantes principales (PCA).

    ++ bonne chance

  3. #3
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 25
    Par défaut
    Oui, mais justement je ne trouve rien...

    Quelqu'un pourrait (par exemple), m'expliquer comment approximer un signal ? (transformée de fourier?)

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Cette discussion ne concerne pas à proprement parler MATLAB (pour l'instant).
    Je la déplace dans le forum adéquat

  5. #5
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par mr_samurai Voir le message
    J'avais vu un projet matlab qui fait presque la même choses, cherche le sur le net .

    Il utilisait l'analyse par composantes principales (PCA).
    Il y a ce court document qui explique le concept:

    Recognizing human motion with multiple acceleration sensors
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  6. #6
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonjour,

    en fait, tu es en plein dans l'IA, donc je vais mettre cette discussion où il faut.

    Sinon, pour ton petit problème, il y a une ToolBox MatLab qui comporte tous les algorithmes que tu souhaites, donc inutile de les implémenter. Mais l'algorithme n'est pas le problème que l'on souhaite résoudre (ben ouai :aie).

    Dans ce genre de cas, tu es sur de l'apprentissage surpervisé. Pour chaque marche que tu vas donner à ton classifieur, tu connais son type : plat, montée, escalier, ...
    Mais ton classifieur doit travailler avec ce que l'on nomme un vecteur caractéristique. C'est-à-dire un ensemble de valeurs qui décrivent la marche. Je pense que donner toutes les informations d'accélération sur 10m ne devrait pas donner une bonne solution. Il est plutôt nécessaire de donner des informations plus pertinentes : accélération max, min, moyenne, écart type, etc. Ca c'est juste la base, il faut quelque chose d'un peu plus costaud (pertinent).
    En bref, qu'est ce que tu utilises comme descripteur de ta marche ?

    Si tu donnes toutes les suites d'accélérations, ton classifieur va se contenter d'apprendre par coeur sur l'échantillon d'apprentissage et sera sans doute incapable de généraliser C'est-à-dire qu'il ne sera pas quoi faire dès que la marche qu'on lui demandera d'analyser sera légèrement différente de celles sur lesquelles il a appris.

    Au fait, combien de marche différentes as tu pour faire travailler ton classifieur ?
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  7. #7
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 25
    Par défaut
    Merci de vos réponses, tout d'abord

    Je dispose d'une vingtaine d'échantillons : 10 où l'on marche 5-6m sur un sol plat, et 10 où l'on monte 20 marches.

    L'idée de la moyenne est vraiment intéressante, je n'y avais pas pensé.

    Personnellement, je partais dans l'optique de pouvoir "classer" mes nouveaux échantillons mais en "brut" (sans traitement), et je n'y parvenais vraiment pas à cause des nombreux défauts de chaque signaux (si pour un échantillon donné, celui qui marche avec les capteurs attend 3 secondes avant de commencer à marcher... bref, c'est pas un bon système).

    Je vais réfléchir de mon côté aux "descripteurs". Je vous tiens au courant. Merci beaucoup

  8. #8
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonjour,

    un ensemble formée de 20 échantillons, c'est vraiment pas évident pour travailler. L'apprentissage sera forcément limité (même trop) et tu devras valider en "Leave One Out".
    Je te conseille d'essayer d'obtenir beaucoup plus d'échantillons. Le double me semble VRAIMENT le minimum et encore...

    Si tu ne veux pas utiliser de descripteurs, comment comptes tu faire ? Il faudrait pour comparer les marches, que les conditions soient EXACTEMENT identiques au démarrage (donc recaler les marches les unes avec les autres). Si tu y parviens, tu pourras alors essayer très facilement les k-plus proches voisins. Dans ce genre de comparaison brute, cette méthode apporte souvent de très bon résultats.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  9. #9
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 25
    Par défaut
    Bonjour!

    Petit up au niveau de mon projet.
    Donc comme dit précédemment, j'ai tenté les discriminations à l'aide de descripteurs de la démarche : moyenne, min, max, std, var (5 statistiques calculées pour chaque axe (x, y, z) pour chaque capteur (8 au total) placé sur chaque individu.

    J'ai ensuite tenté de calculer les 10 plus gros écarts entre une démarche à plat et une démarche en escaliers, pour un même individu (considérons un seul individu comme 2 échantillons, puisque la même personne a à chaque fois pris les mêmes mesures).

    Seulement, après tests, les moyenne, std, var sont presque toujours pareilles. La discrimination sur les min/max était possible, mais là nous avons été confrontés à un problème que nous n'avions pas soupçonné : discriminer pour un individu, ça marche (si on a ses signaux plats/escaliers, on sait dire lequel est quoi), mais entre des personnes différentes, impossible (l'écart est toujours le même entre plat/escaliers pour une même personne, mais pas pour deux personnes différentes).

    Au niveau de la variance et de l'écart-type, si aucun écart significatif n'est trouvé tandis que les graphes ont des allures completement différentes, c'est sans doute qu'il y a un bruit.

    La prochaine étape (qui me pose problème) est la suivante : comment retirer le bruit d'un signal sous matlab?

    Je pense qu'un autre point très important serait de pouvoir constituer un filtre passe-haut/passe-bas et de discriminer sur base des fréquences de pas.

    Qu'en dites-vous?

  10. #10
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonjour,

    j'en dis que dans ton cas, tu dois savoir ce que tu appelles le bruit Car tu as des accélérations qui forment des pics et la plupart des méthodes de débruitage suppriment ces pics.

    Est ce que tu as pensé à normer les données avant de faire les différents calculs. Cela te permettra déjà de réduire un peu les différences entre les personnes.

    Je suis étonné que le max ne soit pas différent entre la marche à plat et en montée d'un escalier.

    Sinon je pense que prendre les gradients de ton signal sera déjà plus significatif en terme de descripteurs.

    As tu pensé à étudier la périodicité de la marche ? Sur le plat, chaque personne marche à sa vitesse et avec son amplitude propre. Dans un escalier, la vitesse reste propre, mais l'amplitude est conditionnée par la taille des marches.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

Discussions similaires

  1. Base de données test pour classification
    Par Gualdim dans le forum Intelligence artificielle
    Réponses: 5
    Dernier message: 03/06/2011, 21h46
  2. Classifications de données
    Par Glorfindel555 dans le forum R
    Réponses: 6
    Dernier message: 23/02/2011, 23h24
  3. Réseau de neurones : classification de données
    Par a7med85 dans le forum Méthodes prédictives
    Réponses: 2
    Dernier message: 13/06/2010, 11h58
  4. Réponses: 2
    Dernier message: 17/04/2008, 00h56
  5. classification d'une base de données des connexion réseau
    Par jour_j dans le forum Développement
    Réponses: 0
    Dernier message: 30/11/2007, 15h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo