<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Tutoriel_utilisation_algorithme_Isolation_Forest</id>
	<title>Tutoriel utilisation algorithme Isolation Forest - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Tutoriel_utilisation_algorithme_Isolation_Forest"/>
	<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Tutoriel_utilisation_algorithme_Isolation_Forest&amp;action=history"/>
	<updated>2026-05-21T07:44:13Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.39.4</generator>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Tutoriel_utilisation_algorithme_Isolation_Forest&amp;diff=14242&amp;oldid=prev</id>
		<title>Mdesmet le 29 mai 2022 à 18:44</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Tutoriel_utilisation_algorithme_Isolation_Forest&amp;diff=14242&amp;oldid=prev"/>
		<updated>2022-05-29T18:44:35Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Tutoriel_utilisation_algorithme_Isolation_Forest&amp;amp;diff=14242&amp;amp;oldid=13972&quot;&gt;Voir les modifications&lt;/a&gt;</summary>
		<author><name>Mdesmet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Tutoriel_utilisation_algorithme_Isolation_Forest&amp;diff=13972&amp;oldid=prev</id>
		<title>Mdesmet le 27 mai 2022 à 17:30</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Tutoriel_utilisation_algorithme_Isolation_Forest&amp;diff=13972&amp;oldid=prev"/>
		<updated>2022-05-27T17:30:36Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 27 mai 2022 à 17:30&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 1 :&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 1 :&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Tutoriel d’utilisation de l’algorithme Isolation forest&lt;/div&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-added&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Bienvenu dans ce tutoriel d’utilisation de l’algorithme Isolation forest. Ce tutoriel vous apprendra&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Bienvenu dans ce tutoriel d’utilisation de l’algorithme Isolation forest. Ce tutoriel vous apprendra&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Mdesmet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Tutoriel_utilisation_algorithme_Isolation_Forest&amp;diff=13971&amp;oldid=prev</id>
		<title>Mdesmet : Page créée avec « Tutoriel d’utilisation de l’algorithme Isolation forest  Bienvenu dans ce tutoriel d’utilisation de l’algorithme Isolation forest. Ce tutoriel vous apprendra comme... »</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Tutoriel_utilisation_algorithme_Isolation_Forest&amp;diff=13971&amp;oldid=prev"/>
		<updated>2022-05-27T17:30:09Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « Tutoriel d’utilisation de l’algorithme Isolation forest  Bienvenu dans ce tutoriel d’utilisation de l’algorithme Isolation forest. Ce tutoriel vous apprendra comme... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Tutoriel d’utilisation de l’algorithme Isolation forest&lt;br /&gt;
&lt;br /&gt;
Bienvenu dans ce tutoriel d’utilisation de l’algorithme Isolation forest. Ce tutoriel vous apprendra&lt;br /&gt;
comment utiliser facilement cet algorithme pour analyser votre propre banque de données. Il vous&lt;br /&gt;
fournira le code nécessaire mais aussi vous expliquera quels paramètres modifier si vous souhaitez&lt;br /&gt;
modifier le code pour l’adapter à vos besoins.&lt;br /&gt;
&lt;br /&gt;
=1 ) Tutoriel=&lt;br /&gt;
&lt;br /&gt;
Pour utiliser ce tutoriel correctement il faut créer un fichier .py par exemple où on copie toute les&lt;br /&gt;
parties entre barres.&lt;br /&gt;
&lt;br /&gt;
==1 Formatage des données==&lt;br /&gt;
&lt;br /&gt;
Tout d&amp;#039;abord vous devez formater vos données afin qu&amp;#039;elles soient compatibles avec la suite de&lt;br /&gt;
ce tutoriel.&lt;br /&gt;
&lt;br /&gt;
Pour cela créez un tableau sur excel ou autre tableur. La première colonne est l&amp;#039;identifiant qui&lt;br /&gt;
vous permettra d&amp;#039;identifier rapidement les anomalies qui vous seront indiquées, peut être le&lt;br /&gt;
numéro de la ligne par exemple.&lt;br /&gt;
&lt;br /&gt;
Ensuite chaque colonne dont on mettra le titre en ligne 1 contiendra les valeurs d&amp;#039;une&lt;br /&gt;
caractéristique pour chaque élément de la base de données.&lt;br /&gt;
Finalement, enregistrez ce document sous le format cvs séparé par des virgules dans un&lt;br /&gt;
dossier de votre choix.&lt;br /&gt;
&lt;br /&gt;
==2 Import des bibliothèques==&lt;br /&gt;
&lt;br /&gt;
Vous devez maintenant créer un fichier dans le MEME dossier que celui où vous avez mis votre&lt;br /&gt;
dataset. Ce fichier est celui où nous allons écrire le programme une extension .py est donc conseillée.&lt;br /&gt;
&lt;br /&gt;
Le fonctionnement de l’algorithme comme nous l’avons vu plus haut est assez complexe mais&lt;br /&gt;
heureusement des bibliothèque assez simplifiée ont étés crées ce qui va nous simplifier grandement&lt;br /&gt;
la tâche. Malheureusement ceci peut aussi nous désavantager car les seules fonctions qui sont&lt;br /&gt;
données sont très opaque et ne laisse peut de place à la compréhension du code interne et à la&lt;br /&gt;
modification de ce dernier. C’est pour cela que nous allons essayer de nous concentrer sur la&lt;br /&gt;
compréhension des arguments que nous donnons aux fonctions que nous allons utiliser.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;import numpy as np&lt;br /&gt;
&lt;br /&gt;
import pandas as pd&lt;br /&gt;
&lt;br /&gt;
import seaborn as sns&lt;br /&gt;
&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
&lt;br /&gt;
from sklearn.ensemble import IsolationForest&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Si vous voulez trouver les anomalies en prenant en compte une seule variable de votre base de&lt;br /&gt;
donnez suivez la partie : &amp;quot;Recherche anomalie pour une seule variable&amp;quot;. Si vous voulez connaitre&lt;br /&gt;
les annomalies en prenant en comptes toutes les variables entrées dans votre documents csv&lt;br /&gt;
suivez la partie : &amp;quot;Recherche anomalie pour toute les variable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==3 Recherche anomalie pour toute les variables¶==&lt;br /&gt;
&lt;br /&gt;
Dans cette section nous prenons en compte toute les variables entrées pour les éléments de notre&lt;br /&gt;
dataset.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#Valeur que vous devez entrez&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nom_fichier = &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#code à ne pas modifier&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
df = pd.read_csv(nom_fichier)&lt;br /&gt;
&lt;br /&gt;
df_modif = pd.read_csv(nom_fichier)&lt;br /&gt;
&lt;br /&gt;
model=IsolationForest(n_estimators=50, max_samples=&amp;#039;auto&amp;#039;,&lt;br /&gt;
contamination=float(0.2),max_features=1.0)&lt;br /&gt;
&lt;br /&gt;
model.fit(df)&lt;br /&gt;
&lt;br /&gt;
df_modif[&amp;#039;scores&amp;#039;]=model.decision_function(df)&lt;br /&gt;
&lt;br /&gt;
df_modif[&amp;#039;anomaly&amp;#039;]=model.predict(df)&lt;br /&gt;
&lt;br /&gt;
anomaly=df_modif.loc[df_modif[&amp;#039;anomaly&amp;#039;]==-1]&lt;br /&gt;
&lt;br /&gt;
anomaly_index=list(anomaly.index)&lt;br /&gt;
&lt;br /&gt;
print(anomaly)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Veuillez entrer le nom du fichier entre les guillemets sur la première ligne. Cela correspond au nom&lt;br /&gt;
du fichier créé en étape 1 contenant votre dataset.&lt;br /&gt;
&lt;br /&gt;
==3 BIS Recherche anomalie pour une seule variable==&lt;br /&gt;
&lt;br /&gt;
Si vous souhaitez savoir qu’elles sont les valeurs anormales pour une seule variables, par exemple ne&lt;br /&gt;
prendre en compte que la variable de l’age dans une certaine population, il faut utiliser le code&lt;br /&gt;
suivant.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#Valeur que vous devez entrez&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
nom_fichier = &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
nom_variable =&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# Reste du code à ne pas modifier&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
model=IsolationForest(n_estimators=50, max_samples=&amp;#039;auto&amp;#039;,&lt;br /&gt;
contamination=float(0.2),max_features=1.0)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;model.fit(df[[nom_variable]])&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;model.predict(df[[nom_variable]])&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;df[&amp;#039;scores&amp;#039;]=model.decision_function(df[[nom_variable]])&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
df[&amp;#039;anomaly&amp;#039;]=model.predict(df[[nom_variable]])&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
anomaly=df.loc[df[&amp;#039;anomaly&amp;#039;]==-1]&lt;br /&gt;
&lt;br /&gt;
anomaly_index=list(anomaly.index)&lt;br /&gt;
&lt;br /&gt;
print(anomaly)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Veuillez entrer le nom du fichier entre les guillemets sur la premiere ligne. Cela correspond au nom&lt;br /&gt;
du fichier créé en étape 1 contenant votre dataset. Ainsi que le titre de la colonne de la variable que&lt;br /&gt;
vous voulez prendre en compte dans nom_variable.&lt;br /&gt;
&lt;br /&gt;
==4 Utiliser les résultats==&lt;br /&gt;
&lt;br /&gt;
Lancez le programme. Ce dernier va vous affichez les valeurs dites anormales. Vous pouvez&lt;br /&gt;
ensuite agir sur ces dernières en utilisant la variable anomaly_index qui est un tableau qui&lt;br /&gt;
contient tous les indices des anomalies détectées.&lt;br /&gt;
&lt;br /&gt;
=2)Explication plus précise du code=&lt;br /&gt;
&lt;br /&gt;
Voici une explication plus précise de chaque fonction utilisée dans le code donné dans le tuto.&lt;br /&gt;
&lt;br /&gt;
==1 Récupération des données==&lt;br /&gt;
&lt;br /&gt;
Pour commencer, si nous avons bien suivi le tutoriel fournis nous avons déjà créée un fichier CSV qui&lt;br /&gt;
rassemble nos donnés. La fonction suivante permet de stocker toute ces informations dans une&lt;br /&gt;
variable en lisant le contenu de notre fichier.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;df = pd.read_csv(nom_fichier)&lt;br /&gt;
&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== 2 Création du model ==&lt;br /&gt;
&lt;br /&gt;
Notre but maintenant est de définir le modèle utilisé par l’algorithme Isolation Forest ensuite. Cela&lt;br /&gt;
reviens à créer un objet contenant tous les paramètres donc la bibliothèque a besoin pour fonctionner.&lt;br /&gt;
&lt;br /&gt;
Pour cela vous allez devoir choisir des paramètres suivants vos besoins :&lt;br /&gt;
&lt;br /&gt;
===1) n_estimators===&lt;br /&gt;
&lt;br /&gt;
Il s’agit ici de choisir le nombre d&amp;#039;estimateurs de base, c&amp;#039;est-à-dire le nombre d&amp;#039;arbres qui seront&lt;br /&gt;
construits dans la forêt.&lt;br /&gt;
&lt;br /&gt;
Plus le nombre d’arbre est élevé plus l’algorithme est fiable car les moyennes souffrirons moins des&lt;br /&gt;
valeurs écartées mais ces calculs prennent du temps et son couteux c’est pour cela qu’un nombre trop&lt;br /&gt;
élevé d’arbre serait du « gâchis » car la plupart du temps ils n’apportent rien car les anomalies étaient&lt;br /&gt;
déjà isolées avec moins d’arbres.&lt;br /&gt;
&lt;br /&gt;
On considère que 100 arbres sont suffisants pour quasiment toutes les applications courantes de&lt;br /&gt;
recherche d’anomalies c’est d’ailleurs la valeur par défaut.&lt;br /&gt;
&lt;br /&gt;
===2)max_samples===&lt;br /&gt;
&lt;br /&gt;
Il s’agit ici de choisir l’échantillon max soit le nombre d&amp;#039;échantillons à tirer pour former chaque&lt;br /&gt;
estimateur de base.&lt;br /&gt;
&lt;br /&gt;
En effet lorsque l’on crée un arbre, surtout quand nous avons une grande banque de donnée nous&lt;br /&gt;
n’utilisons pas forcément tous les éléments de la base de donnée pour chaque arbres. Un échantillon&lt;br /&gt;
est créé pour n’utiliser que certaines données.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez changer cette valeur pour une valeur inferieur à 256 et aux nombres d’éléments dans&lt;br /&gt;
votre base de donnée si vous avez vraiment une contraintes de nombre d’opération à effectuer mais&lt;br /&gt;
celle si altèrera rapidement la qualité des résultats.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez mettre une valeur au dessus de 256 si votre base de donnée contient plus de 256&lt;br /&gt;
éléments et que vous n’avez pas peur d’une perte de rapidité et d’optimisation pour avoir un résultat&lt;br /&gt;
plus précis.&lt;br /&gt;
&lt;br /&gt;
Il est tout de même conseillé de laisser ce paramètre en paramétrage automatique celui-ci choisira la&lt;br /&gt;
valeur min(256, n_samples) qui pour la plupart des application est nettement appropriée.&lt;br /&gt;
Le programme créera donc un nombre correspondant d’échantillons qui seront utilisés pour créer&lt;br /&gt;
chaque arbres.&lt;br /&gt;
&lt;br /&gt;
===3) Contamination===&lt;br /&gt;
&lt;br /&gt;
Ce paramètre est le plus sensible et le plus délicat à choisir. Le taux de contamination est la proportion&lt;br /&gt;
d’anomalies attendues dans la base de données.&lt;br /&gt;
&lt;br /&gt;
Ce dernier est utilisé lors de l&amp;#039;ajustement pour définir le seuil sur les scores des échantillons. Il est&lt;br /&gt;
essentiel car si nous affirmons une valeur pour ce paramètre le code nous donneras un nombre de&lt;br /&gt;
valeur anormales correspondant. Par exemple si nous entrons contamination=float(0.2) le programme&lt;br /&gt;
nous fournira 20% de valeurs aberrantes même si les scores d’anomalies en révèle plus ou moins.&lt;br /&gt;
La valeur par défaut est &amp;#039;auto&amp;#039;. Si &amp;#039;auto&amp;#039;, la valeur seuil sera déterminée comme dans l&amp;#039;article original&lt;br /&gt;
d&amp;#039;Isolation Forest.&lt;br /&gt;
&lt;br /&gt;
Si nous connaissons cette valeur en revanche par exemple si nous savons d’avance que nous voulons&lt;br /&gt;
enlever 10% des valeurs qui sont trop éloignées des autres nous pouvons l’indiquer tout en sachant&lt;br /&gt;
qu’elle est comprise entre (0, 0.5]&lt;br /&gt;
&lt;br /&gt;
===4) max_features ===&lt;br /&gt;
&lt;br /&gt;
Comme nous l’avons vu dans l’explication du principe de isolation forest, l’algorithme va créer&lt;br /&gt;
des séparations parmi les données jusqu’à isoler les différents éléments.&lt;br /&gt;
Or il n’est pas forcements nécessaire de continuer de créer des séparations jusqu’à ce que&lt;br /&gt;
tous les éléments de la base de données soit isolés. En effet comme nous avons vu les&lt;br /&gt;
éléments les plus difficiles à isoler ne sont pas ceux qui sont considérés comme anormal. Le&lt;br /&gt;
nombre de séparation créées peut donc être paramétré pour optimiser l’algorithme.&lt;br /&gt;
&lt;br /&gt;
La valeur par défaut est 1.0, on peut prendre une valeur différente mais cette dernière doit être&lt;br /&gt;
inferieur à 1.&lt;br /&gt;
&lt;br /&gt;
===5) bootstrap===&lt;br /&gt;
&lt;br /&gt;
Ce paramètre est un booléen, si on entre la valeur ‘Vrai’ cela indique que les tirages&lt;br /&gt;
d’échantillonnage pour chaque arbre est effectué avec remise, si ce paramètre est ‘Faux’ cela indique&lt;br /&gt;
cela indique que l’échantillonnage est fait sans remise.&lt;br /&gt;
Le réglage par défaut est False.&lt;br /&gt;
&lt;br /&gt;
===6) n_jobs===&lt;br /&gt;
&lt;br /&gt;
Ce paramètre permet de définir le nombre de tâche à exécuter en parallèle pour l’utilisation des&lt;br /&gt;
fonction fit et predict que nous expliquons plus loin.&lt;br /&gt;
Il n’est pas utile de se soucier de ce paramètre à moins que nous ayons une dataset de très très&lt;br /&gt;
grande taille.&lt;br /&gt;
&lt;br /&gt;
Si sa valeur est ‘none’ une seule tâche est effectuée à la fois, si sa valeur est ‘-1’ le programme&lt;br /&gt;
utilisera alors tout le processeur disponible.&lt;br /&gt;
&lt;br /&gt;
===7) random_state===&lt;br /&gt;
Ce paramètre contrôle le caractère pseudo-aléatoire de l’échantillonnage et du choix des splits, pour&lt;br /&gt;
chaque étape de création d’arbre.&lt;br /&gt;
C’est un entier qui suivant sa valeur appellera les fonctions si dessous plusieurs fois afin de faire des&lt;br /&gt;
moyennes des résultats pour accroire le caractère aléatoire des tirages faits.&lt;br /&gt;
&lt;br /&gt;
===8) warm_start===&lt;br /&gt;
&lt;br /&gt;
Ce paramètre est un booléen qui si il est paramétrer sur Vrai, réutilise la solution de l&amp;#039;appel&lt;br /&gt;
précédent pour s&amp;#039;adapter et rajoute seulement des estimateur dans l’ensemble. Si le paramètre&lt;br /&gt;
est Faux une toute nouvelle forêt est créée.&lt;br /&gt;
Ce paramètre peut être utile si vous utilisez une très grande base de donée et que vous pensez&lt;br /&gt;
qu’une précision supplémentaire est nécessaire.&lt;br /&gt;
&lt;br /&gt;
Les paramètres conseillés sont les suivants :&lt;br /&gt;
&lt;br /&gt;
model=IsolationForest(n_estimators=50, max_samples=&amp;#039;auto&amp;#039;, contamination= »auto »&lt;br /&gt;
,max_features=1.0, bootstrap=False, n_jobs=’None’, random_state=None,&lt;br /&gt;
warm_start=False)&lt;br /&gt;
&lt;br /&gt;
== Utilisation du model==&lt;br /&gt;
&lt;br /&gt;
Maintenant que nous avons défini le modèle avec lequel nous voulons travailler nous devons l’utiliser&lt;br /&gt;
pour l’appliquer à nos données.&lt;br /&gt;
&lt;br /&gt;
Pour cela nous allons utiliser la fonction fit qui va ajuster le modèle sur les données. En d’autres mots&lt;br /&gt;
cette fonction crée tous les arbres de la forêt.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;model.fit(df)&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Nous utilisons ensuite la fonction decision_function qui va trouver le score d&amp;#039;anomalie de chaque&lt;br /&gt;
éléments en étudiants pour chacun leurs positions dans tout les arbres créés précédemment. Elle va&lt;br /&gt;
donc calculer le score d&amp;#039;anomalie moyen de X des classificateurs de base.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;model.decision_function(df)&lt;br /&gt;
&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
La fonction predict va ensuite attribuer une valeur a chaque éléments qui indique si cet élément est&lt;br /&gt;
considéré comme normal (valeur 0) ou comme anomalie (-1) .&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;model.predict(df)&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Pour plus de lisibilité nous plaçons ces deux scores dans notre tableau de données grâce aux fonctions&lt;br /&gt;
suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;df_modif[&amp;#039;scores&amp;#039;]=model.decision_function(df)&lt;br /&gt;
&lt;br /&gt;
df_modif[&amp;#039;anomaly&amp;#039;]=model.predict(df)&lt;br /&gt;
&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Finalement nous cherchons un affichage correcte des résultats et pour cela nous isolons toute les&lt;br /&gt;
lignes correspondants à des anomalies pour les mettre dans un tableau séparé. Nous en profitons pour&lt;br /&gt;
isoler les index des anomalies dans une variable qui pourrait nous être utile plus tard.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;anomaly=df_modif.loc[df_modif[&amp;#039;anomaly&amp;#039;]==-1]&lt;br /&gt;
&lt;br /&gt;
anomaly_index=list(anomaly.index)&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Et pour terminer nous affichons les lignes correspondants aux anomalies.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;print(anomaly)&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Pour visualiser les erreurs nous pouvons utiliser le code suivant.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;lt;nowiki&amp;gt;# valeur à entrer&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
var1 = &amp;#039;’&lt;br /&gt;
&lt;br /&gt;
var2 = &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;# Code à ne pas modifier&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
pred_scores = -1*model.score_samples(df)&lt;br /&gt;
&lt;br /&gt;
plt.scatter(df[[var1]],df[[var2]], c=pred_scores, cmap=&amp;#039;RdBu&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
plt.colorbar(label=&amp;#039;Simplified Anomaly Score&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
show()&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Veuillez choisir les deux noms des colonnes des variables que vous voulez choisir comme abscisse et&lt;br /&gt;
ordonnées de votre graphique.&lt;br /&gt;
Cet affichage permet de visualiser l’ensemble des données ainsi que leurs score d’anomalies associé.&lt;br /&gt;
Cet affichages est très révélateur pour les base de données de dimensions 2 voire 3 mais pour les&lt;br /&gt;
dimensions plus élevées cet affichage perd de son intérêt.&lt;/div&gt;</summary>
		<author><name>Mdesmet</name></author>
	</entry>
</feed>