0% ont trouvé ce document utile (0 vote)
19 vues2 pages

TD 11 - Approches Algorithmiques.R

Le document décrit le processus d'installation et d'activation des bibliothèques nécessaires pour l'analyse de données avec des réseaux de neurones en R. Il inclut la préparation des données à partir d'un fichier CSV, la création d'ensembles d'apprentissage et de test, ainsi qu'une fonction pour entraîner et évaluer un modèle de réseau de neurones. Plusieurs configurations algorithmiques sont testées pour optimiser les performances du modèle, avec des résultats affichés sous forme de courbes ROC.

Transféré par

oklaik
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
19 vues2 pages

TD 11 - Approches Algorithmiques.R

Le document décrit le processus d'installation et d'activation des bibliothèques nécessaires pour l'analyse de données avec des réseaux de neurones en R. Il inclut la préparation des données à partir d'un fichier CSV, la création d'ensembles d'apprentissage et de test, ainsi qu'une fonction pour entraîner et évaluer un modèle de réseau de neurones. Plusieurs configurations algorithmiques sont testées pour optimiser les performances du modèle, avec des résultats affichés sous forme de courbes ROC.

Transféré par

oklaik
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd

#--------------------------------------------#

# INSTALLATION/MAJ DES LIRAIRIES NECESSAIRES #


#--------------------------------------------#

install.packages("nnet")
install.packages("ROCR")

#--------------------------------------#
# ACTIVATION DES LIRAIRIES NECESSAIRES #
#--------------------------------------#

library(nnet)
library(ROCR)

#-------------------------#
# PREPARATION DES DONNEES #
#-------------------------#

# Chargement des donnees


produit_QF <- read.csv("Data Produit QF.csv", header = TRUE, sep = ",", dec = ".",
stringsAsFactors = T)

# Creation des ensembles d'apprentissage et de test


produit_QF_EA <- produit_QF[1:400,]
produit_QF_ET <- produit_QF[401:600,]

# Suppression de la variable ID (identifiant)


produit_QF_EA <- subset(produit_QF_EA, select = -ID)

#-----------------#
# NEURAL NETWORKS #
#-----------------#

# Definition de la fonction d'apprentissage, test et evaluation par courbe ROC


test_nnet <- function(arg1, arg2, arg3, arg4, arg5){
# Redirection de l'affichage des messages intermédiaires vers un fichier texte
sink('output.txt', append=T)

# Apprentissage du classifeur
nn <- nnet(Produit~., produit_QF_EA, size = arg1, decay = arg2, maxit=arg3)

# Réautoriser l'affichage des messages intermédiaires


sink(file = NULL)

# Test du classifeur : classe predite


nn_class <- predict(nn, produit_QF_ET, type="class")

# Matrice de confusion
print(table(produit_QF_ET$Produit, nn_class))

# Test des classifeurs : probabilites pour chaque prediction


nn_prob <- predict(nn, produit_QF_ET, type="raw")

# Courbe ROC
nn_pred <- prediction(nn_prob[,1], produit_QF_ET$Produit)
nn_perf <- performance(nn_pred,"tpr","fpr")
plot(nn_perf, main = "Réseaux de neurones nnet()", add = arg4, col = arg5)

# Calcul de l'AUC
nn_auc <- performance(nn_pred, "auc")
cat("AUC = ", as.character(attr(nn_auc, "y.values")))

# Return ans affichage sur la console


invisible()
}

#-------------------------------------------------#
# APPRENTISSAGE DES CONFIGURATIONS ALGORITHMIQUES #
#-------------------------------------------------#

# Réseaux de neurones nnet()


test_nnet(50, 0.01, 100, FALSE, "red")
test_nnet(50, 0.01, 300, TRUE, "tomato")
test_nnet(25, 0.01, 100, TRUE, "blue")
test_nnet(25, 0.01, 300, TRUE, "purple")
test_nnet(50, 0.001, 100, TRUE, "green")
test_nnet(50, 0.001, 300, TRUE, "turquoise")
test_nnet(25, 0.001, 100, TRUE, "grey")
test_nnet(25, 0.001, 300, TRUE, "black")

Vous aimerez peut-être aussi