Code DBSCAN

De Wiki du LAMA (UMR 5127)
Révision datée du 25 mai 2023 à 15:17 par Franz-maximilien ceron (discussion | contributions) (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... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

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>