#Pour KNN
# Charger les bibliothèques nécessaires
library(class)
# Lire les données
Maintenance_data <- read.csv2("C:/Users/LADY COMPUTER/Documents/data
science/Maintenance_data.csv")
# Convertir les colonnes en facteurs
Maintenance_data$Type <- factor(Maintenance_data$Type)
Maintenance_data$Machine_failure <- factor(Maintenance_data$Machine_failure)
# Normaliser les variables numériques (sauf les facteurs)
numeric_columns <- c("Air_temperature", "Process_temperature", "Rotational_speed",
"Torque", "Tool_wear")
Maintenance_data_scaled <- [Link](scale(Maintenance_data[,
numeric_columns]))
# Ajouter les colonnes de type et de machine_failure
Maintenance_data_scaled$Type <- Maintenance_data$Type
Maintenance_data_scaled$Machine_failure <- Maintenance_data$Machine_failure
# Diviser les données en ensembles d'entraînement et de test (70% - 30%)
[Link](123) # Pour la reproductibilité
total_rows <- nrow(Maintenance_data_scaled)
train_indices <- sample(1:total_rows, size = 0.95 * total_rows)
training_data <- Maintenance_data_scaled[train_indices, ]
test_data <- Maintenance_data_scaled[-train_indices, ]
# Créer les matrices pour KNN
train_x <- training_data[, numeric_columns]
train_y <- training_data$Machine_failure
test_x <- test_data[, numeric_columns]
# Appliquer KNN
k_value <- 5 # Choisir un nombre de voisins (k)
prediction_test_knn <- knn(train = train_x, test = test_x, cl = train_y, k =
k_value)
# Calculer la matrice de confusion
table_mat_knn <- table(test_data$Machine_failure, prediction_test_knn)
print(table_mat_knn)
# Calculer l'exactitude
accuracy_Test_knn <- sum(diag(table_mat_knn)) / sum(table_mat_knn)
print(accuracy_Test_knn)