• Aucun résultat trouvé

Data Mining

N/A
N/A
Protected

Academic year: 2022

Partager "Data Mining"

Copied!
18
0
0

Texte intégral

(1)

Data Mining

5 - JDM & bases de données

Erik Marcadé Erik.Marcade@kxen.com

Master MI2 Pro EID- Université Paris 13 Data mining et Business Intelligence FDON

KXEN-Confidential 2

Agenda

Présentation de l’entreprise analytique

■ Rappel des concepts

■ Segmentation des acteurs data mining

Les standards actuels

■ JDM

■ PMML

■ SQL-MM

Base de données et data mining

KXEN-Confidential 3

L’entreprise analytique

Predictive Analytics Predictive Analytics

Recommendations

Scoring

Data Mining

Business Intelligence

OLAP

Data Quality Query/

Report Data Warehouse OPTIMIZE

Customer Retention Product Affinities Promotions Demand Planning Quality Improvement Employee Utilization OPTIMIZE OPTIMIZE

Customer RetentionCustomer Retention

Product AffinitiesProduct Affinities

PromotionsPromotions

Demand Planning Demand Planning

Quality ImprovementQuality Improvement

Employee UtilizationEmployee Utilization

ENABLE Customer Interaction Inventory Control Supply Chain

Management Quality Measurement Employee Self

Service ENABLE ENABLE

Customer InteractionCustomer Interaction

Inventory ControlInventory Control

Supply Chain Supply Chain Management Management Quality Measurement Quality Measurement

Employee Self Employee Self Service Service

UNDERSTAND Customer

Satisfaction Product Revenue Cost of Goods Sold HR Turnover UNDERSTAND UNDERSTAND Customer Customer

Satisfaction Satisfaction Product RevenueProduct Revenue Cost of Goods SoldCost of Goods Sold

HR TurnoverHR Turnover

Operational Systems

ERP

ERM

WEB CRM

Source: Jack Noonan, CEO SPSS, 2002

KXEN-Confidential 4

Les acteurs du Data Mining (Gartner)

Salford Systems, Insightful, StatSoft

Niches R, Weka Freeware

Les standards

JDM: Java Data Mining

■Pour les Programmeurs Java

■But => “Programmer des applications utilisant le Data Mining”

PMML: Predictive Modeling Markup Language

■Pour les Intégrateurs, éditeurs de logiciels

■But => “Transporter des modèles des environnements de développement vers des environnements d’exécution”

SQL-MM: SQL MultiMedia extensions

■Pour les Experts SQL

■But => “Faire du in-data base Data Mining”

JDM: le projet

Qui?

■ Consortium

Pour Qui?

■ Cible

Comment?

■ JCP (Java Community Process)

Quand?

■ Dates clefs

Pourquoi?

■ Motivations/Objectifs

Quoi?

■ Une API Java qui formalise des classes standards

Ou?

■ Site de forum discussion java datamining:

■ https://datamining.dev.java.net

(2)

KXEN-Confidential 7

Cible

Développeur Java (Septembre 2005: quelques millions)

■ Peut créer des applications utilisant l’analyse de données…

■ Sans connaissance approfondie de l’analyse de données Architecte

■ Chez un vendeur de logiciel métier (CRM, SCM, …), il peut intégrer des fonctions de modélisation prédictive

■ Chez un vendeur d’outil d’analyse de données, il peut faire appel a de multiples implémentations d’analyse prédictives

■ Chez un grand compte, il peut concevoir des applicateur internes pour améliorer la performance de l’entreprise

■ Dans une communauté ‘open-source’, il peut implémenter une version gratuite et/mais standard de l’analyse de données

Analyste métier

■ Peut explorer la définition de nouvelles applications internes

■ Peut demander à développer des chaînes de traitements métiers utilisant la modélisation prédictive

Étudiant

■ Connaissance des standards du marché et de leurs fournisseurs

KXEN-Confidential 8

JCP (Java Community Process)

Normalise et contractualise comment la communauté internationale Java fait évoluer le monde Java

JSR (Java Specification Request): C’est un projet de

spécification

■ Peut être initiée par n’importe quel développeur Java

■ Doit suivre un processus détaillé

Phases: initiation, early draft, public draft, maintenance

Regroupe des experts du domaine

Les phases sont validées par un Executive Committee (EC)

■ Produit trois choses:

Un document de spécification (Public Draft)

Un logiciel RI (Reference Implementation)

Un logiciel TCK (Technology Compatibility Kit)

KXEN-Confidential 9

Consortium

JSR-73

■ Oracle (Specification Lead)

■ BEA Systems

■ Computer Associates

■ Fair Isaac Corporation

■ Hyperion Solutions Corporation

■ IBM

■ KXEN

■ SAP AG

■ SAS Institute, Inc.

■ SPSS

■ Strategic Analytics

■ Sun Microsystems, Inc.

http://www.jcp.org/en/js

JSR-247

■ Oracle (Specification Lead)

■ BEA Systems

■ Computer Associates

■ Corporate Intellect Ltd.

■ E.piphany, Inc.

■ Fair Isaac Corporation

■ Hyperion Solutions Corporation

■ IBM

■ KXEN

■ SAP AG

■ SAS Institute, Inc.

■ SPSS

■ Strategic Analytics

■ Sun Microsystems, Inc.

http://www.jcp.org/en/js KXEN-Confidential 10

Dates clefs

JSR-73 (JDM)

■ Groupe d’experts: Août 2000

■ Première ‘Public Review’: Décembre 2002

■ KXEN rejoint le consortium: Mars 2003 et travaille sur la ‘RI’

■ Deuxième ‘Public Review’: Mars 2004

■ ‘Final Release’: Août 2004

■ ‘Maintenance Release’: Août 2005

■ Deux implémentations connues:

Oracle: Septembre 2005

KXEN: Décembre 2005

JSR-247 (JDM 2)

■ Groupe d’experts: Juin 2004

Motivations/Objectifs (1)

Supporte les utilisations novices et expertes du datamining

■ La communauté utilisatrice est large (=>Java)

■ Les applications peuvent utiliser l’automatisation de certains vendeurs Interface standard ouverte, Java, multi vendeur

■ Procédure de standard (=> JCP)

■ Tous les vendeurs majeurs sont représentés

■ Diminue le risque d’intégration (pas de verrouillage sur un vendeur) Ensemble représentatif des fonctions (et algorithmes) les

plus utilisés Extensible

■ Un standard n’est jamais ‘complet’ ou ‘fini’ (=> commence avec les fonctions de base)

■ Les vendeurs doivent pouvoir offrir leurs avantages compétitifs Conformité des implémentations ‘a la carte’

■ Notion de déclaration de capacité (=> ‘capabilities’)

Motivations/Objectifs (2)

Représentation standard XML

Interface ‘Web Services’

Interopérabilité

Utilise les autres standards (PMML)

■ Communications avec les comites PMML, SQL-MM, CWM

Apporter une solution aux problèmes des entreprises

■ Valider par des scénarios d’utilisation et des exemples

(3)

KXEN-Confidential 13

Résoudre les problèmes des entreprises

Services financiers

Relation clients: propension d’achat, modèles de réponses, modèles de durée de vie, …

Risque: probabilité de défaut, probabilité de remboursement anticipé, …

Télécommunications

Relation clients: propension d’achat, modèles de réponses, modèles de durée de vie, …

Risque: probabilité de défaut, probabilité de remboursement anticipé, …

Grande distribution

Relation clients: propension d’achat, modèles de réponses

Magasins: Profitabilité des magasins, achalandage, …

Santé

Hôpitaux: remplissage des lits, durée d’intervention, …

Sciences de la vie/Biologie

Génétique

Tests cliniques

KXEN-Confidential 14

Processus d’analyse de données

Les méthodologies les plus connues:

■ CRISP-DM

■ SEMMA

■ DMAIC (phasages Six Sigma)

Les phases que l’on retrouve:

■ Préparation des données

■ Création des modèles

■ Validation des modèles

■ Utilisation des modèles

Les architectures des logiciels d’entreprise

■ Business Intelligence: ‘Reporting’ et OLAP

■ ‘Workflow’ et ordonnancement

■ Bases et entrepôts de données

Les avances de l’analyse automatisée

■ Promesses et limitations

KXEN-Confidential 15

Conception/Architecture

Et vous, si vous aviez à créer un standard Java pour faire de l’analyse de données?

10 minutes de créativité…

KXEN-Confidential 16

Fonctions et algorithmes

Les fonctions du datamining peuvent être classées selon plusieurs axes:

■ Supervisé/non supervisé

Variable cible

■ Descriptif/prédictif

Synthèse d’un jeu de données versus prédiction sur de nouveaux jeux de données

■ Transparent/opaque

Arbre de décision versus réseau de neurones

JSR-73 (JDM1), 5 fonctions:

■ Classification

■ Régression

■ Importance des Attributs

■ Clustering

■ Association

Construire un modèle

Data Original Dataset

Sample, Transform, Prepare Data

Data’

Transformed Dataset

Build

Model Model

Build Settings JDM 2!!!

JDM

Appliquer un modèle

JDM

Apply Model

Model Apply Result Apply Settings

Data New Dataset (unknown target)

Sample, Transform, Prepare

Data Data’

Transformed Dataset JDM 2!!!

Same Transformations

(4)

KXEN-Confidential 19

Tester un modèle

JDM

Test Model

Model Confusion

Matrix Lift Result

ROC

OR RSquare

Data New Dataset (known target)

Sample, Transform, Prepare Data

Data’

Transformed Dataset JDM 2!!!

Same Transformations

KXEN-Confidential 20

Classification

Utilisation:

■ Réponses à des campagnes marketing

■ Segmentation client basée sur un score

■ Analyse de crédit

■ Guérison de patients

■ …

■ 90% des utilisations sont dans un cadre binaire, mais JDM n’impose rien sur ce sujet (binary versus multi-class)

On classifie par rapport a un nombre fixé de catégories Termes:

■ Predictor attribute

■ Target attribute

■ Case

■ Identifier attribute Algorithmes

■ Decision tree

■ Naive Bayes

■ Support Vector Machine

■ Feed Forward Neural Networks

KXEN-Confidential 21

Une vue sur la classification

Predictor Attributes

X1 X2 ... Xm Y

Target Attribute Attributes

Cases

Name Income Age . . . . .

Response/no-respnse?

1 =Yes, 0 =No

Jones Smith Lee Rogers

30,000 55,000 25,000 50,000

30 67 23 44

1 1 0 0

Identifier Attribute

KXEN-Confidential 22

Régression

Utilisation:

■ Prévision financières

■ Modélisation de réponses médicales

■ Prix des maisons

■ Valeur des clients

■ Modélisation de l’environnement

Algorithmes

■ Decision tree

■ Support Vector Machine

■ Feed Forward Neural Networks

Une vue sur la régression Importance des attributs

Utilisation:

■ Quels sont les attributs qui impactent le plus les prévisions?

■ Quels sont les attributs qui expliquent le mieux tel cluster?

■ Quels sont les attributs a ne pas prendre pour faire un modèle?

Algorithmes:

■ Pas de préconisation

(5)

KXEN-Confidential 25

Une vue sur l’importance des Attributs

Predictor

Attribute Importance Value Rank

hhsize 1 0.19

mstatus 2 0.18

promo 3 0.16

workcls 17 0.008

KXEN-Confidential 26

Clustering

Utilisation:

■ Segmentation client

■ Analyse des gènes et des protéines

■ Groupement de produits (bundles)

■ Taxonomies numériques

■ Taxonomies de documents

Algorithmes:

■ K-Means

KXEN-Confidential 27

Une vue sur le clustering

C1

C2

AGE INCOME

KXEN-Confidential 28

Association

Utilisation:

■ Marketing direct: analyse des transactions (le ‘panier’)

■ Conception de catalogues

Algorithmes:

■ Pas de préconisation

Une vue sur l’association

Support (A →B) = P(AB) Confidence:

(A B) = P(AB)/P(A) Rule Length:

number of items in the rule AB →C Rule Length = 3

1 →3 : Support = 2/4 = 50%

Confidence = 2/3 = 66%

3 →1 : Support = 2/4 = 50%

Confidence = 2/2 = 100%

Transaction ID Purchased Items

1 {1, 2, 3}

2 {1, 4}

3 {1, 3}

4 {2, 5, 6}

JDM: le contenu

Termes

Architectures

(6)

KXEN-Confidential 31

Termes (1)

Les concepts fondamentaux:

■Application Programming Interface (API)

Une interface standard en Java qui donnent accès aux services d’analyse de données

■Data Mining Engine (DME)

Un moteur qui exécute les opérations de création, d’application, de test et d’export de modèles prédictifs et descriptifs

Le DME peut être dans le même processus ou un autre (voire une autre machine)

KXEN-Confidential 32

Termes (2)

Les concepts fondamentaux:

■ Mining Object Repository (MOR)

Une répertoire utilise pour stocker les objets utilises lors des processus d’analyse de données comme:

– Model – Build Settings – Apply Settings – Physical Data specification – Test Metrics – Task

Le MOR peut utiliser un système de fichier ou de base de données

■ Extension Web Services (JDMWS)

Permet d’attaquer le DME par SOAP

KXEN-Confidential 33

Architectures

DME

MOR JDM API

DME

MOR JDM API

MOR DME JDM API

Three tier architecture

Two tier architecture

DME MOR JDM API

Single tier architecture

KXEN-Confidential 34

Spécification des données: une vue

TARGET CATEGORICAL

STRING PURCHASE

>=0 & =<168 ACTIVE UNPREPARED NUMERICAL

Working Hours Per Week INTEGER H_P_W

>0 ACTIVE UNPREPARED NUMERICAL

Capital Loss INTEGER CAP_LOSS

>0 ACTIVE UNPREPARED NUMERICAL

Capital Gain DOUBLE CAP_GAIN

AsIs ACTIVE PREPARED ORDINAL

Income STRING INCOME

asIs ACTIVE PREPARED CATEGORICAL Gender

STRING SEX

asIs ACTIVE PREPARED CATEGORICAL Race

STRING RACE

asIs ACTIVE PREPARED CATEGORICAL Relationship

STRING REL

asIs ACTIVE PREPARED CATEGORICAL Occupation

STRING OCCU

asIs ACTIVE PREPARED CATEGORICAL Marrital Status

STRING MAR_STAT

US

asIs ACTIVE PREPARED CATEGORICAL Educational

Qualification STRING

EDU

10 to 150, asMissing ACTIVE

UNPREPARED NUMERICAL

Age INTEGER AGE

INACTIVE Customer

INTEGER CUST_ID

Outlier Treatment Attribute

Usage Data Preparation

Status Attribute

Type Logical Attribute

Name Attribute Data Type Physical Attribute Name

Spécification des données

Attention:

■Les jeux de données sont ‘externes’ au monde JDM

JDM ne manipule que des spécifications de sources de données

■Ils n’apparaissent que comme des spécification de lieux (URI) ou chercher les données, c’est l’implémentation du DME qui sera quoi faire de cette spécification

Niveaux logique et physique

Termes: Physical versus Logical

■ Physical Attribute Name

■ Attribute Data Type

La façon dont la valeur est stockée INTEGER STRING DOUBLE Attention: Pas de date!

■ Logical Attribute Name

■ Attribute Type: Attention!!!!

Le type de la variable pour les traitements NUMERICAL ORDINAL CATEGORICAL

■ Preparation status

Pas de sémantique particulière UNPREPARED PREPARED

Attention: rien ne force une implémentation à travailler sur des données non préparées

■ Attribute usage

INACTIVE ACTIVE TARGET SUPPLEMENTARY Attention pas de poids

(7)

KXEN-Confidential 37

Deux types de jeux de données

‘Single case record’ ‘Multi-record case table’

54,980 34,456 12,000 Income

Yes 45

4567

No 32

1345

Yes 23

2103

Churner Age

Id

32 Age 1345

34,456 Income 1345

No Churner 1345

45 Age 4567

54,980 Income 4567

Yes Yes 12,000 23 Value

Churner 4567

Churner 2103

Income 2103

Age 2103

Name Id

KXEN-Confidential 38

La vie des modèles

Le DME décide comment utiliser les données d’apprentissage:

■ En particulier pour les données de validation

Les modèles peuvent devenir obsolètes si les

données changent

■ JDM peut être utilisé avec un Ordonnanceur

Le DME peut décider si/comment reconstruire les modèles de façon incrémentale

Les modèles et tous les éléments nécessaires a leur reconstruction sont stockés dans le MOR

KXEN-Confidential 39

Éléments de création liés aux fonctions

Rien de spécifique pour:

■ Regression

■ Attribute Importance

Par contre, éléments spécifiques pour:

■ Classification

Cost Matrix Prior probabilities

■ Clustering

Number of clusters

(minimum and maximum number of clusters and minimum and maximum number of cases per cluster)

Attribute comparison function

Absolute difference, delta, Gaussian similarity, equal, similarity matrix, system determined Aggregation function

Distance based function: Euclidian, Square Euclidian, Chebychev, City Block, Minkowski Similarity based function: Simple matching, Jacquard, Tanimoto, binary

■ Association

Parameters:

Minimum support, confidence, maximum number of rules, length of antecedent and consequent, rules that contains only specified items included or excluded

Taxonomy

KXEN-Confidential 40

Éléments de création liés aux algorithmes

AlgorithmSettings

■ Decision Trees

■ Support Vector Machine

■ Naïve Bayes

■ Feed Forward Neural Networks

■ K Means

Arbres de Décision

Split parameters

■Maximum splits

■Maximum surrogates

■Maximum PValue

Stopping criterions

■Maximum depth

■Minimum decrease in impurity

■Minimum node size

■Maximum target class value probability

Tree selection method

■One standard error tree (classification only)

■Minimum variance tree

■System default/System determined

Build/Pruning function (uses a Homogeneity metric)

■Entropy, Gini, Mean absolute deviation, mean square error, misclassification ratio, System default/System determined

Support Vector Machine

Deux algorithmes: régression et classification

Classification

■ Kernel cache size

■ Kernel function

K-Linear, K-Gaussian (standard deviation), Hyper tangent, Polynomial (degree), Sigmoid

■ CStrategy

■ Complexity factor

■ Tolerance

Regression

■ Epsilon

(8)

KXEN-Confidential 43

Naïve Bayes

Singleton threshold

■Not enough occurrence of a value of one attribute means to discard the value

Pair wise threshold

■Not enough occurrence of a conjunction of a value of one attribute and the value of the target

KXEN-Confidential 44

Feed Forward Neural Networks

Stopping criterions

■ Maximum number of iterations or minimum error tolerance

Learning algorithm

■ Back propagation (!)

Neural Layers

■ Layer has an activation function and a bias specification

■ Number of nodes per layer

KXEN-Confidential 45

K Means

Stopping criterions

■Maximum number of iterations

■Minimum error tolerance

Distance function

KXEN-Confidential 46

Éléments d’inspection liés aux fonctions

Pas de contenu spécifique:

■ Classification

■ Regression

Contenu spécifique pour:

■ Association

Rule: antecedent, consequent, support, confidence, lift

■ Clustering

Cluster: hierarchy (parent, children), rule, size (case count), Centroid coordinates, attribute statistics, and support (% of cases)

■ Attribute importance:

Vector of both ranks and values

Beware: No semantic interpretation about the values!

Éléments d’inspection liés aux algorithmes

ModelDetails

■Decision Trees

■Support Vector Machine

■Naïve Bayes

■Feed Forward Neural Networks

■K Means

Decision Trees (1)

Root Node Cases:

Node-1 1500 Cases: 550 Rule: Age < 25 Purchase: 250 Don’t Purchase:

300

Node-2 Cases: 950 Rule: Age > 25 Purchase: 400 Don’t Purchase:

550 Age <

25

Age >

25

Node-3 Cases: 350 Rule: Age > 25 Low $ Purchase: 200 Don’t Purchase:

350

Node-4 Cases: 600 Rule: Age > 25 High $ Purchase: 400 Don’t Purchase:

550 income is low

income is high Node-5

Cases: 350 Rule: Age < 25 Low $ Purchase: 50 Don’t Purchase:

300

Node-6 Cases: 200 Rule: Age < 25 High $ Purchase: 150 Don’t Purchase:

50 income is low

income is high

(9)

KXEN-Confidential 49

Decision Trees (2)

On peut récupérer:

■Node

Id, parent, enfants, niveau, statistiques, Target prédiction

■Rule

Antecedent/consequent etc…

KXEN-Confidential 50

Support Vector Machine

On peut récupérer:

■ Number of bounded vectors, unbounded vectors

■ Coefficients for linear kernel

■ Bias for linear kernel

KXEN-Confidential 51

Naïve Bayes

On peut récupérer:

■Count

■Pair count

■Pair probability

KXEN-Confidential 52

Feed Forward Neural Networks

On peut récupérer:

■ Layer identifiers and neuron identifiers

■ Weight from identifier to identifier

K Means

Rien de spécifique

Évaluer les modèles de classification

506 21 (Type-2 Error) Not Purchase

6 (Type-1 error) 250 Purchase

Actual

Not Purchase Purchase

Predicted

Cumulative Gains Chart

0 10 20 30 40 50 60 70 80 90 100

010 20 30 40 50 6070 8090 100

% Customers in product campaign

% Responders

Response Model No Model

R O C Chart

0 0 .1 0 .2 0 .3 0 .4 0 .5 0 .6 0 .7 0 .8 0 .9 1

0.0 0.1

0.2 0.3

0.4 0.5

0.6 0.7

0.8 0.9

1.0

% F alse P o sitiv e

% True Positive

M o d el A M o d el B R an d o m

(10)

KXEN-Confidential 55

Évaluer les modèles de régression

Plusieurs critères:

■Mean Absolute Error

■Mean Square Error

■R-Square (R2)

■Mean Actual Value

■Mean Predicted Value

KXEN-Confidential 56

Appliquer les modèles de classification

Source/destination attributes

Top prediction

Top or Bottom N predictions

Predictions for specific values (target categories)

Probability/class

Cost/class

Node (decision tree)

KXEN-Confidential 57

Appliquer les modèles de régression

Source/destination attributes

Prediction

Confidence interval

KXEN-Confidential 58

Appliquer les modèles de clustering

Source/destination attributes

Top cluster

Top or Bottom N clusters

Distance/cluster

Probability/cluster

Déployer les modèles

Importation et exportation des modèles

■Échanger des modèles entre DME (du même vendeur ou non)

■Stocker les modèles ailleurs que dans le MOR

■Inspection/manipulation d’objets

‘Scoring engine’

■Option spécifique de DME sans apprentissage

JDM propose le ‘real-time scoring’

MOR Solution Development

Data mining analyst

Build solution and persist mining models

MORSolution Deployment (Scoring Engine) Model(s)

Temporary Mining object storage Export mining

models

Import mining models

Model(s) Import/Export

mining models directly to another

MOR

Les objets persistants de JDM

(11)

KXEN-Confidential 61

Les objets de spécifications de données

KXEN-Confidential 62

Les objets de spécifications de construction (fonction)

KXEN-Confidential 63

Les objets de spécifications de construction (algorithmes)

KXEN-Confidential 64

Les objets de spécifications d’application

Les objets modèles Les objets de métriques de test

(12)

KXEN-Confidential 67

Les tâches

KXEN-Confidential 68

Qui implémente JDM?

Deux implémentations commerciales:

■ Oracle: OJDM

■ KXEN: KJDM

Attention:

■ Il y a un processus de certification!

■ N’importe qui ne peut pas revendiquer une compatibilité sans passer par le TCK

KXEN-Confidential 69

KJDM

Les avantages de KJDM sur la compétition (Oracle)

■Problèmes en grande dimensions

■Préparation des données automatisée (valeur manquante, hors domaines, segmentation et groupement automatique)

■Modèles prédictifs ETdescriptifs (extensions)

■Robustesse incluse dans les algorithmes (propriétaires)

■Facilite d’utilisation (toutes les fonctions datamining, toutes les persistances, les statistiques)

■Implémentation Web Services

‘Service Oriented Architecture’ (SOA)

KXEN-Confidential 70

Client Process Client Process

Architecture KJDM

DME

MOR JDM API

DME

MOR JDM API

Note: The MOR can accessed through an ODBC connection on a remote server

Jni/C++ CORBA

Outils Écran client PhP utilisant JDMWS

(13)

KXEN-Confidential 73

Le futur: JDM 2

Nouvelles fonctions

■Séries temporelles

■Détection d’anomalie

■Extraction de traits (Feature Extraction)

■Application de l’association

■Transformations

■Texte Mining

KXEN-Confidential 74

Mais d’abord: le présent

Il est possible aujourd’hui de créer des applications Java utilisant le datamining

Les éditeurs de logiciel ont démarré des projets d’intégration Java

■ SAP

■ E-Piphany

■ …

Le plus… le mieux, mais c’est encore en devenir

KXEN-Confidential 75

PMML: le projet

Qui?

■Consortium

Pour Qui?

■Cible

Quand?

■Dates clefs

Pourquoi?

■Motivations/Objectifs

Quoi?

■Définition XML pour le transport de modèle

Ou?

■Site principal http://www.dmg.org

■Forum publique

http://sourceforge.net/forum/?group_id=56177

■Project http://sourceforge.net/projects/pmml

KXEN-Confidential 76

Cible

Architecte/Intégrateur

■ Chez un vendeur de logiciel métier (CRM, SCM, …), il peut intégrer des fonctions de scoring/prévision par importation des modèles

■ Chez un vendeur d’outil d’analyse de données, il peut exporter des modèles destinés à être intégrer dans des environnements de scoring

■ Dans une communauté ‘open-source’, il peut implémenter une version gratuite et/mais standard de l’analyse de données

Étudiant

■ Connaissance des standards du marché et de leurs fournisseurs

Consortium

Membres principaux (PMML 3.0)

■ IBM

■ KXEN

■ Microsoft

■ MicroStrategy Inc.

■ National Center of Data Mining

■ Open Data

■ Oracle Corporation

■ PrudSys AG

■ Salford Systems

■ Sas Inc.

■ SPSS

■ StatSoft

Membres associés

■ NCR

■ SAP

■ …

Dates clefs

Novembre 1998

Première présentation (Supercomputing 1998)

PMML 0.9

Implémentation de référence Aout 1999

Création d’un consortium

PMML 1.0 (KDD-1999) 2000

Oracle, IBM et Microsoft rejoigne le consortium

Généralisation de PMML (statistiques et data mining)

PMML 1.1 2001

PMML 2.0

Amélioration de PMML pour le data mining Transformations

Agrégations 2002

KXEN rejoint le consortium 2004

PMML 3.0 2005

PMML 3.1 2006

PMML 3.2

(14)

KXEN-Confidential 79

Motivations/Objectifs

Complémentarité

■N’empiète pas sur le domaine des autres normes (JDM, SQL- MM, CWM)

Uniformité

■Création d’un standard

■Homogénéisation des concepts

■Format d’échange (XML)

Intégration

■Format standard (XML)

■Schéma de référence

KXEN-Confidential 80

PMML transporte des modèles issus d’algorithmes

PMML 2.1:

■ Régression lineaire/logistique

■ Clustering KMeans

■ Règles d’association

■ Réseaux de neuronnes

■ Arbre de décision

■ Séquence

PMML 3.0:

■ + SVM et Text mining

■ Composition de modèle

■ Vérification de modèle

PMML 3.2

KXEN-Confidential 81

Architecture d’un modèle PMML

Définition des dictionnaires:

■Nom

■Type

■Valeur

Déclaration des transformations

■Encodage des variables

Modèles

■Decision tree

■Naive Bayes

■Support Vector Machine

■…

KXEN-Confidential 82

Définition des dictionnaires

Variable d’entrée

■ Nom de la variable

■ Type de variable

Categorical

Ordinal

Continuous

■ Type de données

Number

String

■ Valeurs de la variable

Liste des catégories possibles

Liste des valeurs manquantes

Intervalle de la variable

Définition des transformations

Encodage de la Variable d’entrée

■Association d’une valeur numérique à une entrée

Transformation linéaire

Association d’une valeur à une catégorie

Agrégation

Définition des modèles

Choix du modèle

■ Définition des variables utilisées

Rôle

Définition des comportements (outlier, traitement des valeurs manquantes)

Définition de l’intervalle de validité

■ Définition des cibles

■ Définition des statistiques

■ Définition des transformations locales

Propre à chaque type de modèle

■ Définition du calcul

(15)

KXEN-Confidential 85

Qui implémente PMML?

2 catégories d’outils pour le PMML

■Outils générant du PMML

Modélisation en PMML – KXEN – SAS – SPSS – FAIR ISSAC

■Outils intégrant du PMML

Exécution et simulation de fichier PMML – MicroStrategy

– IBM (DB2/Oracle) – Teradata – SPSS – SAS – STATISTICA

KXEN-Confidential 86

Exemple de création d’un modèle PMML(1)

Définition du header

Définition des dictionnaires

<?xml version="1.0" ?>

<PMML version= " 3.1 "

xmlns= "http://www.dmg.org/PMML-3_1"

xmlns:xsi= " http://www.w3.org/2001/XMLSchema-instance">

<Header copyright= " KXEN " />

<DataDictionary>

<DataField optype=“continuous” name=“age”>

<Interval rightMargin=“90“ leftMargin=“17” closure= “closedClosed“/>

</DataField>

<DataField optype=“categorical” name=“marital-status”>

<Value value=“Divorced“/>

<Value value=“Missing“ property=“missing”/>

</DataField>

<DataField optype="continuous" name="rr_Status of credit account">

<Interval rightMargin=“10" leftMargin=“-10" closure="closedClosed" />

</DataField>

</DataDictionary>

KXEN-Confidential 87

Exemple de création d’un modèle PMML(2)

Définition des transformations des dictionnaires

<TransformationDictionary>

<DerivedField name=“kxen_age“>

<NormContinuous field= “age“>

<LinearNorm orig=“17” norm=“-1.58090064”/>

<LinearNorm orig=“90” norm=“3.732020564”/>

</NormContinuous>

</DerivedField>

<DerivedField name=“kxen_marital-status”>

<MapValues defaultValue=“0.2087222” outputColumn=“outmap_KxVar1”>

<FieldColumnPair column=“KxVar1” field=“marital-status”/>

<InlineTable>

<row>

<KxVar1>Missing</KxVar1>

<outmap_KxVar1>40.053485576923123</outmap_KxVar1>

</row>

<row>

<KxVar1>Divorced</KxVar1>

<outmap_KxVar1>43.307319101746586</outmap_KxVar1>

</row>

</InlineTable>

</MapValues>

</DerivedField>

</TransformationDictionary>

KXEN-Confidential 88

Exemple de création d’un modèle PMML(3)

Définition du modèle

Définition du footer

<RegressionModel functionName="regression" targetFieldName="rr_Status of credit account modelType="stepwisePolynomialRegression" modelName="">

<MiningSchema>

<MiningField usageType="predicted" name="rr_Status of credit account"/>

<MiningField usageType="active" name="marital-status" />

<MiningField usageType="active" name="age"

outliers="asExtremeValues" highValue="90" lowValue="17" />

</MiningSchema>

<RegressionTable intercept="0.12032505337028977">

<NumericPredictor exponent="1" coefficient="0.19180105737725087"

name="kxen_Marital status"/>

<NumericPredictor exponent="1" coefficient="0.28294496376733896"

name="kxen_age"/>

</RegressionTable>

</RegressionModel>

</PMML>

Exemple de génération(KXEN) Exemple d’intégration(MicroStrategy)

(16)

KXEN-Confidential 91

Le présent

Au début:

■PMML était utilisé pour transporter des modèles depuis les environnements de création (SAS, SPSS, KXEN) vers les bases de données

Maintenant:

■PMML est aussi utilisé pour intégrer le ‘scoring’ dans les environnements de ‘Business Intelligence’ (rapports)

■PMML permet l’utilisation opérationnelle des modèles et la démocratisation du Data Mining

KXEN-Confidential 92

Les extensions SQL: in data base Data Mining

Un seul standard ANSI: SQL-MM

Mais…

■ Une seule implémentation du standard: IBM

Par contre…

■ Tous les éditeurs de base de données ont leur extension de SQL pour le Data Mining.

KXEN-Confidential 93

IBM Intelligent Miner

Interface utilisateurs

■Créer, visualiser

Extensions SQL: SQL-MM

‘Easy Mining’

■Procédures compactes pour la création de modèles

KXEN-Confidential 94

Exemple de code SQL pour IBM Intelligent Miner

Insert into IDMMX.ClassSettings (ID, SETTINGS) Select

‘HeartSettings’,

IDMMC.DM_ClassSettings().DM_useClasDataSpec ( MiningData.DM..genDataSpec()

..DM_remDataSpecFld(‘Sex’) ..DM_setFldTpe(‘Age’, 1)) ..DM__setClassTarget(‘DISEASED’) FROM IDMMX.MiningData where ID=‘HeatData’;

Conclusion?

Oracle Data Mining (ODM)

Intégré depuis Oracle 9i (in database mining)

Algorithmes

■Decision tree

■Adaptive Bayes network

■K-Means

■O-Cluster (propriétaire)

■Minimum Description Length pour importance des attributs

■Support Vector Machine (deux classes et mono classe pour détection d’anomalie)

Une interface utilisateur dédiée

Oracle offre aussi une implémentation de JDM

■Les données doivent être préparées.

Ecrans ODM (http://www.oracle.com/technology/products/bi

/odm/odminer.html)

(17)

KXEN-Confidential 97

Exemple de code SQL avec Oracle

CREATE TABLE dt_sh_sample_cost ( actual_target_value NUMBER, predicted_target_value NUMBER, cost NUMBER);

INSERT INTO dt_sh_sample_cost VALUES (0,0,0); INSERT INTO dt_sh_sample_cost VALUES (0,1,1);

INSERT INTO dt_sh_sample_cost VALUES (1,0,8); INSERT INTO dt_sh_sample_cost VALUES (1,1,0);

COMMIT;

BEGIN

INSERT INTO dt_sh_sample_settings VALUES

(dbms_data_mining.algo_name, dbms_data_mining.algo_decision_tree);

INSERT INTO dt_sh_sample_settings VALUES

(dbms_data_mining.clas_cost_table_name, 'dt_sh_sample_cost');

COMMIT;

BEGIN

DBMS_DATA_MINING.CREATE_MODEL(

model_name => 'DT_SH_Clas_sample', mining_function => dbms_data_mining.classification, data_table_name => 'mining_data_build_v', case_id_column_name => 'cust_id', target_column_name => 'affinity_card', settings_table_name => 'dt_sh_sample_settings');

END;

SELECT cust_id FROM mining_data_apply_v

ORDER BY PREDICTION_COST(DT_SH_Clas_sample, 1 COST MODEL USING *) ASC, 1

KXEN-Confidential 98

Microsoft SQL Server 2005

Microsoft SQL Server 2005

■ Database Engine

■ Analysis Services (analysis server est un autre serveur: pas vraiment in database mining)

OLAP Cube

Datamining Models (+KXEN Plug-In)

■ Reporting Services

■ Integration Services Algorithms

■ Microsoft Decision Trees

■ Microsoft Clustering

■ Microsoft Time Series

■ Microsoft Association Rules

■ Microsoft Sequence Clustering

■ Microsoft Naive Bayes

■ Microsoft Neural Network

■ Microsoft Linear Regression

■ Microsoft Logistic Regression Des interfaces utilisateurs dédiées Une interface Web Services XML/A

KXEN-Confidential 99

Ecran MSFT (1)

KXEN-Confidential 100

Ecran MSFT (2)

Exemple de code SQL avec Microsoft Analysis Services

CREATE MINING MODEL MEMBER_CARD_P {

Customer_ID long key,

Gender text discrete,

Age long continuous,

Profession text discrete,

Income long continuous,

HouseOwnertext discrete,

MemberCardtext discete predict

}

Using Microsoft_decision_trees INSERT INTO MEMBER_CARD_P

{Customer_ID, Gender, Age, Profession, Income, HouseOwner, MemberCard}

OPENROWSET(‘MyDB’, ‘data provider=SQLOLEDB;server=myserver;UID=mylogin;PWD=mypwd’, ‘select Customer_ID, Gender, Age, Profession, Income, HouseOwner, MemberCard from customers’) Select T.Customer_ID, MEMBER_CARD_P.MemberCard

FROM MEMBER_CARD_P Prediction Join

OPENROWSET(‘MyDB’, ‘data provider=SQLOLEDB;server=myserver;UID=mylogin;PWD=mypwd’, ‘select Customer_ID, Gender, Age, Profession, Income, HouseOwner, MemberCard from customers’) as T On MEMBER_CARD_P.Gender = T.Gender

And MEMBER_CARD_P.Age = T.Age

Where T.Age > 30

Teradata Warehouse Miner

Interface utilisateur sous Windows

■ Génère du SQL spécifique pour Teradata (in-database mining)

■ Manipulation de données et algorithmes

Linear regression

Logistic regression

Decision tree

Cluster analysis

Association rules

■ PMML consumer

(18)

KXEN-Confidential 103

Ecran Teradata Warehouse Miner (2)

Project Icon Analytic Module Icon

ODBC Connection

Icon Connection Properties Icon

Run and Stop Icons

Runtime Message Area

Data Source Status

Project Area

Analysis Set-up and Results Viewing Area

hmmm… I wonder what else might fill this large gray area some day...

Main Menus Main Toolbar

Open, Save, and Save All Icons

KXEN-Confidential 104

In-data base Data Mining?

Aujourd’hui:

■ Le Data Mining classique (arbre de décision, réseaux de neurones, même SVM) peut être fait depuis les bases de données

■ Le cout est très faible

■ => Le marché des environnements ‘classiques’ se réduit à être des interfaces utilisateurs

KXEN-Confidential 105

Conclusions (1)

Les entreprises ont dépensé des milliards dans leur infrastructures opérationnelles

■Des processus métiers informatisés

■Une collecte de données sans précèdent

■Des entrepôts de données qui existent

Aujourd’hui (hier?) le retour sur cet investissement se fait par…

■Des rapports, des cubes d’exploration des données, mais…

■Le nombre de rapports et de facteurs potentiels devient ingérable

KXEN-Confidential 106

Conclusions (2)

Demain, le retour sur cet investissement se fera par…

■ Le Data Mining qui aide à trouver l’information pertinente

à condition qu’il soit simple, automatique, intégré, opérationnel, explicatif

Les standards du Data Mining (JDM, PMML) prouvent que le marché arrive a une certaine maturité

■ JDM permet une compétition ouverte des fournisseurs de Data Mining

■ PMML permet une utilisation opérationnelle des modèles (presque) immédiate

Le challenge est dans l’automatisation des taches de data-mining

■ Les entreprises créent déjà des milliers de modèles

Références

Documents relatifs

Etiré : Applicable uniquement aux images mono_bande ou pour représenter une seule bande d’une image multi-bande, ce type de représentation permet d’effectuer un

Christian Poslaniec : On dirait que tu as abandonné Pierrot et Colombine, ainsi que l'encre, en même temps que fermait l'atelier du vieux Mans.. On commence par

Dans le premier de ces deux cas, un certain nombre de relations binaires sont à approximer par une relation d’ordre

La méthode la plus typique du data mining est certainement celle des arbres de décision : pour prédire une réponse Y, qu’elle soit numérique ou qualitative, on

[r]

Dans les années 80-90 le développement des moyens de stockage et de calcul a permis de mettre en œuvre de nouvelles méthodes en analyse de données mais c'est l'approche data

Toutefois, il nous semble que la situation actuelle présente le risque suivant : • si l’évaluation s’annonce, dans les discours au moins, autant, sinon plus, comme un outil

ƒ Nombre de noeuds en entrée : correspond à la dimension des données du problème (attributs ou leurs codages).. Construction