# Détection des anomalies des données de démographie par région à Madagascar par la méthode iForest

Koto J.B.¹, Ramahefy T.R.², Randrianja S.³

École Doctorale Glocalisme, Environnement et Sécurités
indienocéaniques (GENESIS) – Université d'Antsiranana
Antsiranana 00201 – Madagascar

Thématique : Intelligence artificielle

¹koto87@yahoo.com - ²ramahefy@yahoo.fr – ³srandrianja@gmaim.com

<figure><img src="image_1.png" /></figure>

**Abstract** – La détection des anomalies a connu dernièrement une grande attention, tant au niveau académique qu'au niveau industriel. La prédiction automatique pour la détection d'anomalie s'applique également aux données démographies à Madagascar. Une approche alternative qui se montre prometteuse, est l'utilisation de la méthode des forêts d'isolation (iForest).

Cet article nous démontre que la détection des anomalies peut être appliquer sur tous les différents domaines, comme sur les données de la démographie par rapport au nombre de bureau de l'état civil à Madagascar. Les résultats de l'algorithme iForest présentent des réponses qui sont difficiles à l'interpréter. Il est toujours difficile de savoir la contribution de chaque variable dans cet algorithme d'isolation et de comprendre pourquoi des observations particulières reçoivent un score plus élevé.

**Keywords** – Intelligence artificielle ; Anomalies ; iForest ; Démographie de Madagascar.

## I. INTRODUCTION

La détection des anomalies a connu dernièrement une grande attention, tant au niveau académique qu'au niveau industriel. Cet intérêt a été d'autant plus important avec la disponibilité des bases de données volumineuses, qui a nettement augmenté la capacité des organismes à suspecter et/ou détecter des points anormaux. Par exemple, dans le secteur bancaire, il est probable que les anomalies au niveau des transactions par cartes de crédit soient des cas de fraude. Dans le domaine de l'assurance santé, une anomalie pourrait être également une fraude commise par un client ou un fournisseur de soins, qui a fait de fausses réclamations afin d'avoir un meilleur remboursement. Pour cet article, la prédiction automatique pour la détection d'anomalie s'applique aux données démographies à Madagascar. Une approche alternative qui se montre prometteuse, est l'utilisation de la méthode des forêts d'isolation (iForest).

## II. L'ANOMALIE, LA METHODE NON SUPERVISEE ET L'IFOREST

Les anomalies sont les observations qui sont différentes et loin des points considérés normaux dans un jeu de données. Elles peuvent être générées par un mécanisme différent [1], comme elles peuvent être produites par une erreur de collecte de données [2]. Ce type de données est appelé donnée aberrante, anomalie, etc. Dans la littérature il existe trois catégories d'anomalies : les anomalies ponctuelles, les anomalies contextuelles et les anomalies collectives [3]. Les anomalies ponctuelles sont les points qui s'éloignent et se démarquent par rapport aux autres selon une métrique donnée (par exemple similarité, distance). Les anomalies contextuelles sont les observations qui peuvent être des points normaux dans un contexte, mais anormaux dans un autre. Par exemple une température de 35 degrés pendant l'été est normale alors que pendant l'hiver est une anomalie. Les anomalies collectives se présentent lorsque les valeurs d'un sous-ensemble de données sont très différentes par
rapport aux valeurs du reste de l'ensemble de données. Une observation de ce groupe prise toute seule pourrait ne pas être considérée comme anomalie dans un contexte ponctuel ou contextuel, mais le groupe auquel appartient cette observation indique une anomalie [3]. Dans cet article, nous allons observer les anomalies ponctuelles sur le rapport du nombre de bureaux d'état-civil, rayon moyen d'action théorique et population moyenne desservie par région à Madagascar.

La détection d'anomalies est transversale à tous les domaines qui exploitent les données. Ainsi, elle a des nombreuses applications possibles. Les domaines d'application ayant leur spécificité en fonction des données générées ou exploitées, toutes les méthodes de la détection d'anomalies ne sont pas adaptées à tous les domaines d'application [4][5][6].

La méthode non supervisée présente un grand avantage puisqu'elle ne requière pas l'étiquetage des données. Ainsi, elle arrive à détecter les anomalies en isolant les observations qui s'avèrent inhabituelles par rapport aux autres. Ceci permet de détecter de nouveaux types d'anomalies, contrairement aux algorithmes d'apprentissage supervisé qui identifient seulement les anomalies qui sont conformes avec les données étiquetées et le modèle prédictif construit. Plusieurs algorithmes non supervisés de détection des anomalies utilisent des mesures de distance et similarité pour déterminer les observations qui s'éloignent des autres. Quel que soit le domaine de l'application de la détection des anomalies, la majorité des approches non supervisées cherchent tout d'abord à calculer le degré des écarts entre les observations en utilisant une mesure de distance entre les observations, ensuite à affecter un score à chaque observation tel que les observations qui s'éloignent des autres reçoivent les plus hauts scores. Par la suite, un seuil est fixé à partir duquel nous pouvons juger si une observation est une anomalie ou non : un point est une anomalie si son score est supérieur au seuil fixé [7]. Certaines méthodes non supervisées se basent sur la classification ("Clustring"). C'est la méthode utilisée dans cet article. Elles considèrent les anomalies comme les points qui s'éloignent du centre de gravité des classes ("clusters").

L'Isolation Forest ou iForest est une méthode basée sur les arbres de décision et les forêts aléatoires [8][9]. Elle utilise l'isolation d'observations à partir de la construction de plusieurs arbres aléatoires. Quand une forêt d'arbres aléatoires et indépendants produit collectivement un chemin d'accès court pour atteindre une observation depuis la racine, celle-ci a une forte probabilité d'être une anomalie. Le nombre d'arbres utilisés est donc un important paramètre pour iForest. Le seuil de la détection est aussi un paramètre clé, il est donné par le score calculé pour chaque observation relativement aux autres observations. Si ce score est proche de 1 alors l'observation est considérée comme anomalie. Considérons un jeu de données de n observations et une observation x, le score s(x, n) d'aberrance de x est calculé par la formule suivante :

$$s(x, n) = 2^{-\frac{E(h(x))}{c(n)}}$$

avec h(x) la longueur du chemin entre la racine de l'arbre et x. E(h(x)) est la moyenne des h(x) de toute la forêt d'arbres. c(n) représente la longueur du chemin moyen d'une observation depuis la racine dans le jeu de données de n observations. Isolation Forest fait partie des méthodes de détection d'anomalies les plus récentes et les plus utilisées. Elle donne également de bons résultats pour les jeux de données de grandes dimensions. L'approche de forêt d'isolation est une méthode non supervisée [8]. Elle se basent sur le principe d'isolation sans avoir besoin de faire appel à aucune mesure de similarité ou de distance entre les instances.

### III. DESCRIPTION DE DONNEES ET L'ANALYSE IFOREST

Madagascar compte 1700 bureaux d'état-civil répartis entre 1695 Communes de Madagascar [10]. Le tableau ci-après présente la cartographie des bureaux d'état-civil, leur rayon moyen d'action théorique (RMAT) et la population moyenne desservie.
<table><caption>Tableau 1. Nombre de bureaux d'état-civil, rayon moyen d'action théorique et population moyenne desservie par région</caption><thead><tr><th>Région</th><th>Population</th><th>Superficie (km2)</th><th>Nombre de bureau d'EC</th><th>Densité (hab/km2)</th><th>RMAT (km)</th><th>Population moyenne desservie</th></tr></thead><tbody><tr><td>ALAOTRA MANGORO</td><td>1 013 560</td><td>28 061</td><td>79</td><td>36</td><td>10,6</td><td>12 830</td></tr><tr><td>AMORON'I MANIA</td><td>705 594</td><td>16 077</td><td>55</td><td>44</td><td>9,6</td><td>12 829</td></tr><tr><td>ANALANJIROFO</td><td>1 021 475</td><td>21 692</td><td>63</td><td>47</td><td>10,5</td><td>16 214</td></tr><tr><td>ANDROY</td><td>724 251</td><td>18 995</td><td>51</td><td>38</td><td>10,9</td><td>14 201</td></tr><tr><td>ANOSY</td><td>662 942</td><td>29 342</td><td>64</td><td>23</td><td>12,1</td><td>10 358</td></tr><tr><td>ANTSIRANANA</td><td>1 658 652</td><td>44 563</td><td>144</td><td>37</td><td>9,9</td><td>11 518</td></tr><tr><td>ATSIMO ANDREFANA</td><td>1 299 384</td><td>66 628</td><td>110</td><td>20</td><td>13,9</td><td>11 813</td></tr><tr><td>ATSIMO ATSINANANA</td><td>886 845</td><td>16 699</td><td>90</td><td>53</td><td>7,7</td><td>9 854</td></tr><tr><td>ATSINANANA</td><td>1 253 916</td><td>21 993</td><td>88</td><td>57</td><td>8,9</td><td>14 249</td></tr><tr><td>BETSIBOKA</td><td>289 649</td><td>28 366</td><td>35</td><td>10</td><td>16,1</td><td>8 276</td></tr><tr><td>BOENY</td><td>789 125</td><td>30 973</td><td>44</td><td>25</td><td>15,0</td><td>17 935</td></tr><tr><td>BONGOLAVA</td><td>451 334</td><td>18 211</td><td>26</td><td>25</td><td>14,9</td><td>17 359</td></tr><tr><td>DIANA</td><td>690 785</td><td>20 530</td><td>65</td><td>34</td><td>10,0</td><td>10 627</td></tr><tr><td>HAUTE MATSIATRA</td><td>1 183 363</td><td>21 208</td><td>88</td><td>56</td><td>8,8</td><td>13 447</td></tr><tr><td>IHOROMBE</td><td>308 187</td><td>25 909</td><td>26</td><td>12</td><td>17,8</td><td>11 853</td></tr><tr><td>ITASY</td><td>723 166</td><td>6 572</td><td>51</td><td>110</td><td>6,4</td><td>14 180</td></tr><tr><td>MELAKY</td><td>285 774</td><td>40 352</td><td>37</td><td>7</td><td>18,6</td><td>7 724</td></tr><tr><td>MENABE</td><td>584 301</td><td>48 302</td><td>51</td><td>12</td><td>17,4</td><td>11 457</td></tr><tr><td>SAVA</td><td>967 867</td><td>24 034</td><td>79</td><td>40</td><td>9,8</td><td>12 251</td></tr><tr><td>SOFIA</td><td>1 230 585</td><td>51 129</td><td>108</td><td>24</td><td>12,3</td><td>11 394</td></tr><tr><td>VAKINANKARATRA</td><td>1 779 516</td><td>17 907</td><td>91</td><td>99</td><td>7,9</td><td>19 555</td></tr><tr><td>VATOVAVY</td><td>1 397 772</td><td>20 723</td><td>139</td><td>67</td><td>6,9</td><td>10 056</td></tr></tbody></table>

Source : « Rapport d'évaluation des systèmes d'enregistrement des faits d'état-civil et d'établissement des statistiques de l'état-civil », Ministère de l'intérieur et de la décentralisation, Comité National de Coordination en charge de l'amélioration des systèmes nationaux d'état-civil et d'établissement des statistiques de l'état-civil, Madagascar Novembre 2017, pages 36-37.

Nous allons essayer de trouver des informations aberrantes sur les données dans ce tableau. Pour se faire nous allons utiliser « scikit-learn ». Scikit-learn, encore appelé sklearn, est la bibliothèque la plus puissante et la plus robuste pour la machine learning en Python. Elle fournit une sélection d'outils efficaces pour l'apprentissage automatique et la modélisation statistique, notamment la classification, la régression et le clustering via une interface cohérente en Python. Cette bibliothèque, qui est en grande partie écrite en Python, s'appuie sur NumPy, SciPy et Matplotlib.
import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

from sklearn.ensemble import IsolationForest

data = pd.read exce l('bank.xlsx')

data

<table><thead><tr><th>Num</th><th>Region</th><th>Population</th><th>Superficie (km2)</th><th>Nombre de bureau d'EC</th><th>Densité (hab/km2)</th><th>RMAT (km)</th><th>Population moyenne desservie</th></tr></thead><tbody><tr><td>0</td><td>ALAO TRA MANGORO</td><td>1013560</td><td>28061</td><td>79</td><td>36</td><td>10.6</td><td>12830</td></tr><tr><td>1</td><td>AMORONI MANIA</td><td>705594</td><td>16077</td><td>55</td><td>44</td><td>9.6</td><td>12829</td></tr><tr><td>2</td><td>ANALANJIROFO</td><td>1021475</td><td>21692</td><td>63</td><td>47</td><td>10.5</td><td>16214</td></tr><tr><td>3</td><td>ANDROY</td><td>724251</td><td>18995</td><td>51</td><td>38</td><td>10.9</td><td>14201</td></tr><tr><td>4</td><td>ANOSY</td><td>662942</td><td>29342</td><td>64</td><td>23</td><td>12.1</td><td>10358</td></tr><tr><td>5</td><td>ANTSIRANANA</td><td>1658652</td><td>44563</td><td>144</td><td>37</td><td>9.9</td><td>11518</td></tr><tr><td>6</td><td>ATSIMO ANDREFANA</td><td>1299384</td><td>66628</td><td>110</td><td>20</td><td>13.9</td><td>11813</td></tr><tr><td>7</td><td>ATSIMO ATSINANANA</td><td>886845</td><td>16699</td><td>90</td><td>53</td><td>7.7</td><td>9854</td></tr><tr><td>8</td><td>ATSINANANA</td><td>1253916</td><td>21993</td><td>88</td><td>57</td><td>8.9</td><td>14249</td></tr><tr><td>9</td><td>BETSIBOKA</td><td>289649</td><td>28366</td><td>35</td><td>10</td><td>16.1</td><td>8276</td></tr><tr><td>10</td><td>BOENY</td><td>789125</td><td>30973</td><td>44</td><td>25</td><td>15.0</td><td>17935</td></tr><tr><td>11</td><td>BONGOLAVA</td><td>451334</td><td>18211</td><td>26</td><td>25</td><td>14.9</td><td>17359</td></tr><tr><td>12</td><td>DIANA</td><td>690785</td><td>20530</td><td>65</td><td>34</td><td>10.0</td><td>10627</td></tr><tr><td>13</td><td>HAUTE MATSIATRA</td><td>1183363</td><td>21208</td><td>88</td><td>56</td><td>8.8</td><td>13447</td></tr><tr><td>14</td><td>IHOROMBE</td><td>308187</td><td>25909</td><td>26</td><td>12</td><td>17.8</td><td>11853</td></tr><tr><td>15</td><td>ITASY</td><td>723166</td><td>6572</td><td>51</td><td>110</td><td>6.4</td><td>14180</td></tr><tr><td>16</td><td>MELAKY</td><td>285774</td><td>40352</td><td>37</td><td>7</td><td>18.6</td><td>7724</td></tr><tr><td>17</td><td>MENABE</td><td>584301</td><td>48302</td><td>51</td><td>12</td><td>17.4</td><td>11457</td></tr><tr><td>18</td><td>SAVA</td><td>967867</td><td>24034</td><td>79</td><td>40</td><td>9.8</td><td>12251</td></tr><tr><td>19</td><td>SOFIA</td><td>1230585</td><td>51129</td><td>108</td><td>24</td><td>12.3</td><td>11394</td></tr><tr><td>20</td><td>VAKINANKARATRA</td><td>1779516</td><td>17907</td><td>91</td><td>99</td><td>7.9</td><td>19555</td></tr><tr><td>21</td><td>VATOVAVY FITOVINANY</td><td>1397772</td><td>20723</td><td>139</td><td>67</td><td>6.9</td><td>10056</td></tr></tbody></table>

Les 22 lignes et les 8 colonnes sont en lecture. Pour avoir plus de charité sur la lecture et l'utilisation des données, nous enlevons la colonne « Region » qui n'aura pas d'utilité puis que nous avons la colonne « Num » qui est le numéro d'identification de la région, pour cet article.
<table><thead><tr><th>Num</th><th>Population</th><th>Superficie (km2)</th><th>Nombre de bureau d'EC</th><th>Densité (hab/km2)</th><th>RMAT (km)</th><th>Population moyenne desservie</th></tr></thead><tbody><tr><td>0</td><td>1</td><td>1013560</td><td>28061</td><td>79</td><td>36</td><td>10.6</td><td>12830</td></tr><tr><td>1</td><td>2</td><td>705594</td><td>16077</td><td>55</td><td>44</td><td>9.6</td><td>12829</td></tr><tr><td>2</td><td>3</td><td>1021475</td><td>21692</td><td>63</td><td>47</td><td>10.5</td><td>16214</td></tr><tr><td>3</td><td>4</td><td>724251</td><td>18995</td><td>51</td><td>38</td><td>10.9</td><td>14201</td></tr><tr><td>4</td><td>5</td><td>662942</td><td>29342</td><td>64</td><td>23</td><td>12.1</td><td>10358</td></tr><tr><td>5</td><td>6</td><td>1658652</td><td>44563</td><td>144</td><td>37</td><td>9.9</td><td>11518</td></tr><tr><td>6</td><td>7</td><td>1299384</td><td>66628</td><td>110</td><td>20</td><td>13.9</td><td>11813</td></tr><tr><td>7</td><td>8</td><td>886845</td><td>16699</td><td>90</td><td>53</td><td>7.7</td><td>9854</td></tr><tr><td>8</td><td>9</td><td>1253916</td><td>21993</td><td>88</td><td>57</td><td>8.9</td><td>14249</td></tr><tr><td>9</td><td>10</td><td>289649</td><td>28366</td><td>35</td><td>10</td><td>16.1</td><td>8276</td></tr><tr><td>10</td><td>11</td><td>789125</td><td>30973</td><td>44</td><td>25</td><td>15.0</td><td>17935</td></tr><tr><td>11</td><td>12</td><td>451334</td><td>18211</td><td>26</td><td>25</td><td>14.9</td><td>17359</td></tr><tr><td>12</td><td>13</td><td>690785</td><td>20530</td><td>65</td><td>34</td><td>10.0</td><td>10627</td></tr><tr><td>13</td><td>14</td><td>1183363</td><td>21208</td><td>88</td><td>56</td><td>8.8</td><td>13447</td></tr><tr><td>14</td><td>15</td><td>308187</td><td>25909</td><td>26</td><td>12</td><td>17.8</td><td>11853</td></tr><tr><td>15</td><td>16</td><td>723166</td><td>6572</td><td>51</td><td>110</td><td>6.4</td><td>14180</td></tr><tr><td>16</td><td>17</td><td>285774</td><td>40352</td><td>37</td><td>7</td><td>18.6</td><td>7724</td></tr><tr><td>17</td><td>18</td><td>584301</td><td>48302</td><td>51</td><td>12</td><td>17.4</td><td>11457</td></tr><tr><td>18</td><td>19</td><td>967867</td><td>24034</td><td>79</td><td>40</td><td>9.8</td><td>12251</td></tr><tr><td>19</td><td>20</td><td>1230585</td><td>51129</td><td>108</td><td>24</td><td>12.3</td><td>11394</td></tr><tr><td>20</td><td>21</td><td>1779516</td><td>17907</td><td>91</td><td>99</td><td>7.9</td><td>19555</td></tr><tr><td>21</td><td>22</td><td>1397772</td><td>20723</td><td>139</td><td>67</td><td>6.9</td><td>10056</td></tr></tbody></table>

Après avoir effectué la lecture de nos données, on crée des graphiques pour représenter visuellement les données de notre ensemble de données, ce qui nous aidera à découvrir d'autres informations cachées. Python dispose de nombreuses bibliothèques qui fournissent des fonctions permettant de réaliser des visualisations de données sur des ensembles de données. Nous pouvons utiliser le Pandas pour créer un nuage de points des caractéristiques ou des champs de notre ensemble de données les uns par rapport aux autres, et le `matplotlib` qui fournit une API orientée objet pour intégrer les graphiques dans les applications.

```python
x = data.values
plt scatter(x[:,0], x[:,1])
plt show()
```

<figure><img src="image_2.png" /></figure>
Maintenant, commençons à adapter cela à un modèle de forêt d'isolement avec un paramètre de contamination défini à 10 %, qui la part (suspectée) des valeurs aberrantes dans l'ensembles de données.

<figure><img src="image_3.png" /></figure>

A partir de la visualisation du graphique, la région numéro 16, 21, et 22 qui sont Melaky, Menabe et Vatovavy fitovinany, ont des anomalies à 10% par rapport autres régions. En modifiant la valeur de contamination, nous avons des résultats suivants :

contamination = .05

contamination = .1
<figure><img src="image_4.png" /></figure>

<figure><img src="image_5.png" /></figure>

<figure><img src="image_6.png" /></figure>

<figure><img src="image_7.png" /></figure>

contamination = .15

<figure><img src="image_8.png" /></figure>

contamination = .2

<figure><img src="image_9.png" /></figure>
<figure><img src="image_10.png" /></figure>

IV. CONCLUSION

Pour conclure, la détection d'anomalies est l'une des applications les plus intéressantes des algorithmes d'apprentissage non supervisés. Cet article nous démontre que la détection des anomalies peut être appliquer sur tous les différents domaines, comme sur les données de la démographie par rapport au nombre de bureau de l'état civil à Madagascar. Pour ce faire, nous avons appliqué la méthode iForest qui est très utilisée dans plusieurs travaux de détection des anomalies. L'analyse de la concordance des variables entre les données, nous a permis d'identifier les régions qui sont différents par rapport aux autres régions, concernant le rapport au nombre de bureaux d'état-civil, rayon moyen d'action théorique et population moyenne desservie par région. Le nombre des régions suspectés dépend de la valeur de la contamination. Plus on augmente la valeur de la contamination, le nombre des régions suspectés s'augmente aussi.

Bien que l'algorithm e iForest soit efficace dans l'isolation des données aberrantes, il présente d'inconvénient : la difficulté à l'interprétation. Il est toujours difficile de savoir la contribution de chaque variable dans cet algorithme d'isolation et de comprendre pourquoi des observations particulières reçoivent un score élevé.

Dans un travail futur, nous allons appliquer l'intelligence artificielle, qui s'emblé être l'outils très important à utiliser pour
connaitre les données, pour analyser de données.

REFERENCES

[1] « Identification of Outliers », Irad Ben-Gal, 16 pages, 2005.

[2] « Controlling quality and amount of mitochondria by mitophagy: insights into the role of ubiquitination and deubiquitination. » Biol Chem, 2016, 397(7):637-47. Tan T, Zimmermann M, Reichert AS

[3] « Body stiffness in orthogonal directions oppositely affects worm-like robot turning and straight-line locomotion », A Kandhari, Y Huang, K A Daltorio, H J Chiel and R D Quinn, 2018, 17 pages.

[4] « Anomaly Detection: A Survey », Varun Chandola, Arindam Banerjee, Vipin Kumar, September 2009, 72 pages.

[5] In Managing and Mining Sensor, Charu C Aggarwal and Tarek Abdelzaher Data, pages 237–297, 2017.

[6] « Alternative polyadenylation diversifies post-transcriptional regulation by selective RNA-protein interactions », Ishaan Gupta, Sandra Clauder-Münster, Bernd Klaus, Aino I Järvelin, Raeka S Aiyar1, Vladimir Benes, Stefan Wilkening, Wolfgang Huber, Vicent Pelechano & Lars M Steinmetz. 2014, 11 pages.

[7] « Isolation and identification of fungal communities in compost and vermicompost », Antonella Anastasi, Giovanna Cristina Varese, Valeria Filipello Marchisio, Pages 33-44, 2017

[8] « A study of radiative properties of fractal soot aggregates using the superposition T-matrix method », Journal of Quantitative Spectroscopy & Radiative Transfer 109 (2008) 2656–2663
[9] « Impact of declining Arctic sea ice on winter snowfall », Jiping Liu, Judith A. Curry, Huijun Wang, Mirong Song, and Radley M. Horton, 6 pages, 2012.

[10] « Rapport d'évaluation des systèmes d'enregistrement des faits d'état-civil et d'établissement des statistiques de l'état-civil », Ministère de l'intérieur et de la décentralisation, Comité National de Coordination en charge de l'amélioration des systèmes nationaux d'état-civil et d'établissement des statistiques de l'état-civil, Madagascar Novembre 2017, 83 pages.