Advertisement
thibthibaut

POURCOME

Dec 15th, 2015
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Octave 2.82 KB | None | 0 0
  1. clear all
  2. close all
  3.  
  4. source "pmc.m";
  5. load "usps_napp10.dat"
  6.  
  7. #Xapp : ligne = exemple , colonne  = pixels
  8. #Yapp : colonne = numero de classe
  9. #Yapp passe de simple classe numérique a multi classe binaire.
  10. #random 2 nombre aléatoire entre 1 et le nombre de ligne , on stock la ligne xapp et yapp et on inverse les deux lignes
  11. #Chaque ligne de Xapp est un échantillon et chaque pixel est un feature.
  12.  
  13.  
  14.  
  15. xtmp = xapp;
  16. ytmp = yapp;
  17. xapp = xtest;
  18. yapp = ytest;
  19. xtest = xtmp;
  20. ytest = ytmp;
  21.  
  22.  
  23.  
  24. #Random
  25. for i = 1 : size(xapp,1)
  26.  
  27.   id1 = ceil(rand() * size(xapp,1));
  28.   id2 = ceil(rand()*size(yapp,1));
  29.  
  30.   tmpx = xapp(id1,:);
  31.   tmpy = yapp(id1,:);
  32.  
  33.   xapp(id1,:)=xapp(id2,:);
  34.   yapp(id1,:)= yapp(id2,:);
  35.  
  36.   xapp(id2,:)=tmpx;
  37.   yapp(id2,:)=tmpy;
  38. end
  39.  
  40. #max (xapp),max(xtest) , max(val) , xapp = xapp / val , (xapp*2) - 1
  41.  
  42.  
  43.  
  44.  
  45.  
  46. #Normalisation des données
  47. xMaxApp = max(xapp(:));
  48. xMaxTest = max(xtest(:));
  49. xMax = max(xMaxApp,xMaxTest);
  50. xMax
  51.  
  52. xapp = xapp/xMax;
  53. xtest = xtest/xMax;
  54.  
  55. xapp = ((xapp*2)-1);
  56. xtest = ((xtest*2)-1);
  57.  
  58.  
  59. Yt=change_Y_discri(ytest);
  60. Ya=change_Y_discri(yapp);
  61.  
  62.  
  63.  
  64. #boucle : apprend (xapp(:,i) ... )
  65. #sucessRateapp = test(xtest(:,i)..)
  66. #res[];
  67. #res = [res;;sucessRateApp,sucessRateTest]
  68. #ids = sortrows(res,"-3") trier res a partir de la 3e colonne dans l'ordre déscendant.
  69.  
  70. #for
  71. #xapp(:,ids(1:i)); Meilleur id de chaque colonne
  72. #apprendre xapp
  73. #xapp(:,IDS([1:i],1));
  74. #save res.dat RES
  75. #plot res
  76. #ids([1:i]) quand i vaut 2 ca fait 1 -> 2 ; dc 2 premiere colonne
  77. #end
  78. res = [];
  79. final = [];
  80.  
  81. #for i = 1 : size(xapp,2)
  82.  
  83. #[TEA, TET, pmc]=apprend_pmc(xapp(:,i),Ya,xtest(:,i),Yt,0.01,{10,10});
  84. #SucessRateApp = test_classif_pmc(xtest(:,i),Yt,pmc);
  85. #SucessRateTest = test_classif_pmc(xapp(:,i),Ya,pmc);
  86. #res = [res;i,SucessRateApp,SucessRateTest];
  87. #res
  88. #save res.dat res
  89.  
  90. #end
  91.  
  92. load "IDSFinal.dat" IDSFinal
  93.  
  94.  
  95. #for i = 1 : size(xapp,2)
  96.  
  97. # Xba = xapp(:,IDS([1:i],1);
  98.  
  99. #end
  100.  
  101.  
  102.  
  103.  
  104.  
  105. Xba = xapp(:,IDSFinal([1:80],1));
  106. Xbt = xtest(:,IDSFinal([1:80],1));
  107.  
  108. [TEA TET pmc] = apprend_pmc(Xba,Ya,Xbt,Yt,0.01,{10,10});
  109.  
  110. SucessRateAppB = test_classif_pmc(Xba,Ya,pmc);
  111. SucessRateTestB = test_classif_pmc(Xbt,Yt,pmc);
  112.  
  113. final = [final;i,SucessRateAppB,SucessRateTestB];
  114.  
  115. save final.dat final
  116.  
  117.  
  118.  
  119.  
  120.  
  121. #Différente couche neuronal
  122. # couche d'entréee ( input )
  123. # couche de sortie ( classe )
  124. # couche caché ( binaire )
  125. # elasticité = liaison synaptique
  126. # le but est de déterminer les poids w pour obtenir les bon yapp en fonction de xapp
  127. # un neurone est est une fonction plus la somme des entrée multiplié par des poids
  128. #un neurone n'a qu'une sortie
  129. #10,10 = 2 couches de 10 neurones cachée
  130.  
  131.  
  132. #printf("Learning error : %f\nTest error : %f\n", SucessRateApp,SucessRateTest);
  133.  
  134. #Algo : par dichotomie , pas au dessus de 300 neurones et 5 couche
  135.  
  136. #Test avan random et apres random
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement