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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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)
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
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