mirror of
https://github.com/ArthurDanjou/ArtStudies.git
synced 2026-02-07 13:05:47 +01:00
44 lines
1.5 KiB
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)
|