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 :

Validation croisée crée des NA une ligne sur 2


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Etudiant
    Inscrit en
    Novembre 2015
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 156
    Par défaut Validation croisée crée des NA une ligne sur 2
    Je souhaite faire une validation croisée avec knnVCN et la base de donnnées iris: je retire une ligne de ma base de données et je tente de la prédire à l'aide de knnVCN. Cependant cela me donne des NA une ligne sur deux et je ne comprends pas pourquoi. Voici mon code de validation croisée :

    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
    install.packages("knnGarden")
    install.packages("cluster")
    #install.packages("e1071")
     
    library(cluster)
    library(knnGarden)
    good<-0
    for(i in 1:150){
      test <- iris[i,]
      train <- iris[-i,]
      result <- knnVCN(train[,-5], train[,5], test, K = 3, ShowObs=T,"maximum")
     
      print(result[i,5])
      print(result[i,6])
      if((result[i,5])==(result[i,6])){
        good<-good+1
      }
      print("siguiente ?????????")
     
    }
    Et la sortie est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    [1] setosa
    Levels: setosa
    [1] setosa
    Levels: setosa
    [1] "siguiente ?????????"
    [1] <NA>
    Levels: setosa
    [1] <NA>
    Levels: setosa
    Les première lignes jusqu'a "siguiente" sont bien : le modèle prédise les bonnes classes. Cependant cela me donne des NA à partir de la seconde itération. Pouvez vous m'aider à obtenir les classes plutôt que les NA ?

    Merci d'avance !

  2. #2
    Modératrice

    Femme Profil pro
    Statisticienne, Fondatrice de la société DACTA
    Inscrit en
    Juin 2010
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Statisticienne, Fondatrice de la société DACTA

    Informations forums :
    Inscription : Juin 2010
    Messages : 893
    Par défaut
    Bonjour,

    Voici déjà une première correction pour éviter les NA :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    print(result[i,5])
    print(result[i,6])
     
    # doit être remplacé par :
     
    print(result[1,5])
    print(result[1,6])
    Egalement, quand je fais tourner votre code, je rencontre des warnings :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Warning message:
    In rbind(TstX[i, ], TrnX) :
      number of columns of result is not a multiple of vector length (arg 1)
    Bonne continuation !


    Cordialement,


    A.D.

    Forum R
    Fournir le code utilisé (pensez aux balises code !), les packages nécessaires, ainsi qu'un court mais représentatif extrait du jeu de données et les éventuels messages d'erreur.
    Recherche d'informations concernant R : RSiteSearch / tutoriels : http://r.developpez.com/cours/ .

    Pensez également au bouton "Résolu" et à voter (en bas à droite des messages) lorsque vous avez obtenu une réponse satisfaisante.

Discussions similaires

  1. [XL-2013] Détecter des cellules Multi-Lignes sur une feuille
    Par jteterel dans le forum Excel
    Réponses: 5
    Dernier message: 11/12/2018, 21h44
  2. Réponses: 9
    Dernier message: 17/02/2011, 17h14
  3. Réponses: 3
    Dernier message: 30/08/2007, 08h56
  4. [Rave 5.0-Delphi 7] Griser une ligne sur deux
    Par Frank dans le forum Rave
    Réponses: 5
    Dernier message: 09/08/2006, 09h03
  5. coloriser une ligne sur deux
    Par the0livier dans le forum Langage
    Réponses: 3
    Dernier message: 12/09/2005, 10h54

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