EEG_Epilepsy_App / utils.py
MorganBrizon
🚀 Clean deploy sans fichier image
fb61547
Raw
History Blame Contribute Delete
1.28 kB
import joblib
import numpy as np
import mne
def extract_features(raw, channels=None):
"""
Fonction de base pour extraire des features simples à partir du signal EEG.
Ici, on calcule la moyenne par canal.
À améliorer avec tes features plus avancées !
"""
if channels:
raw = raw.copy().pick_channels(channels)
data = raw.get_data() # shape : (n_channels, n_times)
features = np.mean(data, axis=1) # Moyenne par canal
return features
def predict_epilepsy(raw, model_path, channels=None):
"""
Prédiction de l'état épileptique à partir du signal brut et d'un modèle sauvegardé.
Retourne aussi la probabilité associée.
"""
try:
model = joblib.load(model_path)
if channels:
raw = raw.copy().pick_channels(channels)
features = extract_features(raw).reshape(1, -1)
prediction = model.predict(features)[0]
if hasattr(model, "predict_proba"):
prob = model.predict_proba(features)[0][1] # proba que ce soit 1 (epilepsie)
else:
prob = None
label = "Épilepsie détectée" if prediction == 1 else "Pas d’épilepsie détectée"
return label, prob
except Exception as e:
return f"Erreur : {e}", None