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
-28%
Le deal à ne pas rater :
Brandt LVE127J – Lave-vaisselle encastrable 12 couverts – L60cm
279.99 € 390.99 €
Voir le deal

 

 programme (algo)

Aller en bas 
AuteurMessage
Admin
Admin



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

programme (algo) Empty
MessageSujet: programme (algo)   programme (algo) Icon_minitimeMar 24 Jan à 23:36

######################################
# Chargement des donnees de spambase #
######################################

X=read.table('spambase.data',sep=",");
dim(X)
X=as.matrix(X)

is(X)

# verification des variables
word_freq_WORD = X[,1:48]
char_freq_CHAR = X[,49:54]
capital_run_length_average=X[,55]
capital_run_length_longest=X[,56]
capital_run_length_total =X[,57]
spam=X[,58]

summary(spam)
mean(spam)
sd(spam)
100*sd(spam)/mean(spam)


######################################
# Separation entrainement/test #
######################################

#67% entrainement, 33% test
ind=sample(nrow(X),0.67*nrow(X));
xtrain=X[ind,1:57];
ytrain=X[ind,58];
xtest=X[-ind,1:57];
ytest=X[-ind,58];


######################################
# Régression linéaire #
######################################

training_data <- list(x=xtrain, y=ytrain);
testing_data <- list(x=xtest);
linearmodel = lm(y ~ x, training_data);
#prediction (arrondie) sur la base de test
ypred = round(predict(linearmodel,testing_data));



test_error = (mean( (ypred-ytest)^2))
train_error = mean( (linearmodel$fitted-ytrain)^2)

#R-squared
summary(linearmodel)

# affichage des erreurs d'entrainement et de test
test_error
train_error



######################################
# Matrice de confusion #
######################################

#P:total positifs, N: total négatifs (predits)
#y:total positifs, no: total négatifs (base de test)
N=length(ypred)-sum(ypred)
P=length(ypred)-N
no=length(ytest)-sum(ytest)
y=length(ytest)-no

#taux de faux-positifs (marqué 1 alors que 0)
tmp=(ypred-ytest)
for (i in 1:length(tmp))
{
if(tmp[i]<0) tmp[i]=0
}
fauxpos=sum(tmp)/no


#taux de vrais-positifs (marqué correctement 1)
res=0
for (i in 1:length(ypred))
{
if(ypred[i]==1 && ytest[i]==1) res=res+1
}
vraipos=res/y


#taux de faux-négatifs (marqué 0 alors que 1)
tmp2=(ypred-ytest)
for (i in 1:length(tmp2))
{
if(tmp2[i]>0) tmp2[i]=0
}
fauxneg=sum(abs(tmp2))/y


#taux de vrais-negatifs (marqué correctement 0)
res2=0
for (i in 1:length(ypred))
{
if(ypred[i]==0 && ytest[i]==0) res2=res2+1
}
vraineg=res2/no



vraipos; fauxneg
fauxpos;vraineg


Dernière édition par le Sam 11 Fév à 23:22, édité 20 fois
Revenir en haut Aller en bas
https://mastertwo.jeun.fr
Admin
Admin



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

programme (algo) Empty
MessageSujet: Re: programme (algo)   programme (algo) Icon_minitimeMar 24 Jan à 23:50

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



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

programme (algo) Empty
MessageSujet: Re: programme (algo)   programme (algo) Icon_minitimeSam 11 Fév à 6:03

######################################
# Modele SVM #
######################################

SVMmodel = svm(xtrain,ytrain);
summary(SVMmodel)
#prediction (arrondie) sur la base de test
ypred = round(predict(SVMmodel,xtest));


test_error = (mean( (ypred-ytest)^2))
train_error = mean( (SVMmodel$fitted-ytrain)^2)

# affichage des erreurs d'entrainement et de test
test_error
train_error


Dernière édition par le Sam 11 Fév à 23:23, édité 1 fois
Revenir en haut Aller en bas
https://mastertwo.jeun.fr
Admin
Admin



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

programme (algo) Empty
MessageSujet: Re: programme (algo)   programme (algo) Icon_minitimeSam 11 Fév à 17:45

######################################
# Chargement des donnees de spambase #
######################################

X=read.table('spambase.data',sep=",");
dim(X)
X=as.matrix(X)

is(X)
ind=sample(nrow(X),1*nrow(X))
X=X[ind,]

######################################
# VALIDATION CROISEE en 5 replis #
######################################
# k folds
k=5
#découpage des données en k parties
intervalle=round(nrow(X)/5)
indiceDep=rep(1,k)
indiceFin=0
for (i in 0:(k-1))
indiceFin[i+1]=(intervalle)+i*(intervalle)
indiceFin[k]=nrow(X)
for (i in 2:k)
indiceDep[i]=1+indiceFin[i-1]
indiceDep;indiceFin

#initialisation calcul de l'erreur
S=0
aaa=rep(0,k)
fauxpos=c(0)
fauxneg=c(0)
tauxFP=rep(0,k)
tauxFN=c(0)
ppp=c(0)
nnn=c(0)

#Algorithme de validation croisée à k-folds
for (i in 1:k)
{
Test=X[indiceDep[i]:indiceFin[i],]
Train=X[-(indiceDep[i]:indiceFin[i]),]
training_data <- list(x=Train[,1:57], y=Train[,58]);
testing_data <- list(x=Test[,1:57]);
linearmodel=lm(y ~ x, training_data);
#prediction (arrondie) sur la base de test
ypred = round(predict(linearmodel,testing_data));

ytest=Test[,58]
erreur=sum(abs(ytest-ypred))
aaa[i]=erreur
S=S+erreur

no=length(ytest)-sum(ytest)
y=length(ytest)-no

ppp[i]=y
nnn[i]=no
#taux de faux-positifs (marqué 1 alors que 0)
tmp=(ypred-ytest)
for (z in 1:length(tmp))
{ if(tmp[z]<0) tmp[z]=0 }
if (no>0) fauxpos[i]=sum(tmp) else fauxpos[i]=0

#taux de faux-négatifs (marqué 0 alors que 1)
tmp2=(ypred-ytest)
for (t in 1:length(tmp2))
{ if(tmp2[t]>0) tmp2[t]=0 }
if (y>0) fauxneg[i]=sum(abs(tmp2)) else fauxneg[i]=0
}

######################################
# Visualisation des erreurs #
######################################

#taux erreur moyen de la validation croisee pour chaque repli
aaa/intervalle
#Estimation de l'erreur de généralisation
mean(aaa/intervalle)

tauxFP=fauxpos/ppp
tauxFN=fauxneg/nnn
tauxFP
tauxFN
Revenir en haut Aller en bas
https://mastertwo.jeun.fr
Contenu sponsorisé





programme (algo) Empty
MessageSujet: Re: programme (algo)   programme (algo) Icon_minitime

Revenir en haut Aller en bas
 
programme (algo)
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 : Classification-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser