Files
ArtStudies/M2/Advanced Machine Learning/TP4/Methode_Embedded_FOCI.R

44 lines
1.5 KiB
R

######################################
# méthode Embedded : FOCI #
# data : Student Performance Dataset #
######################################
library(FOCI)
library(dplyr)
setwd("/Users/arthurdanjou/Workspace/studies/M2/Advanced Machine Learning/TP4")
# données
data <- read.csv("./data/student-mat.csv", sep=";", stringsAsFactors=TRUE)
str(data)
View(data)
# Conversion variables qualitatives en facteurs
for (col in names(data)) {
if (is.character(data[[col]]) || is.logical(data[[col]])) {
data[[col]] <- as.factor(data[[col]])
}
}
# Définir la variable cible (y) et les variables explicatives (X)
y <- data$G3 # Par exemple, si G3 est la variable cible
X <- data[, !(names(data) %in% "G3")]
X <- X[,-c(31,32)]
# Assurer la conversion des variables qualitatives en numériques pour FOCI
X_numeric <- model.matrix(~ . - 1, data = X) # Encodage one-hot des variables qualitatives
# Appliquer FOCI pour la sélection des variables
selected_vars <- foci(y, X_numeric, num_features = 4, stop = FALSE, numCores = 1)
# Variables sélectionnées
important_vars <- unlist(selected_vars$selected[,1])
cat("Variables sélectionnées :", colnames(X_numeric)[important_vars], "\n")
# Construire un modèle avec les variables influentes
X_selected <- X_numeric[, important_vars, drop = FALSE]
# Ajuster un modèle de régression linéaire avec les variables sélectionnées
model <- lm(y ~ ., data = as.data.frame(X_selected))
# Résumé du modèle
summary(model)