« Code Isolation Forest » : différence entre les versions
Aller à la navigation
Aller à la recherche
(→Code) |
Aucun résumé des modifications |
||
(4 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
Vous trouverez sur cette page le code pour la détection d'anomalies |
Vous trouverez sur cette page le code pour la détection d'anomalies avec l'algorithme Isolation Forest. |
||
=Code= |
=Code= |
||
[https://www.lama.univ-savoie.fr/mediawiki/index.php/Fichier:CFM_code_isolation_forest.pdf Lien PDF] |
|||
[Lien PDF] |
|||
<nowiki> |
<nowiki> |
||
Ligne 9 : | Ligne 9 : | ||
def detectionAnomaly(donnee, taille_File): |
def detectionAnomaly(donnee, taille_File): |
||
##on |
##on récupère le n-1 premiers éléments de la File |
||
liste_de_donnee = donnee[0:taille_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 |
df = convert_list_database(liste_de_donnee) # on défnit la base de donnée de ref |
||
Ligne 30 : | Ligne 30 : | ||
if dernier_elt[0][len(dernier_elt)] == -1: # sinon anomalie détectée alors (à déterminer selon votre choix) |
if dernier_elt[0][len(dernier_elt)] == -1: # sinon anomalie détectée alors (à déterminer selon votre choix) |
||
# liste_indice_anomaly.append(i+taille_File) |
|||
print("Erreur détecter") |
print("Erreur détecter") |
||
Ligne 36 : | 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
## 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