IFT 501 Recherche d'information et forage de données Chaptitre 8 : Classification automatique concepts de base et algorithmes André Mayers Automne 2014.

Slides:



Advertisements
Présentations similaires
Explorer un espace d’états
Advertisements

Gestion de portefeuille
Gestion de portefeuille
Regroupement (clustering)
Efficient Simplification of Point-Sampled Surfaces
Regroupement (clustering)
A Pyramid Approach to Subpixel Registration Based on Intensity
Optimisation dans les télécommunications
Programmes de calculs en 3ème
Traitement Co-Séquentiel: Appariment et Fusion de Plusieurs Listes
Utilisation des tableaux
Concepts avancés en mathématiques et informatique appliquées
UNIVERSITE DES SCIENCES ET DE LA TECHNOLOGIE D’ORAN
Plus courts chemins On présente dans ce chapitre un problème typique de cheminement dans les graphes : la recherche d'un plus court chemin entre deux sommets.
5. Algorithme à estimation de distribution
Algorithmique et Programmation
Heuristiques A. Introduction B. Recherche d ’une branche
Methode de Tri efficace
Algorithme d’addition #1
Concepts avancés en mathématiques et informatique appliquées MAP-6014.
Groupe 1: Classes de même intervalle
La segmentation
RECONNAISSANCE DE FORMES
Algorithmique et Programmation
Gestion de Fichiers Arbres B.
Algorithme de Bellman-Ford
Les Fonctions. Définir une fonction Sections de code indépendantes que lon peut appeler à nimporte quel moment et dans nimporte quel ordre. Bout de code.
Introduction à la programmation I Fonctions Structures de contrôle Structures de données (arrays simples et indexés) Variables locales et globales.
Programmation linéaire en nombres entiers Algorithme de la subdivision successive («Branch and Bound Algorithm»)
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
CSI 4506: Introduction à l’intelligence artificielle
Algorithmes d ’approximation
Optimisation dans les réseaux
Recherche Opérationnelle
RECONNAISSANCE DE FORMES
Mise en oeuvre des MMCs L'utilisation des MMCs en reconnaissance des formes s'effectue en trois étapes : définition de la topologie de la chaîne de Markov,
Interprétation automatique
Programmation dynamique
GPA750 – Gestion de Projets
2. Optimisation sans contrainte Fonctions à une seule variable
8INF8061 Conception et analyse des algorithmes Comment comparer deux problèmes?
Planification de flux et Aménagement
Programmation linéaire en nombres entiers : les méthodes de troncature
Modélisation géométrique de base
Heuristiques C. Recherche de la meilleure branche . Branch And Bound
les méthodes de recherche locale
Optimisation par les algorithmes génétiques
Groupement (Clustering)
Programmation linéaire en nombres entiers
I.A. Session 2009/2010 E.P.S.I. Bordeaux – C.S.I.I – 2 ème Année – Cours n°6.
Foued Mnasri Weal Rekik
GF-11: Tri Interne Efficace et Tri Externe
CSI 4506: Introduction à l’Intelligence Artificielle
Travaux Pratiques Optimisation Combinatoire
Les tris Tri Action de mettre une structure de données en ordre (croissant ou décroissant). Le plus simple est d’insérer en ordre. Les algorithmes de tri.
Recherches locales et méta-heuristiques
Classification de données par l’algorithme FPSO-GA
Sujets spéciaux en informatique I
Optimisation pour la Conception de Systèmes Embarqués
Recherche de motifs par projections aléatoires
Dr. MOKEDDEM République Algérienne Démocratique et Populaire
Post-optimisation, analyse de sensibilité et paramétrage
Résolution des équations différentielles
Structures de données IFT-2000
Programmation créative – Les vecteurs
IFT 501 Recherche d'information et forage de données Chaptitre 8 : Classification automatique concepts de base et algorithmes André Mayers Automne 2014.
SURVOL DE LA SEGMENTATION IFT 501 Recherche d'information et forage de données Chapitre 8 : Classification automatique Section
Processus ponctuels Caractéristiques et Modèles de répartitions spatiales.
Transcription de la présentation:

IFT 501 Recherche d'information et forage de données Chaptitre 8 : Classification automatique concepts de base et algorithmes André Mayers Automne

L’ALGORITHME DES K-MOYENNES ET SES VARIANTES Section 8.2 (page 496) 2

Concepts de base But des algorithmes de cette section : Construire une partition d’une base de données de n objets en K segments. ◦ Étant donné K, trouver une partition de K segments qui optimise une fonction objective (un critère d’évaluation de la segmentation).  Pour trouver l’optimum global, il n’y a pas de méthode générale efficace il faut souvent examiner toutes les partitions possibles  k-moyennes et k-médoïde sont des méthodes permettant de trouver des optimums locaux. k-moyennes ◦ MacQueen 1967 ◦ Chaque segment est représenté par son centre. k-medoïdes or PAM (Partition around medoids) ◦ Kaufman & Rousseeuw, 1987 ◦ Chaque segment est représenté par un objet du segment. 3

Trace d’exécution de k-moyennes K=2 choisir deux objets comme centres affecter tous les objets au centre le plus proche mettre à jour les centres des segments réaffecter 4

L’algorithme des K-moyennes Sélectionner K points pour être les centroïdes initiaux ◦ Peut-être fait aléatoirement ou en partitonnnant la base de données en K partitions dont on choisit le centroïde Tant que les centroïdes changent d’une itération à l’autre ◦ Former les K segments en affectant chacun des points au centroïde le plus proche ◦ Recalculer le centroïdes de chaque segment Caractéristiques ◦ L’idée de base de l’algorithme est très simple ◦ Segmentation par partitionnement ◦ Les segments sont définis par leurs prototypes ◦ Le nombre de segments doit être spécifié ◦ Il faut choisir  une fonction distance  une définition de centroïde 5

Commentaires généraux sur l’algorithme Les centroïdes initiaux peuvent varier d’un essai à l’autre ◦ Les segments produits peuvent différer d’un essai à l’autre Le centroïde est typiquement le centre des points La proximité est typiquement mesurée par la distance euclidienne, la similarité du cosinus, … L’algorithme converge en général pour les mesures typiques de similarité Souvent l’algorithme converge en quelques itérations ◦ la condition d’arrêt peut être “seul l’appartenance d’un petit nombre de points est modifié d’une itération à l’autre” Complexité est O( n * K * I * d ) ◦ n = # de points, K = # de segments, I = # d’itérations, d = # d’attributs 6

2 partitions différentes produites par 2 exécutions de l’algorithme Partitionnement non- optimalPartitionnement optimal Les données 7

Description des symboles x : Un objet C i : le i ième segment c i : Le centroïde du segment C i. c : Le centroïde de l’ensemble des données. m i : # d’objets dans le i ème segment. m : # d’objets dans la base de données K : # segments Remarque : le centroïde n’est pas nécessairement celui de la physique, i.e. la moyenne 8

La définition de la fonction objective et du centroïde La fonction objective d’un algorithme de forage de donnée est une fonction que l’on cherche à maximiser ou minimiser afin de se rapprocher du résultat voulu. Les algorithmes sont conçus pour itérer tant que l’évaluation de la fonction objective n’a pas atteint un seuil déterminé. Pour l’algorithme K-moyennes, cette évaluation est cachée sous l’étape « Tant que les centroïdes changent d’une itération à l’autre » ◦ Si les centroïdes changent, c’est que toutes les données n’avaient pas été associées au centroïde le plus proche et que les centroïdes idéaux selon cet algorithme n’avaient pas été trouvés. Un centroïde idéal celui qui minimise sa distance aux points qui lui sont associés ◦ La notion de distance peut varier avec la nature du problème 9

Les mesures de distances 10

Fonction objective et centroïde pour un espace euclidien 11

Fonction objective et centroïde pour des données documentaires 12

L’impact du choix des centroïdes inititiaux S’il y a autant de centroïdes qu’il y a de vrais segments et qu’ils se trouvent chacun dans un segment alors l’algorithme converge vers les vrais segments ◦ Mais on ne connait pas au départ où se trouvent les segments et on ignore parfois le nombre de segments. Les prochaines diapositives illustrent ce qui se passe lorsque les centroïdes ne se trouvent pas dans les segments 13

L’impact du choix des centroïdes inititiaux 14

L’impact du choix des centroïdes intitiaux 15

L’impact du choix des centroïdes intitiaux 16 Centres des segments choisis initialement

L’impact du choix des centroïdes intitiaux 17

L’impact du choix des centroïdes intitiaux 18 Comment est-on arrivé à un tel résultat ? (prochaine diapositive)

L’impact du choix des centroïdes intitiaux La capture de deux segments par un centroïde est possible si 1) deux segments sont plus proches entre eux que entre chacun de ceux-ci et les autres segments ; 2) il y a un seul centroïde proche de ces 2 segments. 19

L’impact du choix des centroïdes intitiaux Chaque paire de segments rapprochés ont deux centroïdes 20

L’impact du choix des centroïdes intitiaux Les paires de segments rapprochés n’ont pas deux centroïdes 21

La sélection des centroïdes initiaux La probabilité d’avoir un seul centroïde dans chaque segment (K est le nombre de segments réels) diminue rapidement avec la valeur de K et la taille des segments 22

Solution au problème des centroïdes initiaux Multiples exécutions ◦ Les probabilités ne sont pas de notre côté À partir d’un échantillon, déterminer les centroïdes initiaux par une méthode de segmentation hiérarchique Choisir un premier centroïde aléatoirement ou comme étant le centre des données et ensuite choisir sucessivement k-1 centroïdes comme étant les points les plus éloignés des centroïdes déjà choisis. Traiter le problème une fois la segmentation terminée  voir diapositive un peu plus loin Choisir une variante moins susceptible au problème du choix des centroïdes initiaux ◦ Mise à jour incrémentale des centroïdes  exemple : K-moyen par bisection  voir diapositives un peu plus loin 23

Que faire des segments vides L’algorithme de base peut donner naissance à des segments vides Plusieurs stratégies pour choisir un autre centroïde ◦ Choisir le point qui se trouve le plus loin de tous les autres centroïdes  au minimum, on enlève le point qui contribue le plus à la valeur du SSE ◦ Choisir un point à l’intérieur du segment ayant le plus grand SSE  Cela entraînera la division de ce segment en deux ◦ S’il y a plusieurs segments vides alors il faut réappliquer l’une des 2 statégies précédentes. 24

Réduction du SSE lors du post-traitement Comme le SSE total est la somme des SSE des segments, les stratégies consistent à diminuer globalement le SSE des segments. Pour conserver K constant, les stratégies alternent entre deux phases : 1.division d’un segment ou introduction d’un nouveau centre 2.fusion de deux segments ou dispersion d’un segment division d’un segment ◦ Celui qui contribue le plus au SSE total ou celui dont l’écart type d’un de ses attributs est le plus grand introduction d’un nouveau centre ◦ souvent le point le plus éloigné de tous les centres ou un point du segment contribuant le plus au SSE total fusion de deux segments ◦ souvent les segments les plus rapprochés, ou les deux dont la fusion accroît le moins le SSE total dispersion d’un segment ◦ il s’agit de réaffecter tous les point du segment contribuant le plus au SSE total. 25

Mise à jour incrémentale des centroïdes Dans l’algorithme k-moyennes de base, tous les centroïdes sont recalculés après que tous les points ont été affectés à des segments. Une alternative est de recalculer les centroïdes après chaque affectation (approche incrémentale) Les caractéristiques de la mise à jour incrémentale ◦ Chaque affectation entraîne le calcul de 0 (affecter au même segment) ou 2 centroïdes (affecter à un autre segment) ◦ Possible de calculer l’affectation qui optimise une fonction objective arbitraire (différente de SSE total) ; ◦ Plus coûteux  Mais comme la convergence est souvent rapide, le nombre de points réaffectés baisse rapidement ◦ Introduit une dépendance sur l’ordre des points choisis ◦ N’introduit jamais de segments vides 26

Le prétraitement des données La normalisation des données permet de rendre les segments indépendants des unités de mesure des attributs L’élimination des données marginales permet d’obtenir des centres de segment plus significatifs et mènent à une réduction du SSE total. ◦ Trouver les données marginales n’est pas toujours évident 27

Algorithme des k-moyennes par bisection 1. ListeDesSegments  [ ] ◦ ; un seul segment contenant tous les points 2. Tant que ListeDesSegments ne contient pas K segments faire 1.Choisir un segment de ListeDesSegments et le supprimer de la liste  Plusieurs stratégies pour choisir le segment à diviser  le plus gros  celui qui contribue le plus au SSE total  une combinaison des deux stratégies précédentes 2.Appliquer n fois l’algorithme k-moyenne avec K=2 sur ce segment 3.Ajouter la paire de segments qui minimise le SSE à ListeDesSegments 3. Appliquer K-moyenne en prenant comme point de départ ListeDesSegments ◦ les centroïdes menant à un minimum local pour chaque paire ne sont pas ceux qui menant à un minimum local pour les K segments Si on mémorise les bisections choisies de segments, on obtient une segmentation hiérarchique 28

K-moyenne par bisection : figure

Les limites de l’algorithme des k-moyennes k-moyennes donne parfois une solution qui ne se rapproche pas des segments naturels si ceux-ci sont ◦ de différentes tailles ◦ de différentes densités ◦ n’ont pas une forme globulaire k-moyenne peut donner de mauvais résultats s’il y a des données marginales Le centre d’un segment peut ne pas ressembler à aucun point réel. 30

effets des données marginales 31

effets des données marginales 32

effets de segments ayant des densités différentes la base de données la segmentation avec k-moyennes (K=3) 33

effets des segments non convexes la base de données 34

effets des segments non convexes … la segmentation avec k-moyennes (K=2) 35

effets des segments non convexes … la base de données la segmentation avec k-moyennes (K=2) 36

Aller au-delà des limites de K-moyennes La base de données Les segments produits par k moyenne Il s’agit ici de choisir K > # segment réels pour obtenir des sous-segments des segments réels et ensuite de combiner ces sous-segments. 37

Fuzzy C-Means (FCM), Dunn,1973 Une fonction d’appartenance détermine le degré d’appartenance de chaque point à chaque segment. Souvent utilisé dans la reconnaissance des motifs ◦ (pattern recognition) Utilise la fonction objective suivante 38

L’algorithme Fuzzy C-Means (FCM) 39

L’algorithme Fuzzy C-Means (FCM) 40 n données k segments

L’algorithme Fuzzy C-Means (FCM) 41

K-médoïdes PAM (Partitioning Around Medoids) PAM (Kaufman and Rousseeuw, 1987), mis en oeuvre en S+ Utilise les objets de la base de données pour représenter les segments 42

Algorithme de PAM (Partitioning Around Medoids) 43 1.Choisir K médoïdes arbitrairement parmi les objets 2.Affecter chaque objet au médoïde le plus proche 3.Pour chaque paire (o h, o k ) où o h est un non-médoïde o k est un médoïde TC kh le coût total de l’échange (swap o h o k ) si TC kh < 0, alors remplacer o k par o h 4.Répéter l’étape 2 et 3 tant qu’il y a des échanges La prochaine diapositive explique comment calculer TC kh

TCkh : le coût total de l’échange de ok par oh 44 TC kh =  i C ikh on considère l’échange de o k par o h où o k est le médoïde actuel, o h est choisi aléatoirement parmi les non-médoïdes o i est un non-médoïde quelconque ≠ o h o newmedi le médoïde le plus proche de o i après l’échange o oldmedi le médoïde le plus proche de o i avant l’échange C ikh = dist(o i, o newmedi ) – dist(o i, o oldmedi )

C ikh : le coût de l’échange de o k par o h h k t i 45 après l’échange t k h i i k h t t k hi

Illustration de l’ algorithme PAM 46 Coût total = K=2 Choisir aléatoire ment k objets Affecter chaque objet au médoïde le plus proche Choisir aléatoirement O ramdom un objet ≠ médoïde Calculer le coût total de l’échange Coût total = 26 S’il y a amélioration échanger le médoïde O avec O ramdom Itérer, tant qu’il y a des modifications

Critique de l’algorithme PAM L’algorithme PAM donne de bons résultats sur de petites bases de données mais sa complexité ne lui permet pas de traiter de grandes bases de données 47

CLARA (Clustering Large Applications) CLARA (Kaufmann and Rousseeuw in 1990) ◦ mis en oeuvre en S+ schéma de l’algorithme ◦ applique PAM à plusieurs échantillons de la base de données ◦ retourne les médoïdes de l’échantillon ayant la meilleure fonction objective s’applique à de grandes bases de données son efficacité dépend de la taille des échantillons si les médoïdes proviennent d’un échantillon biaisé alors ils ne sont pas similaires à ceux que l’on aurait trouvés avec toute la base de données 48

CLARANS (A Clustering Algorithm based on Randomized Search) CLARANS (Ng and Han, 1994) ◦ “Randomized” CLARA CLARANS crée des échantillons de voisins dynamiquement Le processus de segmentation peut être présenter comme une fouille dans un graphe où chaque noeud est une solution potentielle ◦ une solution = un ensemble de k médoïdes Si un optimum local est trouvé, CLARANS est réinitialisé avec un noeud choisi aléatoirement et continue sa fouille pour trouver un nouvel optimum local Il est plus efficace et évolutif (scalable) que PAM et CLARA Focusing techniques and spatial access structures may further improve its performance (Ester et al.’95) 49