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

Méthodes prédictives Discussion :

Perceptron multicouche avec R


Sujet :

Méthodes prédictives

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 7
    Points : 3
    Points
    3
    Par défaut Perceptron multicouche avec R
    Bonjour je travail sur les perceptrons multicouches sous R. Mes valeurs prédites sont trop grandes par rapport aux valeurs observées, j'utilise nnet(). Si quelqu'un a une idée

  2. #2
    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 : 45
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Est ce que tu as déjà vérifié que ton PMC avait convergé correctement ? Comment sont les valeurs prédictives sur l'échantillon d'apprentissage ?
    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.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    comment savoir si elles sont bien convergées. Voila ce que j'ai
    BH adn aup ddn dmn dmx dup rrg rsd vav
    1567 38.85714 139.1429 165.4286 87.28571 143.5714 121.4286 130.85714 41.42857 36.57143
    446 45.85714 149.7143 166.5714 81.71429 139.2857 116.1429 104.00000 38.57143 37.85714
    1192 45.85714 149.7143 166.5714 81.71429 139.2857 116.1429 104.00000 38.57143 37.85714
    452 42.14286 151.1429 52.2857 79.14286 136.1429 128.0000 97.71429 30.00000 25.57143
    984 45.00000 154.4286 172.0000 94.00000 150.5714 117.0000 125.71429 44.14286 45.28571
    1195 43.42857 153.2857 159.5714 79.28571 139.4286 111.0000 129.28571 44.71429 47.28571
    vmn vmx
    1 4.000000 135.8571
    2 5.571429 110.0000
    3 5.571429 110.0000
    4 5.142857 102.8571
    5 7.000000 133.7143
    6 9.142857 139.4286
    je dois prédire BH et mes variables d'entrées sont "adn" jusqu'à "vmx"(11 variables) et le nombre total de mes données est n=263
    le code que j'utilise est:
    library(e1071)
    tune.model=tune.nnet(BH~.,data=datappr,size=c(1:10),decay=c(1,2,3,4,5,6,7,8,9,10),maxit=700,linout=TRUE, skip=FALSE)
    tune.model
    nnet.BH=nnet(BH~.,data=datappr,size=10,decay=1.1,linout=TRUE,maxit=500)
    fit.BH=predict(nnet.BH,data=datappr)
    pred.BH=predict(nnet.BH,newdata=datatest)

    j'ai pris le 2/3 de mes données pour l'apprentissage (datappr) et le 1/3 pour la validation (datatest)

  4. #4
    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 : 45
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Combien y a t-il de poids dans ton RdN ?
    Vérifie la convergence de l'erreur. A chaque itération tu affiches l'erreur
    Puis regarde la prédiction de ton RdN sur les données d'apprentissage.
    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.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    j'ai obtenu le meilleur résultat avec le code suivant
    nnet.BH=nnet(BH~.,data=datappr,size=7, decay=2.7, linout=TRUE, maxit=700, skip=FALSE)
    le nombre de poids est 92
    # weights: 92
    initial value 434082398.305049
    iter 10 value 102730984.905465
    iter 20 value 88177113.166667
    iter 30 value 79036493.459332
    iter 40 value 65782813.864365
    iter 50 value 49429014.486526
    iter 60 value 48790958.393096
    iter 70 value 46727838.984821
    iter 80 value 46599966.575291
    iter 90 value 46574367.708901
    iter 100 value 46204357.680247
    iter 110 value 46000104.917432
    iter 120 value 45991553.541503
    iter 130 value 45986089.241041
    iter 140 value 45955230.122224
    iter 150 value 44993893.854332
    iter 160 value 44950894.119817
    iter 170 value 44925477.017620
    iter 180 value 44609298.124928
    iter 190 value 44375671.550459
    iter 200 value 43538582.346899
    iter 210 value 43450005.147318
    iter 220 value 41861691.496546
    iter 230 value 41417209.217778
    iter 240 value 40890616.766539
    iter 250 value 40338418.313716
    iter 260 value 40201814.617514
    iter 270 value 40116678.534994
    iter 280 value 39129036.880174
    iter 290 value 38961019.741012
    iter 300 value 38797477.103242
    iter 310 value 38772485.612863
    iter 320 value 38717675.044394
    iter 330 value 38015539.677562
    iter 340 value 37759470.528213
    iter 350 value 37735124.556076
    iter 360 value 37697295.296434
    iter 370 value 37631903.065848
    iter 380 value 37540608.792998
    iter 390 value 37406635.021537
    iter 400 value 37393364.111249
    iter 410 value 37352390.514452
    iter 420 value 37147246.147238
    iter 430 value 37104504.140447
    iter 440 value 37083512.591447
    iter 450 value 37052473.373915
    iter 460 value 36986988.101031
    iter 470 value 36972010.615317
    iter 480 value 36708912.984989
    iter 490 value 36673578.067852
    iter 500 value 36620574.218810
    iter 510 value 36573757.685459
    iter 520 value 36529068.774252
    iter 530 value 36516367.109189
    iter 540 value 36510651.859370
    iter 550 value 36413166.998100
    iter 560 value 36352188.122223
    iter 570 value 36327005.934122
    iter 580 value 36304138.264184
    iter 590 value 36159534.333170
    iter 600 value 36136591.361918
    iter 610 value 36132486.478737
    iter 620 value 36091131.234966
    iter 630 value 35813171.229594
    iter 640 value 35770382.196043
    iter 650 value 35739529.577831
    iter 660 value 35721226.813252
    iter 670 value 35508253.122215
    iter 680 value 35436809.326344
    iter 690 value 35400937.119890
    iter 700 value 35350841.118849
    final value 35350841.118849
    stopped after 700 iterations

    l'erreur je l'ai calculé en faisant
    erreur.rate=function(test.data,model){
    pred=predict(model, newdata=test.data, type="raw")
    mc=table(test.data$BH, pred)
    erreur=1-sum(diag(mc))/sum(mc)
    return(erreur)
    }
    #printing the error rate on the test set
    print(erreur.rate(datatest,nnet.BH))

    et j'obtient 0.97 pour l'apprentissage et 0.95 pour la validation
    et quand je fais la régression entre valeurs prédites et observées, j'obtient R_carré=0.7 pour l'apprentissage et 0.6 pour la validation

  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 : 45
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Donc ton RdN converge, mais peut être pas de manière optimale. Peut être bloque tu dans un minimum local.


    Citation Envoyé par Cherif88 Voir le message
    j'ai obtenu le meilleur résultat avec le code suivant
    nnet.BH=nnet(BH~.,data=datappr,size=7, decay=2.7, linout=TRUE, maxit=700, skip=FALSE)
    Je ne connais pas cette librairie, donc je ne sais pas à quoi ça correspond.


    Citation Envoyé par Cherif88 Voir le message
    le nombre de poids est 92
    # weights: 92
    Ok.
    Quelle est la taille de ton échantillon d'apprentissage ?


    Citation Envoyé par Cherif88 Voir le message
    j'obtient 0.97 pour l'apprentissage et 0.95 pour la validation
    A quoi est ce que cela correspond ?
    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
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    ma taille de mon échantillon d'apprentissage est 175 et celle du test ou de validation 88

  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 : 45
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Tu fais clairement du sur-apprentissage. Une des première règle avec un RdN c'est d'avoir au moins 3 ou 4 fois plus d'individus dans l'échantillon d'apprentissage que de poids.
    Donc ton RdN apprend par coeur ton échantillon d'apprentissage et ne sait absolument pas quoi faire sur celui de test, ce qui expliquerait les valeurs trop grandes.

    De plus, comment as tu déterminé quel individu appartient à quel échantillon ?
    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
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Pour le choix des individus dans les échantillon, j'ai utilisé un tirage aléatoire en prenant 2/3 des données pour l'apprentissage et le 1/3 pour le test.

    Quel package de R connaissez-vous permettant de construire des RdN en gérant les poids ?

  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 : 45
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Je n'utilise pas R.
    Mais à toi de décider le nombre de neurones dans ta couche cachée. Avec 175 individus cela veut dire que tu dois avoir autour de 35 poids. Comme tu as 11 entrées, je dirais donc 3 neurones dans la couche cachées, ce qui ferait un total de 36 poids (33 dans la couche cachée et un dans la couche de sortie). Tu aurais ainsi un peu moins de 5 individu par poids et c'est raisonnable. Tu peux essaye d'en mettre un quatrième, mais ça risque d'être dangereux... tu peux tester.

    Maintenant, est ce que tu as testé tes entrées ?
    Est ce qu'elles sont toutes pertinentes ?
    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. Réponses: 11
    Dernier message: 03/03/2010, 23h19
  2. Perceptron multicouche (newff)
    Par Minoucha2006 dans le forum Méthodes prédictives
    Réponses: 1
    Dernier message: 26/11/2009, 10h55
  3. Apprentissage d'un perceptron multicouches
    Par Hypnocrate dans le forum Méthodes prédictives
    Réponses: 3
    Dernier message: 18/03/2009, 18h05
  4. Eclaircissements sur les perceptrons multicouches
    Par tnarol dans le forum Méthodes prédictives
    Réponses: 3
    Dernier message: 02/08/2008, 19h34
  5. Reconnaissance des entiers par perceptron multicouche ?
    Par ballo dans le forum Méthodes prédictives
    Réponses: 3
    Dernier message: 16/05/2007, 01h33

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