« Code DBSCAN » : différence entre les versions

De Wiki du LAMA (UMR 5127)
Aller à la navigation Aller à la recherche
(Page créée avec « Vous trouverez sur cette page le code pour la détection d'anomalies sur une File. =Code= [https://www.lama.univ-savoie.fr/mediawiki/index.php/Fichier:CFM_code_DBSCAN.pd... »)
(Aucune différence)

Version du 25 mai 2023 à 15:17

Vous trouverez sur cette page le code pour la détection d'anomalies sur une File.

Code

Lien PDF

Vous trouverez sur cette page le code pour la détection d'anomalies sur une File.

=Code=

[https://www.lama.univ-savoie.fr/mediawiki/index.php/Fichier:CFM_code_isolation_forest.pdf Lien PDF]

 <nowiki>
## 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)]

</nowiki>