1 Data Mining - LIPN - Université Paris 13

publicité
Agenda
Présentation de l’entreprise analytique
■ Rappel des concepts
■ Segmentation des acteurs data mining
Les standards actuels
Data Mining
■ JDM
■ PMML
■ SQL-MM
5 - JDM & bases de données
Erik Marcadé
[email protected]
Base de données et data mining
Master MI2 Pro EID - Université Paris 13
Data mining et Business Intelligence
FDON
2
KXEN-Confidential
L’entreprise analytique
OPTIMIZE
OPTIMIZE
Customer
Customer Retention
Retention
Product
Product Affinities
Affinities
Promotions
Promotions
Demand
Demand Planning
Planning
Quality
Quality Improvement
Improvement
Employee
Employee Utilization
Utilization
Predictive
Analytics
ENABLE
ENABLE
Customer
Customer Interaction
Interaction
Inventory
Inventory Control
Control
Supply
Supply Chain
Chain
Management
Management
Quality
Quality Measurement
Measurement
Employee
Employee Self
Self
Service
Service
ERP
CRM
Recommendations
Les acteurs du Data Mining (Gartner)
ERM
Scoring
WEB
Data
Mining
Operational
Systems
OLAP
Business
Intelligence
Query/
Report
Data
Quality
Data
Warehouse
UNDERSTAND
UNDERSTAND
Customer
Customer
Satisfaction
Satisfaction
Product
Product Revenue
Revenue
Cost
Cost of
of Goods
Goods Sold
Sold
HR
HR Turnover
Turnover
Niches
Salford Systems,
Insightful, StatSoft
R, Weka
Freeware
Source: Jack Noonan, CEO SPSS, 2002
3
KXEN-Confidential
4
KXEN-Confidential
Les standards
JDM: Java Data Mining
JDM: le projet
Qui?
■ Pour les Programmeurs Java
■ But => “Programmer des applications utilisant le Data Mining”
■ Consortium
Pour Qui?
PMML: Predictive Modeling Markup Language
■ Cible
■ Pour les Intégrateurs, éditeurs de logiciels
■ But => “Transporter des modèles des environnements de
développement vers des environnements d’exécution”
Comment?
■ JCP (Java Community Process)
Quand?
SQL-MM: SQL MultiMedia extensions
■ Dates clefs
■ Pour les Experts SQL
■ But => “Faire du in-data base Data Mining”
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
5
KXEN-Confidential
6
1
Cible
Développeur Java (Septembre 2005: quelques millions)
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 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
■ 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:
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
Un document de spécification (Public Draft)
Un logiciel RI (Reference Implementation)
Un logiciel TCK (Technology Compatibility Kit)
Étudiant
■ Connaissance des standards du marché et de leurs fournisseurs
7
KXEN-Confidential
8
KXEN-Confidential
Consortium
JSR-73
■
■
■
■
■
■
■
■
■
■
■
■
KXEN-Confidential
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
■
■
■
■
■
■
■
■
■
■
■
■
■
■
Dates clefs
JSR-73 (JDM)
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.
■
■
■
■
■
■
■
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
http://www.jcp.org/en/js9
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)
10
KXEN-Confidential
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
Ensemble représentatif des fonctions (et algorithmes) les
plus utilisés
Extensible
■ Valider par des scénarios d’utilisation et des exemples
■ 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’)
KXEN-Confidential
11
KXEN-Confidential
12
2
Résoudre les problèmes des entreprises
Services financiers
Les méthodologies les plus connues:
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é, …
■ CRISP-DM
■ SEMMA
■ DMAIC (phasages Six Sigma)
Télécommunications
Processus d’analyse de données
Les phases que l’on retrouve:
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, …
Les architectures des logiciels d’entreprise
Santé
■ Business Intelligence: ‘Reporting’ et OLAP
■ ‘Workflow’ et ordonnancement
■ Bases et entrepôts de données
Hôpitaux: remplissage des lits, durée d’intervention, …
Sciences de la vie/Biologie
Préparation des données
Création des modèles
Validation des modèles
Utilisation des modèles
Génétique
Tests cliniques
Les avances de l’analyse automatisée
■ Promesses et limitations
13
KXEN-Confidential
14
KXEN-Confidential
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é…
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:
■
■
■
■
■
15
KXEN-Confidential
Classification
Régression
Importance des Attributs
Clustering
Association
16
KXEN-Confidential
Construire un modèle
Original
Dataset
JDM 2!!!
Sample,
Transform,
Prepare
Data
Data
Transformed
Dataset
Appliquer un modèle
JDM
JDM
New
Dataset
(unknown target)
Data’
Build
Model
Same
Transformations
JDM 2!!!
Sample,
Transform,
Prepare
Data
Model
Data
Transformed
Dataset
Apply
Settings
Data’
Apply
Model
Apply
Result
Build
Settings
Model
KXEN-Confidential
17
KXEN-Confidential
18
3
Tester un modèle
Classification
Utilisation:
■
■
■
■
■
■
JDM
New
Dataset
(known target)
Same
Transformations
Transformed
Dataset
Lift Result
JDM 2!!!
Sample,
Transform,
Prepare
Data
On classifie par rapport a un nombre fixé de catégories
Termes:
Data’
Test
Model
Confusion
Matrix
OR
RSquare
■
■
■
■
Data
ROC
Predictor attribute
Target attribute
Case
Identifier attribute
Algorithmes
■
■
■
■
Model
19
KXEN-Confidential
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)
Decision tree
Naive Bayes
Support Vector Machine
Feed Forward Neural Networks
20
KXEN-Confidential
Une vue sur la classification
Utilisation:
Attributes
Cases
Income
Jones
30,000
30
1
Smith
55,000
67
1
Lee
25,000
23
0
Rogers
50,000
44
0
1
X
Age . . . . . . .
2
......
Predictor Attributes
■
■
■
■
■
Response/no-respnse?
1 =Yes, 0 =No
Name
X
Régression
X
m
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
Y
Target
Attribute
Identifier Attribute
KXEN-Confidential
21
22
KXEN-Confidential
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
23
KXEN-Confidential
24
4
Une vue sur l’importance des Attributs
Clustering
Utilisation:
Predictor
Rank
Attribute
Importance
Value
■
■
■
■
■
Segmentation client
Analyse des gènes et des protéines
Groupement de produits (bundles)
Taxonomies numériques
Taxonomies de documents
hhsize
1
0.19
mstatus
2
0.18
promo
3
0.16
…
…
…
Algorithmes:
workcls
17
0.008
■ K-Means
25
KXEN-Confidential
26
KXEN-Confidential
Une vue sur le clustering
Association
Utilisation:
■ Marketing direct: analyse des transactions (le ‘panier’)
■ Conception de catalogues
INCOME
Algorithmes:
C2
■ Pas de préconisation
C1
AGE
27
KXEN-Confidential
KXEN-Confidential
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
Transaction ID
Purchased Items
1
{1, 2, 3}
2
28
JDM: le contenu
Termes
Architectures
{1, 4}
3
{1, 3}
4
{2, 5, 6}
1→3:
Support = 2/4 = 50%
Confidence = 2/3 = 66%
3→1:
Support = 2/4 = 50%
Confidence = 2/2 = 100%
KXEN-Confidential
29
KXEN-Confidential
30
5
Termes (1)
Termes (2)
Les concepts fondamentaux:
Les concepts fondamentaux:
■ Application Programming Interface (API)
■ Mining Object Repository (MOR)
Une interface standard en Java qui donnent accès aux services d’analyse de
données
Une répertoire utilise pour stocker les objets utilises lors des processus
d’analyse de données comme:
–
–
–
–
–
–
■ 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)
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)
31
KXEN-Confidential
Permet d’attaquer le DME par SOAP
32
KXEN-Confidential
Architectures
JDM API
JDM API
Spécification des données: une vue
Physical
Attribute
Name
DME
JDM API
Attribute
Data Type
Logical
Attribute
Name
Attribute
Type
Data
Preparation
Status
Customer
Attribute
Usage
Outlier
Treatment
CUST_ID
INTEGER
AGE
INTEGER
Age
NUMERICAL
UNPREPARED
ACTIVE
10 to 150, asMissing
STRING
Educational
Qualification
INACTIVE
CATEGORICAL
PREPARED
ACTIVE
asIs
DME
MOR
MOR
DME
EDU
Two tier
architecture
MOR
STRING
Marrital Status
CATEGORICAL
PREPARED
ACTIVE
asIs
STRING
Occupation
CATEGORICAL
PREPARED
ACTIVE
asIs
REL
STRING
Relationship
CATEGORICAL
PREPARED
ACTIVE
asIs
RACE
STRING
Race
CATEGORICAL
PREPARED
ACTIVE
asIs
SEX
JDM API
Three tier
architecture
MAR_STAT
US
OCCU
DME
MOR
Single tier
architecture
33
KXEN-Confidential
STRING
Gender
CATEGORICAL
ACTIVE
asIs
STRING
Income
ORDINAL
PREPARED
ACTIVE
AsIs
DOUBLE
Capital Gain
NUMERICAL
UNPREPARED
ACTIVE
>0
CAP_LOSS
INTEGER
Capital Loss
NUMERICAL
UNPREPARED
ACTIVE
>0
H_P_W
INTEGER
Working Hours
Per Week
NUMERICAL
UNPREPARED
ACTIVE
>=0 & =<168
PURCHASE
STRING
CATEGORICAL
TARGET
34
KXEN-Confidential
Spécification des données
Niveaux logique et physique
Termes: Physical versus Logical
Attention:
■ Physical Attribute Name
■ Attribute Data Type
■ Les jeux de données sont ‘externes’ au monde JDM
PREPARED
INCOME
CAP_GAIN
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
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
KXEN-Confidential
35
KXEN-Confidential
INACTIVE ACTIVE TARGET SUPPLEMENTARY
Attention pas de poids
36
6
Deux types de jeux de données
‘Single case record’
Id
Age
Income
Churner
2103
23
12,000
Yes
1345
32
34,456
No
4567
45
54,980
Yes
‘Multi-record case table’
Id
Name
Value
2103
Age
23
2103
Income
12,000
2103
Churner
Yes
1345
Age
32
1345
Income
34,456
1345
Churner
No
4567
Age
45
4567
Income
54,980
4567
Churner
Yes
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
37
KXEN-Confidential
La vie des modèles
38
KXEN-Confidential
Éléments de création liés aux fonctions
Rien de spécifique pour:
Éléments de création liés aux algorithmes
AlgorithmSettings
■ Regression
■ Attribute Importance
■
■
■
■
■
Par contre, éléments spécifiques pour:
■ Classification
Cost Matrix
Prior probabilities
■ Clustering
Number of clusters
Attribute comparison function
–
–
Decision Trees
Support Vector Machine
Naïve Bayes
Feed Forward Neural Networks
K Means
(minimum and maximum number of clusters and minimum and maximum number of cases per
cluster)
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:
Taxonomy
–
Minimum support, confidence, maximum number of rules, length of antecedent and consequent,
rules that contains only specified items included or excluded
39
KXEN-Confidential
40
KXEN-Confidential
Arbres de Décision
Split parameters
Support Vector Machine
Deux algorithmes: régression et classification
Classification
■ Maximum splits
■ Maximum surrogates
■ Maximum PValue
■ Kernel cache size
■ Kernel function
Stopping criterions
■
■
■
■
Maximum depth
Minimum decrease in impurity
Minimum node size
Maximum target class value probability
K-Linear, K-Gaussian (standard deviation), Hyper tangent, Polynomial
(degree), Sigmoid
■ CStrategy
■ Complexity factor
■ Tolerance
Regression
Tree selection method
■ Epsilon
■ 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
KXEN-Confidential
41
KXEN-Confidential
42
7
Naïve Bayes
Singleton threshold
Stopping criterions
■ Not enough occurrence of a value of one attribute means to
discard the value
■ Maximum number of iterations or minimum error tolerance
Learning algorithm
Pair wise threshold
■ Back propagation (!)
■ Not enough occurrence of a conjunction of a value of one
attribute and the value of the target
Neural Layers
■ Layer has an activation function and a bias specification
■ Number of nodes per layer
43
KXEN-Confidential
Feed Forward Neural Networks
44
KXEN-Confidential
K Means
Stopping criterions
Éléments d’inspection liés aux fonctions
Pas de contenu spécifique:
■ Maximum number of iterations
■ Minimum error tolerance
■ Classification
■ Regression
Distance function
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:
45
KXEN-Confidential
Vector of both ranks and values
Beware: No semantic interpretation about the values!
46
KXEN-Confidential
Éléments d’inspection liés aux algorithmes
Decision Trees (1)
ModelDetails
■
■
■
■
■
Decision Trees
Support Vector Machine
Naïve Bayes
Feed Forward Neural Networks
K Means
Root
Node
Age <
25
Node-1
Cases: 550
income is
low
47
KXEN-Confidential
Age >
25
Node-2
Cases: 950
Rule: Age < 25
Purchase: 250
Don’t Purchase:
300
income is
high
Node-5
KXEN-Confidential
Cases:
1500
Node-6
Rule: Age > 25
Purchase: 400
Don’t Purchase:
550
income is
low
Node-3
income is
high
Node-4
Cases: 350
Cases: 200
Cases: 350
Cases: 600
Rule: Age < 25
Low $
Purchase: 50
Don’t Purchase:
300
Rule: Age < 25
High $
Purchase: 150
Don’t Purchase:
50
Rule: Age > 25
Low $
Purchase: 200
Don’t Purchase:
350
Rule: Age > 25
High $
Purchase: 400
Don’t Purchase:
550
48
8
Decision Trees (2)
On peut récupérer:
Support Vector Machine
On peut récupérer:
■ Node
■ Number of bounded vectors, unbounded vectors
■ Coefficients for linear kernel
■ Bias for linear kernel
Id, parent, enfants, niveau, statistiques, Target prédiction
■ Rule
Antecedent/consequent etc…
49
KXEN-Confidential
50
KXEN-Confidential
Naïve Bayes
On peut récupérer:
Feed Forward Neural Networks
On peut récupérer:
■ Count
■ Pair count
■ Pair probability
KXEN-Confidential
■ Layer identifiers and neuron identifiers
■ Weight from identifier to identifier
51
52
KXEN-Confidential
K Means
Évaluer les modèles de classification
Cumulative Gains Chart
100
90
Predicted
Rien de spécifique
Actual
Not Purchase
250
6
(Type-1
error)
Not
Purchase
21
(Type-2
Error)
506
% Responders
80
Purchase
Purchase
70
60
50
40
30
20
10
0
0
10 20 30 40 50 60 70 80 90 100
R O C Chart
% Customers in product campaign
Response Model
No Model
1
0 .9
% True Positive
0 .8
0 .7
0 .6
0 .5
0 .4
0 .3
M od el A
M od el B
R an do m
0.
0
0.
1
0.
2
0.
3
0.
4
0.
5
0.
6
0.
7
0.
8
0.
9
1.
0
0 .2
0 .1
0
% F alse P o sitiv e
KXEN-Confidential
53
KXEN-Confidential
54
9
Évaluer les modèles de régression
Plusieurs critères:
■
■
■
■
■
Appliquer les modèles de classification
Mean Absolute Error
Mean Square Error
R-Square (R2)
Mean Actual Value
Mean Predicted Value
Source/destination attributes
Top prediction
Top or Bottom N predictions
Predictions for specific values (target categories)
Probability/class
Cost/class
Node (decision tree)
55
KXEN-Confidential
Appliquer les modèles de régression
Source/destination attributes
Prediction
Confidence interval
56
KXEN-Confidential
Appliquer les modèles de clustering
Source/destination attributes
Top cluster
Top or Bottom N clusters
Distance/cluster
Probability/cluster
57
KXEN-Confidential
KXEN-Confidential
Déployer les modèles
58
Les objets persistants de JDM
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
MOR
Build solution
and persist
mining models
Solution
Development
Model(s)
Import/Export
mining models
directly to another
MOR
Model(s)
Data mining
analyst
Export mining
models
KXEN-Confidential
Solution
Deployment
(Scoring Engine)
Temporary Mining object storage
Import mining
models
59
KXEN-Confidential
60
10
Les objets de spécifications de construction
(fonction)
Les objets de spécifications de données
KXEN-Confidential
61
KXEN-Confidential
Les objets de spécifications de construction
(algorithmes)
KXEN-Confidential
63
Les objets de spécifications d’application
KXEN-Confidential
Les objets modèles
KXEN-Confidential
65
62
64
Les objets de métriques de test
KXEN-Confidential
66
11
Les tâches
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
67
KXEN-Confidential
68
KXEN-Confidential
KJDM
Architecture 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)
Client Process
■ Modèles prédictifs ET descriptifs (extensions)
■ Robustesse incluse dans les algorithmes (propriétaires)
■ Facilite d’utilisation (toutes les fonctions datamining, toutes
les persistances, les statistiques)
■ Implémentation Web Services
Client Process
JDM API
JDM API
Jni/C++
CORBA
DME
DME
‘Service Oriented Architecture’ (SOA)
MOR
MOR
Note: The MOR can accessed through an
ODBC connection on a remote server
KXEN-Confidential
69
KXEN-Confidential
Outils
KXEN-Confidential
71
70
Écran client PhP utilisant JDMWS
KXEN-Confidential
72
12
Le futur: JDM 2
Nouvelles fonctions
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
■ Séries temporelles
■ Détection d’anomalie
■ Extraction de traits (Feature Extraction)
■ SAP
■ E-Piphany
■ …
■ Application de l’association
■ Transformations
■ Texte Mining
Le plus… le mieux, mais c’est encore en devenir
73
KXEN-Confidential
74
KXEN-Confidential
PMML: le projet
Qui?
Cible
Architecte/Intégrateur
■ Consortium
■ 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
Pour Qui?
■ Cible
Quand?
■ Dates clefs
Pourquoi?
■ Motivations/Objectifs
Étudiant
Quoi?
■ Connaissance des standards du marché et de leurs fournisseurs
■ 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
75
KXEN-Confidential
76
KXEN-Confidential
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
Dates clefs
Membres associés
Novembre 1998
■
■
■
■ NCR
■ SAP
■ …
Aout 1999
2000
■
■
■
■
■
Création d’un consortium
PMML 1.0 (KDD-1999)
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
KXEN rejoint le consortium
2004
2005
■
■
KXEN-Confidential
PMML 3.0
PMML 3.1
2006
■
77
Transformations
Agrégations
2002
■
KXEN-Confidential
Première présentation (Supercomputing 1998)
PMML 0.9
Implémentation de référence
PMML 3.2
78
13
PMML transporte des modèles issus
d’algorithmes
Motivations/Objectifs
Complémentarité
PMML 2.1:
■ N’empiète pas sur le domaine des autres normes (JDM, SQLMM, CWM)
■
■
■
■
■
■
Uniformité
■ Création d’un standard
■ Homogénéisation des concepts
■ Format d’échange (XML)
Régression lineaire/logistique
Clustering KMeans
Règles d’association
Réseaux de neuronnes
Arbre de décision
Séquence
PMML 3.0:
Intégration
■ + SVM et Text mining
■ Composition de modèle
■ Vérification de modèle
■ Format standard (XML)
■ Schéma de référence
PMML 3.2
79
KXEN-Confidential
80
KXEN-Confidential
Architecture d’un modèle PMML
Définition des dictionnaires:
Définition des dictionnaires
Variable d’entrée
■ Nom
■ Type
■ Valeur
■ Nom de la variable
■ Type de variable
Déclaration des transformations
■ Encodage des variables
■ Type de données
Modèles
■
■
■
■
Categorical
Ordinal
Continuous
Decision tree
Naive Bayes
Support Vector Machine
…
Number
String
■ Valeurs de la variable
81
KXEN-Confidential
Liste des catégories possibles
Liste des valeurs manquantes
Intervalle de la variable
82
KXEN-Confidential
Définition des transformations
Encodage de la Variable d’entrée
Définition des modèles
Choix du modèle
■ Association d’une valeur numérique à une entrée
■ Définition des variables utilisées
Transformation linéaire
Association d’une valeur à une catégorie
Agrégation
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
83
KXEN-Confidential
84
14
Qui implémente PMML?
Exemple de création d’un modèle PMML(1)
2 catégories d’outils pour le PMML
Définition du header
■ Outils générant du PMML
<?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 " />
Modélisation en PMML
–
–
–
–
KXEN
SAS
SPSS
FAIR ISSAC
■ Outils intégrant du PMML
Définition des dictionnaires
Exécution et simulation de fichier PMML
–
–
–
–
–
–
MicroStrategy
IBM (DB2/Oracle)
Teradata
SPSS
SAS
STATISTICA
<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>
85
KXEN-Confidential
Exemple de création d’un modèle PMML(2)
Exemple de création d’un modèle PMML(3)
Définition des transformations des dictionnaires
Définition du modèle
<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
<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>
Définition du footer
</PMML>
87
KXEN-Confidential
Exemple de génération(KXEN)
KXEN-Confidential
86
KXEN-Confidential
89
88
Exemple d’intégration(MicroStrategy)
KXEN-Confidential
90
15
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:
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.
■ 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
91
KXEN-Confidential
92
KXEN-Confidential
IBM Intelligent Miner
Interface utilisateurs
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’;
■ Créer, visualiser
Extensions SQL: SQL-MM
‘Easy Mining’
■ Procédures compactes pour la création de modèles
Conclusion?
93
KXEN-Confidential
KXEN-Confidential
94
Ecrans ODM
(http://www.oracle.com/technology/products/bi
/odm/odminer.html)
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.
KXEN-Confidential
95
KXEN-Confidential
96
16
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
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
■
■
■
■
■
■
■
■
■
Decision Trees
Clustering
Time Series
Association Rules
Sequence Clustering
Naive Bayes
Neural Network
Linear Regression
Logistic Regression
Des interfaces utilisateurs dédiées
Une interface Web Services XML/A
97
KXEN-Confidential
Microsoft
Microsoft
Microsoft
Microsoft
Microsoft
Microsoft
Microsoft
Microsoft
Microsoft
98
KXEN-Confidential
Ecran MSFT (2)
Ecran MSFT (1)
99
KXEN-Confidential
100
KXEN-Confidential
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
KXEN-Confidential
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
101
KXEN-Confidential
102
17
Ecran Teradata Warehouse Miner (2)
Analytic Module Icon
Connection Properties Icon
In-data base Data Mining?
Data Source Status
Aujourd’hui:
Main Menus
■ 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
Main Toolbar
Project Icon
Open, Save, and Save All Icons
ODBC
Connection
Icon
Project Area
Run and Stop Icons
Analysis Set-up and
Results Viewing Area
hmmm… I wonder what
else might fill this large
gray area some day...
Runtime Message
Area
103
KXEN-Confidential
104
KXEN-Confidential
Conclusions (1)
Les entreprises ont dépensé des milliards dans leur
infrastructures opérationnelles
Conclusions (2)
Demain, le retour sur cet investissement se fera
par…
■ Des processus métiers informatisés
■ Une collecte de données sans précèdent
■ Des entrepôts de données qui existent
■ Le Data Mining qui aide à trouver l’information pertinente
Aujourd’hui (hier?) le retour sur cet investissement
se fait par…
à 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
■ Des rapports, des cubes d’exploration des données, mais…
■ Le nombre de rapports et de facteurs potentiels devient
ingérable
Le challenge est dans l’automatisation des taches de
data-mining
■ Les entreprises créent déjà des milliers de modèles
KXEN-Confidential
105
KXEN-Confidential
106
18
Téléchargement