Data Mining

 

Sommaire

 
Techniques descriptives

    Deux des principales techniques descriptives du data mining sont la segmentation et la recherche d'associations.

La segmentation

        C'est l'opération qui consiste à répartir les données en un nombre limité de groupes ou de segments (ou clusters) ayant deux propriétés. D'une part, ils ne sont pas prédéfinis mais découverts automatiquement au cours de l'opération, contrairement aux classes de la Classification. D'autre part, les segments regroupent des données (ou des individus) ayant des caractéristiques similaires pour aboutir à une homogénéité interne et une hétérogénéité externe, ce qui peut être mesuré par des critères tels que celui de Concordet ou de l'inertie interclasse.

Elle est utilisée pour sa capacité à traiter les données sans en privilégier aucune (une variable cible), et pouvoir traiter des données hétérogènes ainsi qu'un grand nombre de variables.

En marketing, par exemple, cette technique descriptive est particulièrement adaptée pour la recherche des différents profils de clients, inconnus à priori.

La définition des segments est loin d'être évidente et peut différer selon l'algorithme, la détermination d'un nombre réel de segments est plus empirique que théorique.

La segmentation relationnelle

Principe

Une Segmentation relationnelle est définie comme une realtion d'équivalence R, où iRj si i et j sont dans le même segment. C'est une relation binaire définie sur un ensemble de n objets, on peut donc lui associer une matrice nxn définie par

mij = 1 si iRj et mij = 0 sinon.

On rappelle qu'une relation d'équivalence est réflexive, transitive et symétrique ce qui se traduit par:

mij = 1

mij = mji

mij + mjk - mik <= 1

La recherche d'une segmentation revient donc à chercher une matrice satisfaisant aux conditions précédentes.

Soit p variables catégoriques (nécessaire à ce type de segmentation). A chacune des p variables correspond une segmentation naturelle c'est à dire un ensemble d'individus ayant la même modalité pour la variable considérée. L'objectif est de trouver un bon compromis entre les p segmentations naturelles initiales. Pour cela, on pose mij le nombre de fois où les individus i et j ont été mis sur a même segment (le nombre de variables pour lesquelles i et j ont les mêmes valeurs).

On pose M' = (m'ij) où m'ij = 2 mij - p

m'ij > 0 si i et j sont dans le même segment où coïncident pour une majorité de variables.

m'ij < 0 si i et j sont dans des segments différents pour une majorité de variables.

m'ij = 0 s'il y a autant de variables pour lesquelles i et j sont réunis et séparés.

Il est naturel de grouper i et j si m'ij est positif et les séparer s'il est négatif. Mais si le critère ne suffit pas pour cause de non transitivité de la règle de majorité (paradoxe de Condorcet): on peut avoir une majorité pour i et j, j et k, mais pas pour réunir i,j et k.

Il faut donc ajouter des contraintes de la relation d'équivalence citée de la forme précédente pour trouver une segmentation satisfaisant au mieux la majorité des p segments initiaux. Ceci se ramène à un problème de programmation linéaire qui se résout bien comme l'ont montré les travaux de Marcotorchino et Michaud.

Mise en oeuvre

Soit une paire d'individus A et B. On commence par poser:

- m(A,B) := Nombre de variables ayant la même valeur pour A et B.

- d(A,B) := Nombre de variables ayant des valeurs différentes pour A et B.

Pour les variables continues on définit leur contribution c(A,B) ci-dessous définie par 1- (2|v(A)- v(B)|/(vmax - vmin)) où vmax, vmin sont les valeurs extrêmes de la variable v.

Le critère de Concordet de deux individus A et B est défini comme étant:

c(A,B):=m(A,B) - d(A,B)

Le critère de Concordet pour un segment S et un individu A est définit comme:

c(A,S) =  Somme sur tous les Bi de S de c(A, Bi)

Ceci posé, on commence la formation des segments en plaçant chaque individu A das le segment où c(A,S) est maximal.

En résumé, on prend un individu A et on le compare à tous les autres individus, pour le regrouper éventuellement avec un autre individu Ba. On prend un deuxième individu B que l'on compare à tous les autres et aux individus Ba et A.

On réitère le processus jusqu'à stabilité, le critère de Concordet ne s'améliore plus où jusqu'à atteindre le nombre maximal d'itérations.

Avantages et inconvénients

Avantages

- Déterminer automatiquement le nombre de segments au lieu de le fixer.

- Temps d'exécution croissant linéairement en fonction de la quantité de données.

- Segmentation globale.

Inconvénients

La redondance de quelques variables va être déterminante dans la mesure où elle oriente les résultats en sa faveur.

La segmentation neuronale

Les réseaux de Kohnen

Avant d'aborder ce thème, il est judicieux d'avoir une idée sur les réseaux neurones incontournables en data mining

C'est un réseau de neurones dit auto adaptatif, qui ne possède pas de variables à prédire donc pas de couches de sortie. Son but est "d'apprendre" la structure des données pour pouvoir y distinguer la structure des segments.

Il se compose de 2 niveaux:

- Une couche d'entrée avec un noeud pour chacune des n variables utilisées.

- Une couche cachée avec des noeuds disposés en grille rectangulaire (de l x m noeuds). Chaque noeud de cette couche est connecté à tous les noeuds de la couche d'entrée avec un poids pijk (i varie de [1, l], j varie de [1, m], k varie de [1, n] ). Les noeuds de la couche cachée ne sont pas connectés entre eux.

On initialise les poids pijk aléatoirement, ensuite pour tout individu (xk) de l'échantillon d'apprentissage, on calcule les distances euclidiennes le séparant des l.m noeuds.

dij(x) = Somme de 1 à n de (xk - pijk

Le noeud retenu pour représenter (xk) est le noeud (i,j) pour lequel dij(x) est minimum. Ce noeud et tous les noeuds 8-voisins voient leur poids ajustés afin de les rapprocher de l'individu en entrée mais la taille du voisinage diminue au cours de l'apprentissage, il peut être réduit au noeud lui même.

Les nouveaux poids sont pijk + T (xk-pijk) où T est le taux d'apprentissage variant dans [0,1] évoluant de manière linéaire où exponentielle pour diminuer au cours de l'apprentissage.

C'est l'extension à tout le voisinage du noeud "gagnant " de l'ajustement des poids, qui rapproche les noeuds voisins de (i,j) de l'individu en entrée et qui permet à des individus proches dans l'espace des variables d'être représentés par des noeuds identiques ou voisins de la couche, lesquels noeuds correspondent à des segments d'individus. Le nombre de segments identifié par le réseau pourrait être inférieur à l.m

Tout se passe comme si la grille se déformait pour permettre le passage des nuages d'individus en s'approchant au plus près des individus.

Le réseau de Kohonen fonctionne en représentant chaque individu en entrée per le noeud du réseau qui lui est le plus proche au sens de la distance définie ci-dessus. Ce noeud sera le segment de l'individu.

Avantages et inconvénients

Une des forces des réseaux de Kohonen est de modéliser les relations non linéaires entre les données et permettent de fixer automatiquement le nombre de segments

Toutefois les défauts de cet algorithme sont multiples

- Le nombre d'itérations nécessaire à un résultat satisfaisant est de 5 à 10 itération contre 2 à 3 pour la segmentation relationnelle.

- Un bon apprentissage requière un échantillon de taille conséquente comprenant le plus grand nombre de modalités possibles.

- La distance euclidienne de 2 variables catégoriques n'est pas forcément très significative.

La segmentation hiérarchique ascendante

      Elle produit une suite de partitions emboîtées, entre la partition en n segments où chaque individu est isolé, et la partition en 1 segment qui regroupe tous les individus.

L'algorithme fonctionne en recherchant à chaque étape les deux classes les plus proches pour les fusionner , et le "sel" de cet algorithme réside dans la définition de la distance de deux classes. La notion correspondant le mieux à la segmentation est l'inertie interclasse. Une bonne segmentation est une segmentation pour l'inertie interclasse est élevée. Comme le passage d'une segmentation en k + 1 à une segmentation en k segments ne fait que baisser l'inertie interclasse. Les 2 segments fusionnés seront ceux qui feront le moins baisser cette inertie.

Remarque

Soit I l'inertie de la population qui est la moyenne des carrées des distances des individus au barycentre (centre de gravité) de la population.

L'inertie interclasse Ir est définie comme la moyenne (pondérée par l'effectif de chaque segment ) des carrées des distances des barycentres de chaque segment au barycentre global.

Inconvénients

La complexité algorithmique n'est pas linéaire car pour passer de (k + 1) à ((k + 1)k)/2 distances et réunir les 2 segments les plus proches puis recalculer les distances avant de recommencer.

Les segments construits ont tendance à être de même taille (même problème que la segmentation neuronale)

A chaque étape le critère de partitionnement n'est pas global mais local et dépende des segments déjà obtenus. 2 individus placés dans des segments différents ne seront plus comparés. Cette segmentation n'est jamais la meilleure possible mais la meilleure obtenue entre celles obtenues en réunissant des segments en n+1 segments.

La recherche d'associations

Principe

Une association est une règle du type

"Si pour un individu, la variable A = xa, la variable B = xb, etc, alors dans 80% des cas la variable Z = xz, cette configuration se rencontrant pour 20% des individus."

La valeur 80% est dite indice de confiance et la valeur de 20% est dite indice de support

Une règle est donc une expression de la forme

SI condition alors Résultat

Exemple

SI couches et samedi alors bière

Pour traduire la règle disant que la plupart des gens qui achètent des couches les Samedis achètent de la bière avec.

L'indice de support est la probabilité:

proba(condition et résultat)

l'indice de confiance est la probabilité:

proba(condition et résultat)/proba(condition)

Exemple

Chaque ligne correspond à un ticket de caisse Tx, et chaque colonne à un produit A,B... L'indice de confiance de l'association B -> E est 3/4 et son indice de support est de 3/5.

T26 A B C D E
T163 B C E F  
T1728 B E      
T2718 A B D    
T3141 C D      

 

Indice de confiance de C -> B est de 2/3 et celui de support est de 2/5.

La probabilité d'avoir B est de 0.8 > 2/3 ce qui implique que utiliser la règle C -> B pour prédire B ne sert à rien.

L'amélioration apportée par une règle par rapport à une réponse au hasard est appelée "lift" et vaut

lift(règle) = Indice_confiance (règle)/proba(résultat)

= proba(condition et résultat)/(proba(condition)*proba(résutat)

Si lift < 1, la règle n'apporte rien.

On note que si le lift d'une règle du type (SI condition alors résultat) est < 1alors le lift de la règle inverse (SI condition alors NON résultat) est > 1 puisque

indice_Confiance (règle inverse)= 1 - indice_confiance(règle)

et

proba(Non résultat) = 1 - proba(résultat)

 

Si une règle n'est pas utile alors on peut toujours essayer la règle inverse.

La principale difficulté de la la mise en oeuvre réside dans le grand nombre de règles d'associations inintéressantes qui submergent celles qui peuvent être utiles.



Copyright © [Nizar Jegham] 2003/2004 - DEA informatique fondamentale - filière logiciels et réseaux