mon master2 ISIFAR
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
mon master2 ISIFAR

ISIFAR
 
AccueilRechercherDernières imagesS'enregistrerConnexion
Le Deal du moment : -34%
-34% LG OLED55B3 – TV OLED 4K 55″ 2023 ...
Voir le deal
919 €

 

 Tentatives

Aller en bas 
AuteurMessage
Admin
Admin



Nombre de messages : 418
Date d'inscription : 27/09/2005

Tentatives Empty
MessageSujet: Tentatives   Tentatives Icon_minitimeLun 21 Nov à 3:56

les yk
Code:
y=c(rep(0,50));
for(i in 1:50)
{y[i]=ifelse((x[i,]%*%w)[1,1]>0,1,0)}
Revenir en haut Aller en bas
https://mastertwo.jeun.fr
Admin
Admin



Nombre de messages : 418
Date d'inscription : 27/09/2005

Tentatives Empty
MessageSujet: Re: Tentatives   Tentatives Icon_minitimeLun 21 Nov à 4:10

on les regarde

Code:
#Génération artificielle de deux classes linéairement séparables sur nuage de points aléatoire

N=50; #Nb de points au total;
p=2; #dimension de l'espace, ici 2D pour visualisation

x=matrix(runif(N*p,-2,2),N,2); #matrice échantillon, position des points
u=rep(0,N); #matrice des classes

#création d'un échantillon de taille N, 2 classes, linéairement séparable
droite=matrix(c(2,1),p,1); #droite de séparabilité
c=0
indicpos=NULL;
indicneg=NULL;
for(i in 1:N)
{
aux=x[i,]%*%droite;
valxi=aux[1,1];
u[i]=ifelse((valxi+c)>0,1,-1);
if((valxi+c)>0)
{indicpos=c(indicpos,i);}
else
{indicneg=c(indicneg,i);}
};


####################################################
####################################################
#Methodologie : perceptron

####################################################
#initialisation des points du perceptron
w=matrix(runif(2,-1,1),2,1); #matrice de points
w0=w; #sauvegarde des conditions initiales (poids)
tmax=20; #nb d'iterations de l'algorithme d'apprentissage:tmax*N
alpha=0.1; #gain d'apprentissage
tracew=matrix(rep(0,N*tmax*p),N*tmax,p); #tracabilite de l'evolution des poids

####################################################
y=c(rep(0,50));
for(i in 1:50)
{y[i]=ifelse((x[i,]%*%w)[1,1]>0,1,-1)};





for(t in 1:(tmax*N))
{
k=1+trunc(N*runif(1)); #indice entre 1 et N
xk=x[k,];
aux=xk%*%w;
val=aux[1,1];
yk=ifelse(val>0,1,-1);
uk=u[k];
if(!(yk==uk))
{ s=ifelse(uk==1,1,-1);
deltaw=alpha*s*xk;
w=w+deltaw;
};
tracew[t,]=w;
};

####################################################
#visualisation/conditions initiales
plot(x[,1],x[,2], pch=19, col='cyan');
points(x[indicneg,1],x[indicneg,2], pch=19, col='blue');
a0=-w0[1,1]/w0[2,1];
b0=0;
abline(b0,a0, col='red');

####################################################
#visualisation/ apres convergence (5pas puis 10 puis 15pas)
aw=-tracew[5,1]/tracew[5,2]; bw=0;
abline(bw,aw, col='blue', 'lty'=2);

aw=-tracew[10,1]/tracew[10,2]; bw=0;
abline(bw,aw,col='yellow', 'lty'=4);

aw=-tracew[15,1]/tracew[15,2]; bw=0;
abline(bw,aw,col='purple', 'lty'=6);

####################################################
#visualisation/ apres convergence
aw=-w[1,1]/w[2,1]; bw=0;
abline(bw,aw, col='green', 'lwd'=2);







####
Revenir en haut Aller en bas
https://mastertwo.jeun.fr
Admin
Admin



Nombre de messages : 418
Date d'inscription : 27/09/2005

Tentatives Empty
MessageSujet: Re: Tentatives   Tentatives Icon_minitimeLun 21 Nov à 4:28

descente de gradient

Code:
rm(list=ls());

N=50;
p=2;
x=matrix(runif(N*p,-2,2),N,2);
u=rep(0,N);
droite=matrix(c(2,1),p,1);
c=0;
indicpos=NULL;
indicneg=NULL;

for (i in 1:N)
{
aux=x[i,]%*%droite;
valxi=aux[1,1];
u[i]=ifelse((valxi+c)>0,1,0);
if((valxi+c)>0)
{indicpos=c(indicpos,i);}
else
{indicneg=c(indicneg,i);}
};

w=matrix(runif(2,-1,1),2,1);
w0=w;
tmax=20;
alpha=0.1;
tracew=matrix(rep(0,N*tmax*p),N*tmax,p);
Eq=matrix(rep(0,tmax),tmax,1);




y=c(rep(0,50));
for(i in 1:50)
{y[i]=ifelse((x[i,]%*%w)[1,1]>0,1,0)};

res=c(rep(0,50));
for(j in 1:50)
{res[j]=((u[j]-y[j])^2)/2}






for(t in 1:tmax)
{
Eqk=0;
for (k in 1:N)
 {
  xk=x[k,];
  aux=xk%*%w;
  val=aux[1,1];
  yk=ifelse(val>0,1,0);
  uk=u[k];
  if(!(yk==uk))
    {deltaw=alpha*(uk-yk)*xk;
      w=w+deltaw;
    };
      Eqk=Eqk+((uk-yk)^2)/2
  };
 Eq[t]=Eqk
};




x11()
plot(Eq);
lines(Eq,col=2);

x11()
plot(x[,1],x[,2],pch=19,col='cyan');
points(x[indicneg,1],x[indicneg,2],pch=19,col='blue');

a0=-w0[1,1]/w0[2,1];
b0=0;
abline(b0,a0,col='red');

aw=-w[1,1]/w[2,1];
bw=0;
abline(bw,aw,col='green',lwd=2);





Revenir en haut Aller en bas
https://mastertwo.jeun.fr
Contenu sponsorisé





Tentatives Empty
MessageSujet: Re: Tentatives   Tentatives Icon_minitime

Revenir en haut Aller en bas
 
Tentatives
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
mon master2 ISIFAR :: 1er semestre :: Data Mining : Apprentissage-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser