« Code Isolation Forest » : différence entre les versions

De Wiki du LAMA (UMR 5127)
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
 
(Une version intermédiaire par le même utilisateur non affichée)
Ligne 1 : Ligne 1 :
Vous trouverez sur cette page le code pour la détection d'anomalies sur une File.
Vous trouverez sur cette page le code pour la détection d'anomalies avec l'algorithme Isolation Forest.


=Code=
=Code=
Ligne 35 : Ligne 35 :
return dernier_elt[0][len(dernier_elt)]
return dernier_elt[0][len(dernier_elt)]
</nowiki>
</nowiki>

=Explication des lignes importantes=

Pour plus de détails veuillez consulter: [https://www.lama.univ-savoie.fr/mediawiki/index.php/D%C3%A9tection_d%E2%80%99anomalies_par_Isolation_Forest_:_application_pour_l%E2%80%99industrie_4.0 Détection d’anomalies par Isolation Forest : application pour l’industrie 4.0] par Mila DESMET

Dernière version du 26 mai 2023 à 11:51

Vous trouverez sur cette page le code pour la détection d'anomalies avec l'algorithme Isolation Forest.

Code

Lien PDF

## Fonction de la détection d'anomalie Isolation Forest
def detectionAnomaly(donnee, taille_File):

    ##on récupère le n-1 premiers éléments de la File
    liste_de_donnee = donnee[0:taille_File]
    df = convert_list_database(liste_de_donnee) # on défnit la base de donnée de ref

    # on ajoute le nouveau élément qu'on veut tester, donc df_motif est composé des n-1 derniers éléments de la File
    df_modif = convert_list_database(donnee[1:taille_File +1])

    contamination_un_element = 1*1/taille_File # on veut qu'un seul élément contaminer parmi la taille de la file

    ## Partie de la détection d'anomalies
    model = IsolationForest(n_estimators=100, max_samples='auto', contamination=contamination_un_element,max_features=1.0)

    model.fit(df[['c1']].values)

    df_modif['anomaly']=model.predict(df[['c1']].values)

    ## on récupère le dernier élémment: celui que l'on souhaite regarder
    dernier_elt = df_modif.tail(1).values
    dernier_elt = dernier_elt.tolist()

    if dernier_elt[0][len(dernier_elt)] == -1: # sinon anomalie détectée alors (à déterminer selon votre choix)
        print("Erreur détecter")

    ## On peut aussi renvoyer la valeur de l'état du dernier élément qui pourra être réutiliser papr la suite
    return dernier_elt[0][len(dernier_elt)]

Explication des lignes importantes

Pour plus de détails veuillez consulter: Détection d’anomalies par Isolation Forest : application pour l’industrie 4.0 par Mila DESMET