CoolFace
Apppublic

MorganBrizon/EEG_Epilepsy_App

sourceHugging Faceupdated 1y agoView on Hugging Face
5likes
utils.py39 linesDownload Raw Back to root
1import joblib2import numpy as np3import mne4 5def extract_features(raw, channels=None):6    """7    Fonction de base pour extraire des features simples à partir du signal EEG.8    Ici, on calcule la moyenne par canal.9    À améliorer avec tes features plus avancées !10    """11    if channels:12        raw = raw.copy().pick_channels(channels)13    data = raw.get_data()  # shape : (n_channels, n_times)14    features = np.mean(data, axis=1)  # Moyenne par canal15    return features16 17def predict_epilepsy(raw, model_path, channels=None):18    """19    Prédiction de l'état épileptique à partir du signal brut et d'un modèle sauvegardé.20    Retourne aussi la probabilité associée.21    """22    try:23        model = joblib.load(model_path)24        if channels:25            raw = raw.copy().pick_channels(channels)26 27        features = extract_features(raw).reshape(1, -1)28        prediction = model.predict(features)[0]29 30        if hasattr(model, "predict_proba"):31            prob = model.predict_proba(features)[0][1]  # proba que ce soit 1 (epilepsie)32        else:33            prob = None34 35        label = "Épilepsie détectée" if prediction == 1 else "Pas d’épilepsie détectée"36        return label, prob37 38    except Exception as e:39        return f"Erreur : {e}", None