1. #1
    Membre régulier

    Inscrit en
    août 2007
    Messages
    299
    Détails du profil
    Informations forums :
    Inscription : août 2007
    Messages : 299
    Points : 99
    Points
    99
    Billets dans le blog
    1

    Par défaut Classification supervisée sur des données binaires

    Bonjour,

    j'ai des données dont les attributs sont binaires. Puis-je appliquer des techniques de classification classiques telles que
    KNN, SVM etc? (j'utilise les fonctions de sklearn)
    merci

  2. #2
    Membre éprouvé

    Homme Profil pro
    Data Scientist & Statisticien
    Inscrit en
    février 2009
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Data Scientist & Statisticien
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : février 2009
    Messages : 411
    Points : 1 027
    Points
    1 027
    Billets dans le blog
    2

    Par défaut

    Bonjour,

    Il me semble que le cadre générale pour appliquer sur un jeu de données des algorithmes comme SVM ou régression logistique par exemple, il faut que les données soient binaires. Dans le cas de données non binaires, il est nécessaire de s'y ramener en transformant les données qualitatives en autant de données binaires que de facteurs.

    Au plaisir de te lire.

  3. #3
    Responsable Qt


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherches
    Inscrit en
    août 2008
    Messages
    22 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur de recherches
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2008
    Messages : 22 176
    Points : 119 657
    Points
    119 657

    Par défaut



    Non, pas besoin de transformer en discret pour du kNN (il suffit d'utiliser une distance euclidienne ou quelque chose de classique du genre) ou en SVM (c'est une régression linéaire un peu améliorée, en gros). Ces mêmes algos fonctionnent aussi bien en discret qu'en continu, ils ne tiendront juste pas compte de la spécificité des données discrètes. Pour ça, regarde plutôt des arbres de décision ou des forêts d'arbres, mais tu n'auras pas forcément de meilleurs résultats.
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions) ? Contactez-moi par MP.

    Nouveau ! Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  4. #4
    Membre régulier

    Inscrit en
    août 2007
    Messages
    299
    Détails du profil
    Informations forums :
    Inscription : août 2007
    Messages : 299
    Points : 99
    Points
    99
    Billets dans le blog
    1

    Par défaut

    Merci pour vos réponses.
    Précisément j'ai fait des tests avec les algorihtmes tels que:
    KNeighborsClassifier
    GaussianNB
    svm.SVC
    DecisionTreeClassifier

    disponibles sous skleran et ça fonctionne bien mais comme vous me l'avez dit ça ne tient pas nécessairement compte de la spécifié des données et c'est ce point là qui me dérange. Est-ce que je peux considérer donc que e résultat est fiable?

    merci

  5. #5
    Responsable Qt


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherches
    Inscrit en
    août 2008
    Messages
    22 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur de recherches
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2008
    Messages : 22 176
    Points : 119 657
    Points
    119 657

    Par défaut

    Citation Envoyé par nina2007 Voir le message
    Est-ce que je peux considérer donc que e résultat est fiable?
    Calcule l'erreur avec quelque chose comme une validation croisée : estimer l'erreur que tu effectues sur des données que tu n'as pas encore vues. L'arbre de décision, qui tient compte de la nature discrète des données, est peut-être le plus mauvais algorithme…
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions) ? Contactez-moi par MP.

    Nouveau ! Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  6. #6
    Membre régulier

    Inscrit en
    août 2007
    Messages
    299
    Détails du profil
    Informations forums :
    Inscription : août 2007
    Messages : 299
    Points : 99
    Points
    99
    Billets dans le blog
    1

    Par défaut

    oui c'est ce que j'ai fait. Je calcule le score de classification avec une validation croisée mais malgré çà je doute de la fiabilité du résultat tant que l'algo ne prends pas en considération la nature de mes données!!!

  7. #7
    Responsable Qt


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherches
    Inscrit en
    août 2008
    Messages
    22 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur de recherches
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2008
    Messages : 22 176
    Points : 119 657
    Points
    119 657

    Par défaut

    Pourtant, cette erreur te donne tout ce que tu dois savoir pour dire si un algo fonctionne bien ou pas .
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions) ? Contactez-moi par MP.

    Nouveau ! Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  8. #8
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    décembre 2013
    Messages
    1 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : décembre 2013
    Messages : 1 338
    Points : 2 847
    Points
    2 847

    Par défaut

    Il y a 2 questions qu'il ne faut pas confondre :
    - Est-ce que'un algorithme marche dans tel ou tel environnement ?
    - Est-ce que avec tel jeu de données, mon algorithme permet de donner de bons résultats ?

    Si un algorithme sait traiter des textes, ou des variables numériques continues, alors a fortiori, il sait traiter des données binaires. Il peut y avoir des exceptions, mais normalement, un algorithme qui marche avec des données compliquées marche aussi avec des données simples.

    Mais prenons 2 exemples de problèmes de classification, avec des données binaires :
    exemple 1 :
    Pour chaque individu, je lui demande :
    - Etes-vous né en janvier ?
    - Etes-vous né en février ?
    - Etc
    - Etes-vous né en décembre ?
    Et à partir de là, j'essaie de déduire le signe du zodiaque de l'individu. Globalement, avec un algorithme X, je vais obtenir des résultats pas ridicules.

    Exemple 2
    Pour chaque individu, je lui demande :
    - Etes-vous Homme u femme
    - Avez-vous le Bac
    - Vivez-vous en province ?
    - Etes-vous marié ?
    - etc , une dizaine de questions du même genre.
    Et, à partir de là, même exercice, j'essaie de déduire le signe du zodiaque de chaque individu.

    Le même algorithme, qui marchait biens dans l'exemple 1 ne marche plus dans l'exemple 2. Ce n'est pas l'algorithme qui est en cause, ce sont les données.

    Dans ton cas, il faut pousser l'analyse plus loin, mais a priori, si tu n'obtiens pas des résultats satisfaisants, c'est peut-être à cause de l'algo, mais c'est plus probablement à cause des données.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  9. #9
    Membre expérimenté Avatar de davcha
    Profil pro
    Inscrit en
    avril 2004
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 1 257
    Points : 1 440
    Points
    1 440

    Par défaut

    On t'a dit qu'il suffit de calculer une distance (euclidienne par exemple) pour utiliser knn ou autre... Bon en fait c'est quand même beaucoup plus compliqué que ça.

    Tu as des données vectorielles, binaires. Ok. Et tu as une décision à prendre par rapport à la classe de chacun des objets que tu considères. Le truc c'est que si tu prends une distance euclidienne "toute bête", tu considères que chaque composante de ton vecteur a la même importance.

    Par exemple, imaginons que tes données sont des gens et que ta décision est de savoir s'ils sont malades ou non et qu'elle maladie ils ont. Ensuite dans ton vecteur disons qu'il ya une composante qui indique qu'elle est la couleur de leur voiture. Dans le cas d'une distance euclidienne toute bête, la couleur de leur voiture aura autant d'importance que l'état de leur foie. Pour prédire les maladies c'est un peu con.

    Bref. Les algos marchent bien. Mais il faut leur donner de bonnes données. Plutôt qu'une distance euclidienne, une distance de mahalanobis est plus intéressante. Ça implique que tu douces commencer par trouver une transformation de tes données qui permette de faire le boulot correctement. Et ça c'est un sujet de recherche en soi.

    Ceci dit tu as beaucoup de littérature sur le sujet. Regarde tout ce qui est classification et clustering semi supervisé.

  10. #10
    Membre régulier

    Inscrit en
    août 2007
    Messages
    299
    Détails du profil
    Informations forums :
    Inscription : août 2007
    Messages : 299
    Points : 99
    Points
    99
    Billets dans le blog
    1

    Par défaut

    Merci bien pour vos commentaires pertinents.
    Vous me confirmez mes doutes: un algo tourne à 90% des cas et donne un résultat et la conclusion si le résultat n'est pas bon, ce n'est pas forcément que l'algo n'est pas fiable, c'est probablement les données ne sont pas adéquates !!!
    Merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quel algorithme de classification supervisée avec des données mixtes ?
    Par ELSAYUCEF dans le forum Méthodes prédictives et apprentissage automatique
    Réponses: 5
    Dernier message: 22/11/2016, 15h33
  2. Réponses: 0
    Dernier message: 29/09/2014, 19h59
  3. Réponses: 12
    Dernier message: 02/01/2006, 22h13
  4. Réponses: 5
    Dernier message: 13/07/2005, 10h03
  5. Travailler sur des données qui doivent être triées
    Par haypo dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 19/07/2003, 17h13

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