Machines à vecteurs de support en R
Kailash Awati
Instructor
df.# Définir la graine pour la reproductibilité
set.seed(1)
# Définir la taille de l'ensemble d'entraînement
sample_size <- floor(0.8 * nrow(df))
# Assigner aléatoirement les lignes en proportion 80/20
train <- sample(seq_len(nrow(df)), size = sample_size)
# Séparer les ensembles d'entraînement et de test
trainset <- df[train, ]
testset <- df[-train, ]
e1071.y ici.trainset.svm()library(e1071)
svm_model<- svm(y ~ .,
data = trainset,
type = "C-classification",
kernel = "linear",
scale = FALSE)
svm_model donne :svm_model
Call: svm(formula = y ~ ., data = trainset, type = "C-classification", kernel = "linear", scale = FALSE) Parameters: SVM-Type: C-classification SVM-Kernel: linear cost: 1 gamma: 0.5Number of Support Vectors: 55
# Index des vecteurs de support dans l'ensemble d'entraînement svm_model$index# Vecteurs de support svm_model$SV# Interception négative (non pondérée) svm_model$rho# Coefficients de pondération des vecteurs de support svm_model$coefs
4 8 10 11 18 37 38 39 47 59 60 74 76 77 78 80 83 ...x1 x2 5 0.519095949 0.44232464-0.1087075[,1] [1,] 1.0000000
# Précision entraînement
pred_train <- predict(svm_model, trainset)
mean(pred_train == trainset$y)
1
# Précision test
pred_test <- predict(svm_model, testset)
mean(pred_test == testset$y)
1
# Parfait !!
Machines à vecteurs de support en R