0% ont trouvé ce document utile (0 vote)
24 vues5 pages

Prédiction de Pannes Industrielles avec ML

Ce document présente un atelier de machine learning axé sur la prédiction des pannes industrielles à l'aide de données de capteurs. Les étudiants apprendront à explorer un jeu de données, à entraîner des modèles de classification tels que la régression logistique et le Random Forest, et à évaluer leurs performances. L'atelier inclut également des analyses sur l'importance des variables et des recommandations pour améliorer les prédictions.

Transféré par

Noussaiba Hissi
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 PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
24 vues5 pages

Prédiction de Pannes Industrielles avec ML

Ce document présente un atelier de machine learning axé sur la prédiction des pannes industrielles à l'aide de données de capteurs. Les étudiants apprendront à explorer un jeu de données, à entraîner des modèles de classification tels que la régression logistique et le Random Forest, et à évaluer leurs performances. L'atelier inclut également des analyses sur l'importance des variables et des recommandations pour améliorer les prédictions.

Transféré par

Noussaiba Hissi
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 PDF, TXT ou lisez en ligne sur Scribd

ENSAM-Mèknes, 4AS4, Filière : GIPR 2024/2025

TP. Data intelligence


Pr. Fatima Zohra El Hlouli

🛠️ Atelier 2 Machine Learning: Prédiction de Pannes


Industrielles
🎯 Objectif général :
Mettre en œuvre un modèle de machine learning pour prédire les pannes d’un système industriel
à partir de données capteurs.

🛠️ Outils: Python, Jupyter Notebook,


Bibliothèques : pandas, numpy, matplotlib, seaborn, scikit-learn

📦 Matériel fourni :
 Jeu de données : machine_panne.csv
📊 Description des colonnes du dataset :

Nom de la colonne Description

temperature 🌡️ Température de fonctionnement de la


machine (en °C) – plus elle est élevée,
plus le risque de panne peut augmenter.

humidity 💧 Humidité ambiante autour de la


machine – peut affecter l’électronique ou
accélérer l’usure.

vibration 📉 Niveau de vibration enregistré – des


vibrations anormales peuvent indiquer un
dysfonctionnement mécanique.

pressure 🔧 Pression interne du système – une


pression trop faible ou trop élevée peut
être un signe de problème.

rpm ⚙️ Vitesse de rotation (en tours par


minute) – trop rapide ou trop lente peut
causer des dysfonctionnements.
panne 🚨 Variable cible : 1 si une panne est
survenue, 0 sinon. C’est ce que le modèle
va apprendre à prédire.

 Template de notebook Jupyter


ENSAM-Mèknes, 4AS4, Filière : GIPR 2024/2025
TP. Data intelligence
Pr. Fatima Zohra El Hlouli

Partie 1 : Exploration des données


Objectifs :
 Charger et comprendre le dataset
 Identifier les relations entre les variables
Activités :
1. Charger les données avec pandas.
2. Afficher les premières lignes, les types de colonnes, et vérifier les valeurs
manquantes.
3. Calculer quelques statistiques descriptives (moyenne, écart-type...).
o Visualiser : Heatmap de corrélations

import pandas as pd
import seaborn as sns
import [Link] as plt

df = pd.read_csv("machine_panne.csv")
print([Link]())
[Link]()
[Link]([Link](), annot=True)
[Link]()

Questions :
 Quelles variables semblent liées à la panne ?
 Y a-t-il un déséquilibre de classes (panne = 1 vs 0) ?
📊 Histogramme des pannes vs non-pannes

import seaborn as sns


import [Link] as plt
# Histogramme des valeurs de la variable 'panne'
[Link](x='panne', data=df, palette='Set2')
# Personnalisation
[Link]("Taux de pannes et de non-pannes")
[Link]("Panne (1 = oui, 0 = non)")
[Link]("Nombre d'observations")
# Affichage
[Link]()

Partie 2 : Entraînement d’un modèle de base


ENSAM-Mèknes, 4AS4, Filière : GIPR 2024/2025
TP. Data intelligence
Pr. Fatima Zohra El Hlouli

Objectifs :
 Créer un modèle supervisé de classification
 Évaluer les performances
Étapes :
1. Séparer les données en X (features) et y (cible panne).
2. Diviser en jeu d’entraînement/test (80% / 20%).
3. Entraîner un modèle de régression logistique.
4. Évaluer :
o Matrice de confusion
o Accuracy, precision, recall
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from [Link] import confusion_matrix ,accuracy_score, precision_score,
recall_score, f1_score

X = [Link]("panne", axis=1)
y = df["panne"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

model = LogisticRegression()
[Link](X_train, y_train)
y_pred = [Link](X_test)

print("=== Résultats sur les données de test ===")


print("Accuracy test :", accuracy_score(y_test, y_pred))
print("Recall test :",recall_score(y_test, y_pred))
print("Precision test :", precision_score(y_test, y_pred))
print("F1-score test :",f1_score(y_test, y_pred))
ENSAM-Mèknes, 4AS4, Filière : GIPR 2024/2025
TP. Data intelligence
Pr. Fatima Zohra El Hlouli

Partie 3 : Amélioration et analyse


Objectifs :
 Tester un autre modèle
 Interpréter les résultats
 Explorer la robustesse
Étapes :
1. Essayer un Random Forest Classifier.

# 1. Importation des bibliothèques nécessaires


from [Link] import RandomForestClassifier
# 2. Création du modèle Random Forest
rf_model = RandomForestClassifier(n_estimators=100, random_state=0)
rf_model.fit(X_train, y_train)
# 3. Prédictions sur le jeu de test
y_pred_rf = rf_model.predict(X_test)
# 4. Évaluation du modèle
print("Matrice de confusion (Random Forest) :")
print(confusion_matrix(y_test, y_pred_rf))
print("=== Résultats sur les données de test ===")
print("Accuracy test :", accuracy_score(y_test, y_pred_rf))
print("Recall test :",recall_score(y_test, y_pred_rf))
print("Precision test :", precision_score(y_test, y_pred_rf))
print("F1-score test :",f1_score(y_test, y_pred_rf))

2. Comparer les scores avec la régression logistique.


Utilisez par exemple l’accuracy, le F1-score, le rappel (recall) ou la précision
(precision) :

# Régression Logistique
y_pred = logistic_model.predict(X_test)
print("Régression Logistique - Accuracy :", accuracy_score(y_test, y_pred))

# Random Forest
y_pred_rf = rf_model.predict(X_test)
print("Random Forest - Accuracy :", accuracy_score(y_test, y_pred_rf))

3. Observer l’importance des features.


ENSAM-Mèknes, 4AS4, Filière : GIPR 2024/2025
TP. Data intelligence
Pr. Fatima Zohra El Hlouli

feature_importances = [Link](rf_model.feature_importances_,
index=[Link])
feature_importances.sort_values().plot(kind='barh', title="Importance des
variables")
[Link]("Importance")
[Link]()

📝 Partie 4 : Conclusion

 Analyser les résultats


 Quelle méthode donne les meilleurs résultats ?
 Quelles données ajouter pour améliorer la prédiction ?
 Quel est le coût d’une fausse alerte ou d’un faux négatif en industrie ?

Vous aimerez peut-être aussi