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

TD 10 - Approches Algorithmiques.R

Le document présente un script R pour l'installation et l'activation de bibliothèques nécessaires à l'apprentissage automatique, ainsi que la préparation des données pour des modèles de classification. Il inclut des fonctions pour tester des classificateurs Support Vector Machines et Naive Bayes, en calculant et affichant les matrices de confusion et les courbes ROC. Enfin, il exécute des tests avec différentes configurations pour les deux algorithmes de classification.

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)
9 vues2 pages

TD 10 - Approches Algorithmiques.R

Le document présente un script R pour l'installation et l'activation de bibliothèques nécessaires à l'apprentissage automatique, ainsi que la préparation des données pour des modèles de classification. Il inclut des fonctions pour tester des classificateurs Support Vector Machines et Naive Bayes, en calculant et affichant les matrices de confusion et les courbes ROC. Enfin, il exécute des tests avec différentes configurations pour les deux algorithmes de classification.

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("e1071")
install.packages("naivebayes")
install.packages("ROCR")

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

library(e1071)
library(naivebayes)
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)

#-------------------------#
# SUPPORT VECTOR MACHINES #
#-------------------------#

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


test_svm <- function(arg1, arg2, arg3){
# Apprentissage du classifeur
svm <- svm(Produit~., produit_QF_EA, probability=TRUE, kernel = arg1)

# Test du classifeur : classe predite


svm_class <- predict(svm, produit_QF_ET, type="response")

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

# Test du classifeur : probabilites pour chaque prediction


svm_prob <- predict(svm, produit_QF_ET, probability=TRUE)

# Recuperation des probabilites associees aux predictions


svm_prob <- attr(svm_prob, "probabilities")

# Courbe ROC
svm_pred <- prediction(svm_prob[,1], produit_QF_ET$Produit)
svm_perf <- performance(svm_pred,"tpr","fpr")
plot(svm_perf, main = "Support vector machines svm()", add = arg2, col = arg3)

# Calcul de l'AUC et affichage par la fonction cat()


svm_auc <- performance(svm_pred, "auc")
cat("AUC = ", as.character(attr(svm_auc, "y.values")))

# Return sans affichage sur la console


invisible()
}

#-------------#
# NAIVE BAYES #
#-------------#

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


test_nb <- function(arg1, arg2, arg3, arg4){
# Apprentissage du classifeur
nb <- naive_bayes(Produit~., produit_QF_EA, laplace = arg1, usekernel = arg2)

# Test du classifeur : classe predite


nb_class <- predict(nb, produit_QF_ET, type="class")

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

# Test du classifeur : probabilites pour chaque prediction


nb_prob <- predict(nb, produit_QF_ET, type="prob")

# Courbe ROC
nb_pred <- prediction(nb_prob[,2], produit_QF_ET$Produit)
nb_perf <- performance(nb_pred,"tpr","fpr")
plot(nb_perf, main = "Classifieurs bayésiens naïfs naiveBayes()", add = arg3, col
= arg4)

# Calcul de l'AUC et affichage par la fonction cat()


nb_auc <- performance(nb_pred, "auc")
cat("AUC = ", as.character(attr(nb_auc, "y.values")))

# Return sans affichage sur la console


invisible()
}

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

# Support vector machines


test_svm("linear", FALSE, "red")
test_svm("polynomial", TRUE, "blue")
test_svm("radial", TRUE, "green")
test_svm("sigmoid", TRUE, "orange")

# Naive Bayes
test_nb(0, FALSE, FALSE, "red")
test_nb(20, FALSE, TRUE, "blue")
test_nb(0, TRUE, TRUE, "green")
test_nb(20, TRUE, TRUE, "orange")

Vous aimerez peut-être aussi