• Aucun résultat trouvé

Les essaims particulaires pour la classification : CPSO

Chapitre 5 : Approches de la Swarm Intelligence pour la Prédiction de Fonction des

5.4. Les essaims particulaires pour la classification : CPSO

CPSO

Pour la construction de notre deuxième classifier basé swarm, nous avons choisi la variante CPSO (Constricted Particle Swarm Optimization) [SOU 03, 04, KAB 11] de l‘algorithme conventionnel PSO. Le modèle CPSO a été développé spécialement pour la tâche de découverte de règles de classification de la fouille de données et nous a paru être le plus approprié pour notre problématique.

Dans CPSO, un coefficient de constriction - χ a été ajouté afin de limiter les changements de vitesse dans le but de forcer l‘essaim à converger, car si la vitesse de la particule était autorisée à changer sans limite, l'essaim ne convergera jamais vers un optimum, parce que les oscillations de particules seraient de plus en plus grandes.

5.4.1.

Représentation de la règle

Il y a deux approches distinctes pour la représentation des règles de classification, l‘approche Michigan et l‘approche Pittsburgh. Dans l'approche Michigan chaque individu (particule) code pour une seule règle, alors que dans l'approche Pittsburgh chacun code pour un ensemble de règles. Dans l‘algorithme CPSO, c‘est l‘approche Michigan qui est utilisée, et les règles sont codées comme un tableau à virgule flottante; chaque attribut est représenté par un ou deux éléments sur la matrice, en fonction de son type. Les attributs nominaux sont affectés à un élément du tableau et les tests de correspondances d‘attributs sont définis comme suit: 𝑚 𝑣𝑟, 𝑣𝑖 = 𝑣𝑟𝑎𝑖 𝑠𝑖 𝑣𝑟 × # 𝑖𝑑𝑥 = 𝑣𝑖× # 𝑖𝑑𝑥

𝑓𝑎𝑢𝑥 𝑠𝑖𝑛𝑜𝑛 (5.4)

Où 𝑣𝑟 est la valeur de l‘attribut stocké dans la règle pour le test et 𝑣𝑖 est valeur d‘instance stockée dans l‘ensemble de données normalisé.

Les entiers et les réels sont assignés avec un élément supplémentaire dans le tableau afin de réaliser l‘intervalle de valeurs à la place d‘une seule valeur :

𝑚 𝑣𝑟1, 𝑣𝑟2, 𝑣𝑖 = 𝑣𝑟𝑎𝑖 𝑠𝑖 𝑣𝑓𝑎𝑢𝑥 𝑠𝑖𝑛𝑜𝑛 𝑟1 ≥ 𝑡 𝑜𝑢 𝑣𝑟1− 𝑣𝑟2 ≤ 𝑣𝑖𝑜𝑢 (𝑣𝑟1+ 𝑣𝑟2) ≥ 𝑣𝑖 (5.5)

Où 𝑡 est la valeur du seuil d‘indifférence, 𝑣𝑟1 peut être vu comme le centre et 𝑣𝑟2 comme un

rayon de voisinage, à l'intérieur duquel se produit l'appariement.

5.4.2.

Découverte des règles

Dans les algorithmes PSO, une particule décide où aller après, en se basant sur sa propre expérience, qui est la mémoire de sa meilleure position passée, et l‘expérience de sa meilleure voisine. Il y a différents concepts et valeurs pour le voisinage, il peut être vu comme un voisinage spatial déterminé par une distance euclidienne entre les positions de deux particules, ou comme un voisinage sociométrique (ex : index de position dans le tableau de stockage). Dans CPSO, c‘est la distance euclidienne normalisée qui est utilisée. Le nombre de voisins (𝑘) généralement considéré est soit 𝑘 = 2 ou 𝑘 = 𝑡𝑜𝑢𝑠. Le pseudo-code pour CPSO est le suivant :

Initialiser_swarm() Répéter

Pour 𝑝 = 1 jusqu‘à nombre de particules faire Evaluer (p)

MAJ_experiences_passées(𝑝) MAJ_meilleur_voisinage (𝑝, 𝑘)

Pour 𝑑 = 1 jusqu‘à nombre de dimensions faire Déplacer (𝑝, 𝑑)

Jusqu‘à critère d‘arrêt

Algorithme 5.2. Pseudo-code de l‘algorithme CPSO [SOU 03, 04].

Inévitablement, avec plus ou moins d'itérations, l'essaim converge vers un optimum (peut-être juste local). Dans CPSO, le critère d‘arrêt de la boucle « répéter – jusqu’à » est la réalisation que toutes les particules dans l'essaim sont à une distance définie par l'utilisateur de la meilleure particule dans l'essaim. Afin de manipuler des distances de seuil équivalent, en considérant que l‘intervalle de distance changera selon le nombre de dimensions, la formule de la distance utilisée est la distance euclidienne normalisée :

𝑑 𝑝1, 𝑝2 = (𝑝1 𝑖 − 𝑝 2𝑖)2 𝑛 𝑖=1 𝑑. (5.6) Où 𝑝1 et 𝑝2sont les particules et 𝑑 le nombre de dimension, 𝑝1𝑖 la position pour la i-ème valeur

de coordonnées de la particule 𝑝𝑛. Comme chaque coordonnée de dimension est délimitée à l'intervalle 0.0, 1.0 , la valeur maximale pour (𝑝1𝑖 − 𝑝

2𝑖) est 1.0, qui lorsqu‘elle est au carré,

Il y a un besoin de maintenir et de mettre à jour les meilleures positions précédentes des particules (𝑃𝑖𝑑) et la meilleure position du voisinage (𝑃𝑔𝑑). Il y a également la vitesse (𝑉𝑖𝑑)

associée à chaque dimension, qui représente une incrémentation à faire à chaque itération, à la dimension associée (formule 5.7), ce qui permet à la particule de changer sa position dans l‘espace de recherche.

𝑣𝑖𝑑 𝑡 = 𝜒 𝑣𝑖𝑑 𝑡 − 1 + 𝜑1𝑖𝑑 𝑃𝑖𝑑 − 𝑥𝑖𝑑 𝑡 − 1 + 𝜑1𝑖𝑑 𝑃𝑔𝑑 − 𝑥𝑖𝑑 𝑡 − 1

𝑥𝑖𝑑 𝑡 = 𝑥𝑖𝑑 𝑡 + 𝑣𝑖𝑑 𝑡 (5.7) Où 𝜑1et 𝜑2sont des poids aléatoires définis par une limite supérieure, 𝜒 est le coefficient de constriction fixé à 0.73. L‘effet général de la formule (5.7) est que chaque particule oscille dans l'espace de recherche entre sa précédente meilleure position et la meilleure position de son meilleur voisin, en espérant trouver de nouveaux meilleurs points au cours de sa trajectoire. Si la vitesse de la particule était autorisée à changer sans limite, l'essaim ne convergerait jamais vers un optimum, car les oscillations de particules seraient de plus en plus grandes. Les changements de vitesse sont donc limités par χ - le coefficient de constriction, forçant l'essaim à converger. La valeur de ce paramètre et celles des limites supérieures sur 𝜑1et 𝜑2 peuvent être choisies pour garantir la convergence. Dans l‘algorithme CPSO utilisé, 𝜒 a été fixé à 0.73, tandis que 𝜑1et 𝜑2 ont été fixés à 2,05.

5.4.3.

Evaluation de la règle

Les règles doivent être évaluées au cours du processus d‘apprentissage afin d‘établir les points de références de l‘algorithme d‘apprentissage : le meilleur positionnement de la particule. La fonction d‘évaluation de la règle ne doit pas tenir compte que des instances correctement classées mais aussi de celles qui sont mal classées ou pas classées du tout.

La formule utilisée pour évaluer une règle et qui, par conséquent définit sa qualité, est exprimée dans l'équation suivante :

𝑄 𝑋 = 𝑇𝑃+𝐹𝑁𝑇𝑃 × 𝑇𝑁

𝑇𝑁+𝐹𝑃 𝑠𝑖 0.0 ≤ 𝑥𝑖 ≤ 1.0, ∀𝑖 ∈ 𝑑

−1.0 𝑠𝑖𝑛𝑜𝑛 (5.8) Où :

 TP (True Positive) – vrai positif : représente le nombre d‘instances couvertes par la règle qui sont correctement classées.

 FP (False Positive) – faux positif : représente le nombre d‘instances couvertes par la règle qui sont mal classées.

 TN (True negative) – vrai négatif : représente le nombre d‘instances non-couvertes par la règle, dont la classe diffère de la classe cible de l‘apprentissage.

 FN (False Negative) – faux négatif : représente le nombre d‘instances non-couvertes par la règle, dont la classe correspond à la classe cible de l‘apprentissage.

Cette formule pénalise une particule, qui sort des valeurs permises en lui assignant une valeur négative (-1,0), l'obligeant ainsi à revenir à l'espace de recherche.

5.4.4.

Algorithme de couverture pour la construction de l’ensemble

de règles

L‘algorithme de couverture est essentiellement une technique diviser et conquérir. Etant donné un ensemble d‘apprentissage d‘instances, il exécute l‘algorithme de découverte de règles afin d‘obtenir la règle de haute qualité pour la classe prédominante dans l‘ensemble d‘apprentissage.

Les instances correctement classées sont ensuite retirées de l‘ensemble d‘apprentissage et l‘algorithme de découverte de règles est exécuté, une fois de plus. L‘ensemble de règles est construit itérativement et l‘algorithme de la découverte de règles est exécuté jusqu‘à ce qu‘un nombre prédéfini de classes soient ignorées. Cette valeur de seuil est définie par l‘utilisateur comme pourcentage et est généralement fixée à 10%.

Une règle par défaut, pour capturer et classer les instances qui n‘ont pas été classées par les règles précédentes est ajoutée à l'ensemble de règles. Elle ne contient pas de tests d'attributs et prédit la même classe que celle prédominante dans les instances restantes, cette règle prend la forme: si vrai alors classe-x.

Ensuite un algorithme de validation évalue statistiquement la précision de l‘ensemble de règles obtenues en utilisant la méthode de la validation croisée (10 fold cross validation).

5.4.5.

Elagage d’une règle et nettoyage de l’ensemble de règles

Dans les problèmes de découverte de règles de classification, le nombre de tests d'attributs par règle et le nombre de règles par ensemble est d‘une importance majeure pour l'intelligibilité des résultats obtenus - moins de tests d'attributs et des règles facilement compréhensibles. Après qu‘une règle soit retenue par l'algorithme de découverte de règles de classification, elle passe par un processus d'élagage afin d'éliminer les tests d'attributs inutiles. Cela se fait en supprimant de manière itérative chaque test d'attribut lorsque la règle nouvellement obtenue a la même valeur ou est de meilleure qualité que la règle d'origine.

Après que l'algorithme de couverture retourne l‘ensemble de règles, un autre post-traitement est réalisé: le nettoyage de l‘ensemble de règles, où les règles qui ne seront jamais appliquées sont retirées de l'ensemble de règles. Comme les règles dans l'ensemble de règles sont appliquées de manière séquentielle, dans de post-traitement, elles sont retirées de l‘ensemble de règles si:

 Il y a une règle précédente dans l'ensemble de règles qui a un sous-ensemble des tests d'attributs de la règle.