cyclec

Upload: zaynab-fadlallah

Post on 14-Apr-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/29/2019 cycleC

    1/105

    1

    BASES DE DONNES

    DECISIONNELLES&

    FOUILLE DE DONNEESAnne LAURENT

    LIRMM POLYTECH'MONTPELLIERhttp://www.lirmm.fr/~laurent

    [email protected]

    CNAM 2004/2005

  • 7/29/2019 cycleC

    2/105

    2

    Plan

    Bases de donnes transactionnelles

    Bases de donnes dcisionnelles Entrepts de donnes et OLAP

    Fouille de donnes

    Logique floue et fouille de donnes

    Conclusion

  • 7/29/2019 cycleC

    3/105

    3

    Bases de donnestransactionnelles

    Dfinition et Historique

    Objectifs limites

  • 7/29/2019 cycleC

    4/1054

    OLTP (On-Line TransactionalProcessing)

    Bases de donnes de production

    Requtes

    Simples (accs une partie de la base)

    Frquentes

    Nombreux oprateurs

  • 7/29/2019 cycleC

    5/1055

    Modles relationnels

    Codd, annes 70

    Besoins de Cohrence

    Non redondance (normalisation 3NF, BCNF)

    Fracheur (mises jour frquentes)

    Gestion des accs concurrents (transactionsconcurrentes)

  • 7/29/2019 cycleC

    6/1056

    Exemples

    Gestion de stock (achats / ventes)

    Gestion du personnel Bibliothque

    Service facturation

    ...

  • 7/29/2019 cycleC

    7/1057

    Limites

    Limites lies aux objectifs des basestransactionnelles :

    Incapacit fournir des services dcisionnels(cot lev du calcul des jointures)

    Requtes complexes impossibles

    Navigation dans les donnes dans un butanalytique impossible

    Connaissance du SQL indispensable lamanipulation des donnes

    B d d

  • 7/29/2019 cycleC

    8/1058

    Bases de donnesdcisionnelles

    Historique

    Objectifs et applications

    Modlisation multidimensionnelle

  • 7/29/2019 cycleC

    9/1059

    Besoin de systmes d'analyse

    Annes 1990

    Codd (le mme !) - Arbor Software Croissance des volumes de donnes

    traits

    Impossibilit aux dcideurs de les traiter sansoutils informatiques

    Besoins de plus en plus complexes

  • 7/29/2019 cycleC

    10/10510

    Objectifs

    Fournir aux dcideurs des outils d'analysede leurs donnes

    Reporting

    Navigation

    Extraction de connaissances

    ...

  • 7/29/2019 cycleC

    11/105

    11

    Applications

    Analyse des rsultats

    Suivi de clientle (CRM CustomerRelationship Management)

    Dfinition de profils clients

    Dtection des mauvais fraudes

    Churning

    Anticipation

    ...

  • 7/29/2019 cycleC

    12/105

    12

    Requtes dcisionnelles

    Complexes

    Rares trs gros volumes de donnes

    Dcideurs (petit groupe)

    Vision des donnes un niveau agrg

  • 7/29/2019 cycleC

    13/105

    13

    Vision multidimensionnelle

    Analyse de faits en fonction de dimensions

    Analyse des ventes selon lapriode, lelieu, le type deproduit

    Gestion de gros volumes de donnes

    Redondance ?

  • 7/29/2019 cycleC

    14/105

    14

    Donnes historises

    Matrialises Volumineuses

    Sources htrognes

    Utilisation dcisionnelle

    Entrepts de donnes

  • 7/29/2019 cycleC

    15/105

    15

    On-Line Analytical Processing Codd 1993

    catgorie d'applications et de technologies permettant de

    collecter, stocker, traiter et restituer des donnes multidi-

    mensionnelles, des fins d'analyse.

    Exemples de requtes OLAP

    Requtes complexes

    Quel est le total des ventes de chaussures ?

    Quel est le type des meilleures ventes sur une priode donne, pourune ville prcise et un groupe dge ?

    Requtes what if

    Que se passerait-il si les prix diminuaient de 10% ?

    OLAP

  • 7/29/2019 cycleC

    16/105

    16

    (On-Line Analytical Processing)

    Requtes complexes

    Optique dcisionnelle

    Vision ensembliste (tendances ...)

    Destin aux analystes et dcideurs

    (peu nombreux)

    Requtes simples

    Production et Mise jour des donnes

    Vision au niveau individuel

    Destin aux agents oprationnels (nom-

    breux)

    OLAP vs. OLTP

    (On-Line Transaction Processing)

    OLAP vs OLTP

  • 7/29/2019 cycleC

    17/105

    17

    Exemple

    PRODUIT

    V

    ILLE

    MOIS

    55000 92000

    21000

    650009100043000

    55000

    1200056000

    78000

    23000

    85000

    8000

    88000

    Cube des ventes

    C : Produit x Ville x Mois Ventes

    tentes

    canos

    boiss

    ons

    choc

    olat

    janvier

    fvriermars

    Boston

    Chicago

    New York 85000

  • 7/29/2019 cycleC

    18/105

    18

    Dimensions

    Organisation des informations selon desdimensionsplates

    et des dimensions hirarchises

    hirarchies simples (arborescentes)

    hirarchies complexes

    Exemple :

    SEMAINE MOIS

    JOUR

    TRIMESTRE

  • 7/29/2019 cycleC

    19/105

    19

    Fonctionnement gnral

    Magasins

    de donnes

    (multidimensionnels)

    Systmes defouille de don-

    nes

    Rgles

    Assoc.

    Sources de donnes

    htrognes

    Entrept

    de donnes

    Donnes externes

    Mta

    base

    ETL

    Analyse OLAP

    Reporting

    CON

    NAISS

    ANCE

  • 7/29/2019 cycleC

    20/105

    20

    ETL 80% du travail !

    E-xtract

    Accs aux diffrentes sources

    T-ransform

    Nettoyage

    gestion des inconsistances des donnes sources

    formats de donnes

    dtection des valeurs non valides

    L-oad

    Chargement dans l'entrept

  • 7/29/2019 cycleC

    21/105

    21

    Tables de faits : entit centrale

    Objet de l'analyse, taille trs importante

    Tables de dimensions : entits priphriques

    Dimensions de l'analyse, taille peu importante

    Table de faits normalise (BCNF)

    N-uplets de la tables de faits :

    Cls trangres formant une cl primaireValeurs associes chaque cl primaire (mesures)

    Associations de type (0,n) (1,1) connectant les

    diffrentes dimensions aux faits

    Conception de l'entrept

  • 7/29/2019 cycleC

    22/105

    22

    Normalisation des tables

    Etoile : tables dimensions non normalises

    Flocon : tables de dimensions normalises

    Rduction de la redondance

    Maintenance simplifie

    MAIS navigation coteuse

    schma en toile schma en flocon

  • 7/29/2019 cycleC

    23/105

    23

    Exemple : toile

    Time Dimension

    time_key

    day_of_week

    monthquarter

    year

    holiday_flag

    Sales Fact

    time_key

    product_key

    store_key

    dollars_sold

    units_solddollars_cost

    Product Dimension

    product_key

    description

    brand

    category

    Store Dimension

    store_key

    store_name

    address

    floor_plan_typegranularit de la table de

    faits ?

  • 7/29/2019 cycleC

    24/105

    24

    Exemple : flocon

  • 7/29/2019 cycleC

    25/105

    25

    Magasins de donnes

    Partie de l'entrept

    Ddis une analyse particulire

    Modlisation multidimensionnelle

    Fouille de donnes / reporting / navigationOLAP

  • 7/29/2019 cycleC

    26/105

    26

    Problmatiques associes

    Calcul de l'hypercube (cube) de donnes

    Stockage des donnes

    Mise jour des donnes

    Types de faits

    Additif Semi-additif

    Non additif

  • 7/29/2019 cycleC

    27/105

    27

    Calcul de l'hypercube

    Quel cube construire ?

    Comment le construire ?

    Requtes de type group by

    SELECT mois, produit, ville, count(*)

    FROM Ventes

    GROUP BY mois, produit, ville

    Ajout des agrgats (oracle)

    GROUP BY CUBE

    GROUP BY ROLLUP

    GROUP BY GROUPING SETS

  • 7/29/2019 cycleC

    28/105

    28

    Stockage du cube

    ROLAP (Relational OLAP) : les donnes sont stock-es dans une base de donnes relationnelle. Le cuben'est pas matrialis du tout sauf au moment de laphase de requte

    MOLAP (Multidimensional OLAP) : tout le cube estmatrialis physiquement

    HOLAP (Hybrid OLAP) : seule une partie du cube estmatrialise sous forme multidimensionnelle. Les

    autres donnes sont laisses dans la base relation-nelle et extraites de manire dynamique au momentdes requtes

    Les cubes sont trs clairsems (sparsity)

  • 7/29/2019 cycleC

    29/105

    29

    Mise jour des donnes

    Incrmentale

    Recalcul total du cube

  • 7/29/2019 cycleC

    30/105

    30

    Types de faits

    Additif On peut faire la somme des valeurs sur toutes les

    dimensions

    Quantit vendue

    Semi-additif

    Il est impossible de sommer les valeurs surcertaines dimensions

    Niveau de stock (pas sur la dimension temps)

    Non additif

    On ne peut faire la somme sur aucune dimension

    Moyenne des ventes

  • 7/29/2019 cycleC

    31/105

    31

    Oprations OLAP

    Visualisation:

    Rotation

    Inversion des valeurs de dimensions (switch) Modification des donnes :

    Slection sur les cellules (slice)

    Slection sur les tranches (dice)

    Gnralisation (roll-up)

    Spcialisation (drill-down)

  • 7/29/2019 cycleC

    32/105

    32

    Rotation

  • 7/29/2019 cycleC

    33/105

    33

    Inversion

  • 7/29/2019 cycleC

    34/105

    34

    Slection sur les cellules

    DICE

    Critre de slection : valeurs infrieures 15

  • 7/29/2019 cycleC

    35/105

    35

    Slection sur les tranches

    SLICE

  • 7/29/2019 cycleC

    36/105

    36

    Gnralisation/Spcialisation

    Outils commerciaux

  • 7/29/2019 cycleC

    37/105

    37

    Outils commerciaux

    Business Objects

    Hyperion Solutions (Essbase)

    IBM (DB2 OLAP Server)

    Microsoft (SQL Server)

    Oracle (Express Oracle 9i Oracle 10g) SAS

    Oracle et OLAP

  • 7/29/2019 cycleC

    38/105

    38

    Oracle et OLAP

    OLAP OPTION

    Analytic Workspace et OLAP DML (TAD)

    Requtes de partitionnement

    Fonctions d'analyse

    Outils ETL Outils d'analyse

    MOLAP ROLAP HOLAP

  • 7/29/2019 cycleC

    39/105

    39

    MOLAP ROLAP - HOLAP

    Requtes de partitionnement :

  • 7/29/2019 cycleC

    40/105

    40

    q pgroup by

    SQL> select ville, etat, count(*)from abonne, emprunt, exemplairewhere abonne.num_ab = emprunt.num_ab

    and exemplaire.numero = emprunt.num_exgroup by ville, etat;

    VILLE ETAT COUNT(*)------------------------------ --------------- ----------BEZIER BON 4BEZIER ABIME 2MONTPELLIER BON 18MONTPELLIER ABIME 2

    Requtes de partitionnement :

  • 7/29/2019 cycleC

    41/105

    41

    group by cube

    SQL> select ville, etat, count(*)from abonne, emprunt, exemplairewhere abonne.num_ab = emprunt.num_ab

    and exemplaire.numero = emprunt.num_exgroup by cube(ville, etat);

    VILLE ETAT COUNT(*)------------------------------ --------------- ----------

    26BON 22ABIME 4

    BEZIER 6BEZIER BON 4BEZIER ABIME 2MONTPELLIER 20MONTPELLIER BON 18MONTPELLIER ABIME 2

    9 rows selected.

    Requtes de partitionnement :

  • 7/29/2019 cycleC

    42/105

    42

    group by rollup

    SQL> select ville, etat, count(*)from abonne, emprunt, exemplairewhere abonne.num_ab = emprunt.num_ab

    and exemplaire.numero = emprunt.num_exgroup by rollup (ville, etat);

    VILLE ETAT COUNT(*)------------------------------ --------------- ----------BEZIER BON 4BEZIER ABIME 2BEZIER 6

    MONTPELLIER BON 18MONTPELLIER ABIME 2MONTPELLIER 20

    26

    7 rows selected.

    Requtes de partitionnement : group

  • 7/29/2019 cycleC

    43/105

    43

    by rollup avec fonction DECODE

    SQL> select decode(grouping (ville),1,'Toutes les villes', ville ) ville,

    2 decode(grouping (etat),1,'Tous etats confondus', etat ) etat,3 count(*)4 from abonne, emprunt, exemplaire5 where abonne.num_ab = emprunt.num_ab6 and exemplaire.numero = emprunt.num_ex

    7 group by rollup (ville, etat);

    VILLE ETAT COUNT(*)------------------------------ -------------------- ----------BEZIER BON 4

    BEZIER ABIME 2BEZIER Tous etats confondus 6MONTPELLIER BON 18MONTPELLIER ABIME 2MONTPELLIER Tous etats confondus 20

    Toutes les villes Tous etats confondus 26

    Requtes de partitionnement : group

  • 7/29/2019 cycleC

    44/105

    44

    by grouping sets

    SQL> select ville, etat, count(*)from abonne, emprunt, exemplairewhere abonne.num_ab = emprunt.num_ab

    and exemplaire.numero = emprunt.num_ex

    group by grouping sets ((ville, etat), ()) ;

    VILLE ETAT COUNT(*)------------------------------ --------------- ----------BEZIER BON 4

    BEZIER ABIME 2MONTPELLIER BON 18MONTPELLIER ABIME 2

    26

    Fonctions d'analyse : rank

  • 7/29/2019 cycleC

    45/105

    45

    Fonctions d analyse : rank

    SQL> select *from (select ville,etat,count(*),

    rank() over (order by count(*) desc) as rnkfrom emprunt, abonne, exemplaire

    where emprunt.num_ab = abonne.num_ab andexemplaire.numero=emprunt.num_ex

    group by ville, etat) ;VILLE ETAT COUNT(*) RNK

    ------------------------------ --------------- ---------- ----------MONTPELLIER BON 18 1BEZIER BON 4 2BEZIER ABIME 2 3MONTPELLIER ABIME 2 3

    Fonctions d'analyse : TOP-N

  • 7/29/2019 cycleC

    46/105

    46

    Fonctions d analyse : TOP N

    SQL> select *from (select ville,etat,count(*),

    rank() over (order by count(*) desc) as rnkfrom emprunt, abonne, exemplaire

    where emprunt.num_ab = abonne.num_ab andexemplaire.numero=emprunt.num_ex

    group by ville, etat)where rnk

  • 7/29/2019 cycleC

    47/105

    47

    Fonctions d analyse : BOTTOM N

    SQL> select *from (select ville,etat,count(*),

    rank() over (order by count(*)) as rnkfrom emprunt, abonne, exemplaire

    where emprunt.num_ab = abonne.num_ab andexemplaire.numero=emprunt.num_ex

    group by ville, etat)where rnk

  • 7/29/2019 cycleC

    48/105

    48

    ratio_to_report

    SQL> select abonne.num_ab, ville, count(*),ratio_to_report(count(*)) over (partition by ville) as ratio

    from emprunt, abonnewhere emprunt.num_ab = abonne.num_abgroup by ville, abonne.num_ab ;

    NUM_AB VILLE COUNT(*) RATIO

    ---------- ------------------------------ ---------- ----------911007 BEZIER 6 1901001 MONTPELLIER 4 ,2

    902043 MONTPELLIER 4 ,2902075 MONTPELLIER 2 ,1911021 MONTPELLIER 1 ,05911023 MONTPELLIER 6 ,3921102 MONTPELLIER 3 ,15

    Vues matrialises : cration

  • 7/29/2019 cycleC

    49/105

    49

    Vues matrialises : cration

    SQL> CREATE MATERIALIZED VIEW OLAPV_EMPRUNTS2 REFRESH START WITH SYSDATE NEXT SYSDATE+13 ENABLE QUERY REWRITE4 AS

    5 SELECT VILLE, ETAT, COUNT(*)6 FROM EMPRUNT, EXEMPLAIRE, ABONNE7 WHERE EMPRUNT.NUM_AB=ABONNE.NUM_AB AND

    EXEMPLAIRE.NUMERO=EMPRUNT.NUM_EX8 GROUP BY VILLE, ETAT;

    Materialized view created.

    Vues matrialises : interrogation

  • 7/29/2019 cycleC

    50/105

    50

    Vues matrialises : interrogation

    SQL> select * from olapv_emprunts;

    VILLE ETAT COUNT(*)------------------------------ --------------- ----------BEZIER BON 4BEZIER ABIME 2MONTPELLIER BON 18MONTPELLIER ABIME 2

    SQL> insert into emprunt values(911007,1010,SYSDATE,NULL,NULL,NULL);

    1 row created.

    SQL> select * from olapv_emprunts;

    VILLE ETAT COUNT(*)------------------------------ --------------- ----------BEZIER BON 4BEZIER ABIME 2MONTPELLIER BON 18MONTPELLIER ABIME 2

    Vues matrialises :rafrachissement

  • 7/29/2019 cycleC

    51/105

    51

    rafrachissement

    SQL> begindbms_mview.refresh('olapv_emprunts');

    end;/

    PL/SQL procedure successfully completed.

    SQL> select * from olapv_emprunts;

    VILLE ETAT COUNT(*)

    ------------------------------ --------------- ----------BEZIER BON 5BEZIER ABIME 2MONTPELLIER BON 18MONTPELLIER ABIME 2

    Fouille de donnes

  • 7/29/2019 cycleC

    52/105

    52

    Fouille de donnes

    Quest-ce que la fouille de donnes ?

    Fayyad (1996) Knowledge Discovery inDatabases :"the non-trivial process of identifying

    valid, potentially useful and ultimately understand-able patterns in data"

    KDD vs. Data Mining

    statistiques

    I.A.apprentissage

    Bases dedonnes

    I.H.M.

    exemples dapplication

  • 7/29/2019 cycleC

    53/105

    53

    p pp

    diagnostic mdicalprofils de clients, mailing, accord de prts

    bancaires, ...

    reconnaissance de caractres manuscrits

    finance, prvision dvolutions de marchsCustomer Relationship Management (CRM) : trouver,

    gagner et garder ses clients ! churning,

    dtection de fraudes,

    dtection de mauvais payeurs,

    T h d f ill d d

  • 7/29/2019 cycleC

    54/105

    54

    Tches de fouille de donnes

    Classification

    Estimation

    Prdiction

    Rgles dassociation

    Segmentation

    Algorithmes superviss et non superviss

  • 7/29/2019 cycleC

    55/105

    55

    Apprentissage supervis : On dispose d'un fichier dcrivant des donnes al

    liant une description et une classe

    On cherche une fonction de classification per-

    mettant d'induire la classe en fonction d'une de-scription

    Apprentissage non supervis : On dispose d'un fichier de description des don-

    nes sans classes connues a priori On cherche diviser ces donnes en catgories

    Algorithmes prdictifs et descriptifs

  • 7/29/2019 cycleC

    56/105

    56

    Veut-onTrouver une fonction permettant de prdirela classe d'une donnes jamais vue

    OuTrouver des descriptions rsumes et per-

    tinentes expliquant les donnes

    La limite entre les 2 est floue ! (mthodes

    descriptives pour la prdiction)

    Problmatiques associes

  • 7/29/2019 cycleC

    57/105

    57

    Problmatiques associes

    donnes pas forcment trspropres : donnes bruites

    donnes manquantes

    Donnes aberrantes

    doublons

    donnes numriques, symboliques

    pr-traitements

    post-traitements

    Quelques algorithmes

  • 7/29/2019 cycleC

    58/105

    58

    Quelques algorithmes

    Intelligence artificielle Plusieurs algorithmes :

    Segmentation (clustering)

    Naive bayes

    K plus proches voisins

    Apprentissage par renforcement

    Rseaux de neurones Arbres de dcision

    ...

    Rgles d'association et motifs squentiels

    Mthode de Bayes naf

  • 7/29/2019 cycleC

    59/105

    59

    Mthode de Bayes naf

    Comment classer un nouvel exemple enfonction dun ensemble dexemples pourlesquels on connat la classe ?

    Soit un exemple d = (d1, ..., dn) et cclasses k = 1, ..., c

    Classe(d) = argmax P(di|k) . P(k)k i

    proportion dexemples di parmi ceux de la classe k

    proportion dexemples de la classe k

    Exemple : va t on jouer au

  • 7/29/2019 cycleC

    60/105

    60

    Exemple : va-t-on jouer au

    tennis ?

    Va-t-on jouer sil y a du soleil, beauc-oup dhumidit et pas de vent ?

    Soleil

    pluvieux

    Soleil

    pluvieux

    pluvieux

    nuageux

    Soleil

    Soleil

    TEMPS

    ?Nonhaute

    NonNonBasseEx7

    OuiOuiBasseEx6

    NonOuiBasseEx5

    NonOuiHauteEx4

    OuiOuiBasseEx3

    NonNonBasseEx2

    OuiOuiHauteEx1

    TENNISVENTHUMIDITE

    k plus proches voisins

  • 7/29/2019 cycleC

    61/105

    61

    p p

    Raisonnement partir de cas

    Utilisation des cas similaires pour prendreune dcision

    Pas dtape dapprentissage (avantageset inconvnients)

    Algorithme

  • 7/29/2019 cycleC

    62/105

    62

    Algorithme

    Dcider du nombre de voisins utiliserk (souvent k = nbre dattributs + 1)

    Pour un enregistrement sur lequel il

    faut dcider : trouver les k plus proches voisins

    combiner les classes des k plus prochesvoisins en une classe c

    Choix de la distance

  • 7/29/2019 cycleC

    63/105

    63

    Choix de la distance

    d(A,A) = 0

    Rappel : distance d d(A,B) = d(B,A) d(A,C) < d(A,B) + d(B,C)

    Distance sur chacun des attributs

    d(x,y) = |x-y| d(x,y) = |x-y| / distance_max

    puis combinaison. distance euclidienne :d(x,y) = [d1(x1,y1) 2 +...+ dn(xn,yn)2]

    Choix de la classe

  • 7/29/2019 cycleC

    64/105

    64

    Choix de la classe

    on dispose des k classes des k plusproches voisins

    choix de la classe du nouvel exemple : classe majoritaire classe pondre

    Le rsultat change en fonction de tous

    ces choix (distance, combinaison, cal-cul de la classe)

    Exemple : va-t-on jouer autennis avec cette mthode ?

  • 7/29/2019 cycleC

    65/105

    65

    tennis avec cette mthode ?

    on choisit k = 4

    distance euclidienne

    d(A,A)=0

    d(A,B)=1

    calcul des voisins

    combinaison des classes des voisins

    Exemple : va-t-on jouer autennis ?

  • 7/29/2019 cycleC

    66/105

    66

    tennis ?

    Va-t-on jouer sil y a du soleil, beauc-oup dhumidit et pas de vent ?

    Soleil

    pluvieux

    Soleil

    pluvieux

    pluvieux

    nuageux

    Soleil

    Soleil

    TEMPS

    ?Nonhaute

    NonNonBasseEx7

    OuiOuiBasseEx6

    NonOuiBasseEx5

    NonOuiHauteEx4

    OuiOuiBasseEx3

    NonNonBasseEx2

    OuiOuiHauteEx1

    TENNISVENTHUMIDITE

    Arbres de dcision

  • 7/29/2019 cycleC

    67/105

    67

    Reprsentation graphique dune procdure de dcisionReprsentation comprhensive rgles

    tem-prature

    gorge ir-rite malade

    malade non malade

    normale forte

    oui non

    feuille

    nud

    arc

    Classes

    Attributs

    Tests surles attributs

    Problmatiques associes

  • 7/29/2019 cycleC

    68/105

    68

    Problmatiques associes

    Choix des attributs tests (divisions success-ives de la base dapprentissage)

    Critre darrt

    But : construire un arbre le plus petit possible

    Heuristique. Algorithme glouton.

    Plusieurs algorithmes (ID3, C4.5)

    Algorithme de construction

  • 7/29/2019 cycleC

    69/105

    69

    Algorithme de construction

    Nud Courant racineRpter Si le nud courant est terminal

    Alors ltiqueter Nud Courant Classe SinonSlectionner un attribut test

    Crer le sous-arbre

    Passer au nud suivant non explor

    Jusqu obtention dun arbre

    Critre darrt

  • 7/29/2019 cycleC

    70/105

    70

    Plusieurs tests possibles pour dcidersi le nud courant est terminal : il ny a plus assez dexemples

    les exemples ne sontpas trop mlangs(une classe se dgage). seuil dimpuret.

    On tiquette avec la classe majoritaire

    Slection de lattribut test

  • 7/29/2019 cycleC

    71/105

    71

    Quel est lattribut dont la connaissancenous aide le plus sur la classe ?

    Plusieurs critres possibles : test de

    Gini, gain dinformation, entropie, ...ID3 : entropie de Shannon

    Entropie de Shannon

  • 7/29/2019 cycleC

    72/105

    72

    Entropie de l'attribut AA a i valeurs possibles X

    1, ..., X

    i

    Il y a k classes C1, ..., C

    k

    Hs(C|A) = - P(Xi) P(Ck|Xi). log((P(Ck|Xi)))i k

    Exemple : va-t-on jouer autennis avec cette mthode ?

  • 7/29/2019 cycleC

    73/105

    73

    Construction de larbre

    Racine : choix du 1er attribut test Calcul de H(C|temps)

    Calcul de H(C|humidit) Calcul de H(C|vent)

    Division de la base dexemple

    Nuds terminaux ?

    Exemple : va-t-on jouer autennis ?

  • 7/29/2019 cycleC

    74/105

    74

    Va-t-on jouer sil y a du soleil, beauc-oup dhumidit et pas de vent ?

    Soleil

    pluvieux

    Soleil

    pluvieux

    pluvieux

    nuageux

    Soleil

    Soleil

    TEMPS

    ?Nonhaute

    NonNonBasseEx7

    OuiOuiBasseEx6

    NonOuiBasseEx5

    NonOuiHauteEx4

    OuiOuiBasseEx3

    NonNonBasseEx2

    OuiOuiHauteEx1

    TENNISVENTHUMIDITE

    Attributs continus

  • 7/29/2019 cycleC

    75/105

    75

    ID3 ne les prend pas en charge

    discrtisation par un expert

    algorithme C4.5 :

    test et calcul de lentropie avec toutes lescoupures possibles entre les valeurs suc-cessives

    exemple sur les valeurs 3,4,8 on testera

    < 3,5 vs. > 3,5 < 6 vs. > 6

    Avantages et inconvnients

  • 7/29/2019 cycleC

    76/105

    76

    attention au sur-apprentissage lagageperformances moins bonnes si beaucoup declasses

    algorithme non incrmental

    on peut expliquer une dcision

    permet la slection des attributs pertinents (featureselection)

    classification rapide dun nouvel exemple (parcoursd'un chemin darbre)

    Rseaux de neurones

  • 7/29/2019 cycleC

    77/105

    77

    Mthode de type bote noire

    Nombreuses applications (notamment re-connaissance dcriture manuscrite)

    Mthode coteuse en temps de calcul

    Topologie connatre

    Une mthode issue des modles biologiques

  • 7/29/2019 cycleC

    78/105

    78

    Chaque neurone disposer en moyenne de 10.000 points de contacts

    (synapses) avec les neurones qui l'entourent, et jusqu 50.000 !

    Nous disposons de quelques dizaines de milliards de ces neurones

    l'intrieur de notre cerveau

    De synapse en synapse, l'information transite dans la totalit de notrecorps, au travers d'environ 500 000 milliards de synapses

    Neurone biologique

  • 7/29/2019 cycleC

    79/105

    79

    un neurone (biologique) est un noeud qui a

    plusieurs entres et une sortie

    Les entres proviennent dautres neuronesou organes sensoriels

    Les entres sont pondres

    Les poids peuvent tre positifs ou ngatifsLes entres sont sommes au niveau dunoeud pour produire une valeur dactiva-ation

    Si lactivation est plus grande quun certainseuil, le neurone sactivef

    Problmes linairement ounon linairement sparables

  • 7/29/2019 cycleC

    80/105

    80

    on distingue 2 types de problmespour 2 types de solution

    x1 x2 OU XOR

    0 0 0 0

    0 1 1 1

    1 0 1 1

    1 1 1 0 00 11

    11 11

    OUOU

    00 11

    11 00

    XORXOR

    perceptronperceptron

    multi-couches

    Approche informatique :perceptron

  • 7/29/2019 cycleC

    81/105

    81

    ENTREES POIDS SORTIEFONCTION SEUILSOMMATION

    PLUSIEURS

    CLASSES

    Perceptron multi-couches

  • 7/29/2019 cycleC

    82/105

    82

    COUCHE DENTREECOUCHE CACHEE

    COUCHE DE SORTIE

    Algorithme dapprentissagedes poids

  • 7/29/2019 cycleC

    83/105

    83

    Initialiser les poids de manire alatoireRpter Pour chaque exemple i

    Si la sortie s nest pas gale la sortie attendue a

    Alors poids wi wi + (a - s)xi

    Jusqu ce que tous les exemples soientbien classs

    Segmentation (Clustering)

  • 7/29/2019 cycleC

    84/105

    84

    But : diviser la population en groupes Minimiser la similarit intra-groupe Maximiser la similarit inter-groupes Exemple : notes

    Algorithme des k-moyennes

  • 7/29/2019 cycleC

    85/105

    85

    1. Choisir le nombre de groupes crer k2. Choisir k centres initiaux c1, .., ck3. Pour chaque exemple, laffecter au groupe i

    dont le centre est le plus proche

    4. Si aucun exemple ne change de groupe5. Alors STOP6. Sinon

    a) Calculer les nouveaux centres :Pour i = 1 k

    ci est la moyenne des lments du groupe

    b) Aller en 3)

    Exemple : faire 2 groupesdtudiants

  • 7/29/2019 cycleC

    86/105

    86

    10

    Centres initiaux : c1=(11,13) c2=(14,18)

    d(e1,c1)= [(14-11)2 + (14-13)2]1/2= 3.16

    d(e1,c2) = [(14-14)2 + (14-18)2]1/2 4

    d(e2,c1)= 4.12 d(e2,c2) 2.24

    d(e3,c1) > d(e3,c2)

    d(e4,c1) < d(e4,c2)

    d(e5,c1) > d(e5,c2)

    Nouveaux centres :

    c1 = ((14+10)/2,(14+11)/2) = (12,12.5)

    c2 = ((12+16+14)/3),(17+20+16)/3)=(14,17.6)

    calcul de d(e1,c1) d(e1,c2) rsultat inchang FIN

    1 14 14

    2 12 17

    3 16 20

    4 10 11

    5 14 16

    e

    eeee

    e1

    e2

    e3

    e4

    e5

    Problmes

  • 7/29/2019 cycleC

    87/105

    87

    Ncessit de lexistence dune dis-tance

    Choix de k

    Influence du choix des centres initiauxsur le rsultat

    Normalisation des attributs

    Evaluation des mthodes

  • 7/29/2019 cycleC

    88/105

    88

    Apprentissage supervis : valuation sur unebase dexemples test

    Mthodes de sparation entre les bases

    dapprentissage et de test. on dispose de deux bases spares

    on coupe la base en deux

    validation croise. Leave One Out.

    Validation croise

  • 7/29/2019 cycleC

    89/105

    89

    Dcoupage de la base d'exemples en nsous-base b

    1, ... , b

    n

    n apprentissages :

    On apprend sur n-1 sous-bases On teste sur la sous-base restante

    Moyenne des n rsultats

    n = 10 fonctionne bien

    Leave one out

    Critres dvaluation

  • 7/29/2019 cycleC

    90/105

    90

    Taux de bon apprentissageParmi tous les exemples, quelle proportion est bienclasse ?

    Prcision de la classe kParmi les exemples classs dans la classe k, quelle

    proportion est effectivement de la classe k ?

    Rappel de la classe kParmi les exemples de la classe k, quelle proportion se

    retrouvent classs dans la classe k ?

    Prcision contre RappelMatrice de confusion : table de contingence

    Matrice de confusion

  • 7/29/2019 cycleC

    91/105

    91

    Prdit OBSERVE

    Pay Retard Impay TOTAL

    Pay 80 15 5 100

    Retard 1 17 2 20

    Impay 5 2 23 30

    TOTAL 86 34 30 150

    Validit du modle (taux dapprentissage) : nombre de cas exacts (=somme de la di-agonale) divis par le nombre total : 120/150 = 0.8

    Rappel de la classe Pay : nombre de cas prdits et observs pay divis par le nombretotal de cas observs pays : 80/86 = 0.93Prcision de la classe Pay : nombre de cas observs et prdits pay divis par lenombre total de cas prdits pays : 80/100 = 0.8

    Logiciels de fouille de donnes

  • 7/29/2019 cycleC

    92/105

    92

    Intelligent Miner (www.ibm.com)Entreprise Miner (SAS Institute)

    MineSet (Silicon Graphics Inc.)

    Clementine (Integral Solutions Ltd, rachet par

    SPSS)DBMiner (www.dbminer.com)

    Oracle Darwin data mining suite

    Oracle Discoverer

    Weka

    Rainbow

    LOGIQUE FLOUE ETFOUILLE DE DONNEES

  • 7/29/2019 cycleC

    93/105

    93

    Logique floue 1965

    Contrle flou

    Fouille de donnes floue (viter les coupures brutales) : Rseaux de neurones

    Arbres de dcision

    Clustering

    ...

    Logique floue

  • 7/29/2019 cycleC

    94/105

    94

    Lotfi ZadehExtension du contexte boolen classique

    Vrit partielle, entre compltement vrai et com-pltement faux

    Une personne est-elle grande ?

    Monde discret monde continuAppartenance granduelle

    Thorie des sous-ensembles classique : apparten-ance ou non (0 ou 1)

    Thorie des sous-ensembles flous : appartenancecomprise entre 0 et 1

    Fonctions d'appartenance

  • 7/29/2019 cycleC

    95/105

    95

    Taille d'une personne

    Partition floue des tailles possibles

    Sous-ensemble flous : petit moyen grand

    Pour chaque taille (en cm), on dfinit quel pointcette taille correspond petit, moyen, grand

    Une personne peut tre considre dans plusieurssous-ensembles flous de la partition

    Une personne est petite, moyenne, grande avec desdegrs de vrit

  • 7/29/2019 cycleC

    96/105

    96

    d appartenance

    taille

    0

    1 moyenpetit grand

    Donnes floues

    Donnes imprcises

    d appartenance

    1

    jeune

  • 7/29/2019 cycleC

    97/105

    97

    Gnralisation des donnes classiques

    prcises (singleton) et certaines (confiance 1)

    Donnes imprcises

    il estjeune

    Donnes incertaines

    il a vraisemblablement 18 ans

    degr de confiance 0.8

    Donnes imprcises et incertaines

    ge

    0

    0.2

    18

    0

    1

    18

    1

    0

    1

    Arbres de dcision flous : historique

  • 7/29/2019 cycleC

    98/105

    98

    Chang et Pavlidis (1977), Adamo (1980) : util-isation floue d'arbres de dcision classiques(respect des tests chaque nud de l'arbre)

    Bouchon (1981) : questionnaires flous

    (tiquettes floues sur les tests) Nombreux dveloppements aprs ID3 (Quinlan

    1984)

    Janikow (1984)

    Ramdani (1992)

    Marsala (1998)

    ...

    Partitionner la baseSur l'attribut A ayant m valeurs, on cre m sous-bases

    Cas classique : les exemples sont facilement sparables

  • 7/29/2019 cycleC

    99/105

    99

    Cas classique : les exemples sont facilement sparables

    selon qu'ils correspondent l'une ou l'autre branche del'arbre

    Cas flou : recouvrements

    Straggies possibles :

    Rptition des exemples affects d'un degr d'appar-tenance

    -coupe (Salammb)cration d'une partitionclassique

    Dupliquer les exemples de l'intersection floue dans lesdeux sous-bases avec un degr 1

    Cration d'une branche spcifique l'intersection (con-struction d'un sous-arbre sur ce sous-ensemble d'ex-emples)

    Infrence dans l'arbre flou

    Utli ti d d li

  • 7/29/2019 cycleC

    100/105

    100

    Utlisation du modus ponens gnralis

    La nouvelle donne est injecte dans laracine et traverse l'arbre :

    Utilisation de l'algorithme min-max : Sur chaque branche on considre le minimum

    des valuations par les tests

    On considre la classe correspondant labranche value avec la valeur maximale

    1

    NOP

    9 15

    Exemple, donne test (NOP=11.0, DAM=0.6)

  • 7/29/2019 cycleC

    101/105

    101

    1

    1

    DAM

    NOP

    9 15

    5 12

    0.55 0.78 DAMNOP

    NOP

    0.65 0.35

    0 1 01

    0.2 0.80.7 0.3

    0.2 0.65 0.35 0.3

    Clustering flou

  • 7/29/2019 cycleC

    102/105

    102

    Fuzzy C-Means

    Une donne peut appartenir plusieurs

    catgories Degr d'appartenance entre 0 et 1

    Degr de flou (recouvrement) dfini

    dans l'algorithme (fonction de calcul desappartenances)

    Rseaux de neurones flous

  • 7/29/2019 cycleC

    103/105

    103

    Seuils de transition moins brutaux

    Calcul de systmes de rgles floues Si Alors

    Reprsentation du systme de rgles par un rseau

    Dtermination des paramtres par les algorithmes decalcul des poids

    ConclusionNcessit d'outils ddis aux bases de donnes dcisionnelles

  • 7/29/2019 cycleC

    104/105

    104

    Navigation OLAP / fouille de donnes / reporting / tableaux de bordil existe de nombreuses (autres) mthodes

    et pas de meilleure

    mthode choisir selon

    les donnes (continues ? manquantes ? volumineuses ? denses ?...)

    la tche

    le temps de calcul dont on dispose

    rgle du rasoir dOckham : pluralitas non est ponenda sine neccessitate

    Les choses essentielles ne doivent pas tre multiplies sans ncessit

    autres types de donnes

    Bibliographie

  • 7/29/2019 cycleC

    105/105

    105

    Ralph Kimball,Entrepts de Donnes, Vuibert,

    2002.

    Jiawei Han, Micheline Kamber, Data Mining:Concepts and Techniques, Morgan Kaufmann

    Publishers, 2000.

    http://www.oracle.com