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

R Discussion :

Logique pour résoudre une problèmatique


Sujet :

R

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 28
    Points : 18
    Points
    18
    Par défaut Logique pour résoudre une problèmatique
    Bonjour à tous,

    Je dois résoudre de "la meilleure façon" la problématique suivante:

    J'ai un fichier de données contenant des informations sur des moyens de transport: Vitesse moyenne, accélération, freins, trajectoire etc.
    Le dernier champ de mes données est le type de transport: Train - Voiture - Non Connus.

    Mon objectif serait de faire un code en R afin de déterminer pour les moyens de transport inconnus si c'est un train ou une voiture.

    Ma logique serait la suivant:

    En fonction de la vitesse moyenne de mon moyen de transport inconnu, je prends X ligne de train et X ligne de voiture ayant la vitesse moyenne similaire.
    Après je pense faire la moyenne des autres champs ( accélération, trajectoire etc) en fonction du type (voiture ou train) et je regarde si ma valeur inconnue est plus proche du train ou de la voiture pour chaque champ.

    Qu'en pensez-vous?

    Merci par avance pour votre aide,

    Cdt,

    Selverine

    PS: Je ne demande pas le code juste un feedback sur ma logique :-)

  2. #2
    Membre averti
    Homme Profil pro
    Data Scientist
    Inscrit en
    Août 2013
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Data Scientist
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 139
    Points : 316
    Points
    316
    Par défaut
    Bonjour,

    Je ne sais pas si tu t'y connais en statistique/modélisation mais tu peux utiliser tes variables : Vitesse moyenne, accélération, freins, trajectoire etc. comme variable explicatives dans un modèle pour "prédire" la variable "type de transport".

    Le "truc" consisterait à utiliser les données où tu connais le type de véhicule (voitrue/train) pour faire apprendre ton modèle. En suite tu utilise ce modèle pour prédire dans les données ta classe inconnue. Certains modèles peuvent même te donner la probabilité d'appartenance du véhicule à la classe train ou voiture !

    Bref si tu vois un peu ce que je veux dire je peux te guider plus loin si tu veux !

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Janvier 2012
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2012
    Messages : 325
    Points : 888
    Points
    888
    Par défaut
    Et quelque soit la méthode que tu utilises pour voir si ça marche n'oublie pas de faire une validation croisée.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    Bonjour Theta, chautho,

    Merci pour vos réponses.
    Je dois bien l'avouer je n'ai pas du tout de connaissance sur la méthode que vous avez décrite.
    Je suis débutant. J'ai suivi un cours en ligne de R mais ce point n'a pas été abordé.

    Afin de ne pas vous poser 3000 stupides questions, est-ce que vous avez un bon tuto à me recommander pour la fabrication de modèle afin de prédire ma variable?

    Merci beaucoup!

    Selverine

  5. #5
    Membre averti
    Homme Profil pro
    Data Scientist
    Inscrit en
    Août 2013
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Data Scientist
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 139
    Points : 316
    Points
    316
    Par défaut
    Bonjour,

    Je te conseille le site http://wikistat.fr contenant de nombreuses resources (cours/scénario d'utilisation) pour tout ce qui est statistique, exploration des données et modélisation. Sinon tu peux regarder le site pour une utilisation plus rapide tu peux regarder ici : http://www.statmethods.net/advstats/cart.html et tester des arbre de classification (part sous R) ou randomforest qui est encore plus puissant (et performant).

    Aurais-tu un extrait de ton jeu de données pour que l'on puisse te guider ?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    Parfait! Je vais donc m'amuser avec ses tutoriels aujourd'hui :-).

    Ci-joint des données.
    Concernant les entêtes:

    PSD : Pourcentage de point GPS correctement mappé
    "std_speed" : Vitesse de dérivation
    Les _a sont pour les accélérations.
    Les _b pour les freins.

    Merci beaucoup pour ton aide!

    Selverine
    Fichiers attachés Fichiers attachés

  7. #7
    Membre averti
    Homme Profil pro
    Data Scientist
    Inscrit en
    Août 2013
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Data Scientist
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 139
    Points : 316
    Points
    316
    Par défaut
    Bonjour,

    J'ai un peu regardé tes données et essayer quelques trucs. J'obtiens des résultats plutôt pas mauvais avec Random Forest (forêts aléatoires), seule méthode que j'ai utilisé.

    J'ai utilisé le package caret (que je te conseille si tu souhaite faire de la modélisation).

    Si tu as besoin d'aide n'hésite pas à venir poser des questions !

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    Bonjour,

    Ok parfait. Je suis en plein apprentissage théorique sur la modélisation :-).
    Tu penses que je peux jeter un œil à ton code voir comment ça marche stp?

    Merci en tout cas pour ton aide.

    Selverine

  9. #9
    Membre averti
    Homme Profil pro
    Data Scientist
    Inscrit en
    Août 2013
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Data Scientist
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 139
    Points : 316
    Points
    316
    Par défaut
    Voici du code !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    #################
    #### Lecture ####
    #################
     
    donnees <- read.csv("voiture_ou_train.csv", sep = ",",header = T,
                        na.strings = "?")
     
    donnees_a_predire <- donnees[is.na(donnees$class),-which(colnames(donnees)=="class")]
    donnees_modele <- donnees[!is.na(donnees$class),]
     
    ######################
    #### Modélisation ####
    ######################
     
    library(caret)
    set.seed(777) # fixation du noyau aléatoire
     
    # Fonction pour assurer de faire de la validation croisée pour l'ajustement du modèle
    trControl <- trainControl(method = "cv", number = 10, classProbs = T)
     
    # Variable à prédire 
    Y <- donnees_modele$class
    # Variables explicatives
    X <- donnees_modele[,-which(colnames(donnees_modele)=="class")]
     
    # Séparation de nos données en échantillon d'apprentissage/test
    inTrain <- createDataPartition(donnees_modele[,1], p = 0.75, list = FALSE)
     
    trainY <- Y[inTrain]
    testY <- Y[-inTrain]
     
    trainX <- X[inTrain,]
    testX <- X[-inTrain,]
     
    # Ajustement des modèles (ex : random forest)
    rfFit <- train(trainX,trainY, method = "rf", 
                   trControl = trControl, tuneLength = 10)
    plot(rfFit)
     
    # Comparaison ajustement / réel 
    table(predict(rfFit,trainX),trainY)
    # Comparaison test / réel
    table(predict(rfFit,testX),testY)
     
    # Possibilité d'essaye d'autres modèles, liste ici :
    ?train_model_list
     
    #############################################
    #### Prévision sur l'échantillon inconnu ####
    #############################################
     
    donnees_a_predire$class_predite <- predict(rfFit,donnees_a_predire)

    Si tu veux vraiment bien comprendre la modélisation je t'encourage tout de même à regarder les cours de programmation /scénario du site que je t'ai passé qui te permettront de comprendre ce qui se passe derrière et pourquoi on fait tout ça.

    Je t'encourage aussi à essayer d'autres méthode que random forest. Par exemple une bête régression logistique ?

    Ensuite n'hésite pas à poser des question pour bien comprendre le code, le pourquoi du comment, etc...

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/12/2010, 14h31
  2. Réponses: 2
    Dernier message: 07/08/2010, 22h34
  3. cherche algorithme pour résoudre une question
    Par bayari dans le forum Ruby
    Réponses: 0
    Dernier message: 05/07/2010, 23h35
  4. Réponses: 2
    Dernier message: 13/04/2007, 02h22
  5. commande dos pour résoudre une adresse ip
    Par stephy dans le forum Développement
    Réponses: 2
    Dernier message: 17/12/2002, 14h04

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