1
Data Mining5 - JDM & bases de données
Erik Marcadé[email protected]
Master MI2 Pro EID - Université Paris 13Data mining et Business IntelligenceFDON
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
PredictiveAnalyticsPredictiveAnalytics
Recommendations
Scoring
Data Mining
BusinessIntelligence
OLAP
Data
QualityQuery/
Report Data
Warehouse
OPTIMIZE� Customer Retention� Product Affinities� Promotions� Demand Planning � Quality Improvement� Employee Utilization
OPTIMIZEOPTIMIZE�� 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
ENABLEENABLE�� Customer InteractionCustomer Interaction�� Inventory ControlInventory Control�� Supply Chain Supply Chain
ManagementManagement�� Quality Measurement Quality Measurement �� Employee Self Employee Self
ServiceService
UNDERSTAND� Customer
Satisfaction� Product Revenue� Cost of Goods Sold� HR Turnover
UNDERSTANDUNDERSTAND�� Customer Customer
SatisfactionSatisfaction�� Product RevenueProduct Revenue�� Cost of Goods SoldCost of Goods Sold�� HR TurnoverHR Turnover
OperationalSystems
ERP
ERM
WEB
CRM
Source: Jack Noonan, CEO SPSS, 2002
KXEN-Confidential 4
Les acteurs du Data Mining (Gartner)
Salford Systems, Insightful, StatSoft
Niches FreewareR, Weka
KXEN-Confidential 5
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”
KXEN-Confidential 6
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
KXEN-Confidential 11
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’)
KXEN-Confidential 12
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
KXEN-Confidential 17
Construire un modèle
Data
Original Dataset
Sample,Transform,
PrepareData
Data’
Transformed Dataset
BuildModel Model
BuildSettings
JDM 2!!!
JDM
KXEN-Confidential 18
Appliquer un modèle
JDM
ApplyModel
Model
ApplyResult
ApplySettings
Data
NewDataset
(unknown target)
Sample,Transform,
PrepareData
Data’
Transformed Dataset
JDM 2!!!
Same Transformations
4
KXEN-Confidential 19
Tester un modèle
JDM
TestModel
Model
ConfusionMatrix
Lift Result
ROC
OR RSquare
Data
NewDataset
(known target)
Sample,Transform,
PrepareData
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
X 1 X 2 ...... X m Y
TargetAttribute
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
KXEN-Confidential 23
Une vue sur la régression
KXEN-Confidential 24
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
PredictorAttribute
ImportanceValue
Rank
hhsize 0.191
mstatus 0.182
promo 0.163
… ……
workcls 0.00817
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
KXEN-Confidential 29
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}
KXEN-Confidential 30
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
TARGETCATEGORICALSTRINGPURCHASE
>=0 & =<168ACTIVEUNPREPAREDNUMERICALWorking HoursPer Week
INTEGERH_P_W
>0ACTIVEUNPREPAREDNUMERICALCapital LossINTEGERCAP_LOSS
>0ACTIVEUNPREPAREDNUMERICALCapital GainDOUBLECAP_GAIN
AsIsACTIVEPREPAREDORDINALIncomeSTRINGINCOME
asIsACTIVEPREPAREDCATEGORICALGenderSTRINGSEX
asIsACTIVEPREPAREDCATEGORICALRaceSTRINGRACE
asIsACTIVEPREPAREDCATEGORICALRelationshipSTRINGREL
asIsACTIVEPREPAREDCATEGORICALOccupationSTRINGOCCU
asIsACTIVEPREPAREDCATEGORICALMarrital StatusSTRINGMAR_STAT
US
asIsACTIVEPREPAREDCATEGORICALEducationalQualification
STRINGEDU
10 to 150, asMissingACTIVEUNPREPAREDNUMERICALAgeINTEGERAGE
INACTIVECustomerINTEGERCUST_ID
OutlierTreatment
AttributeUsage
DataPreparation
Status
Attribute Type
LogicalAttribute
Name
AttributeData Type
PhysicalAttribute
Name
KXEN-Confidential 35
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
KXEN-Confidential 36
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
Yes454567
No321345
Yes232103
ChurnerAgeId
32Age1345
34,456Income1345
NoChurner1345
45Age4567
54,980Income4567
Yes
Yes
12,000
23
Value
Churner4567
Churner2103
Income2103
Age2103
NameId
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
KXEN-Confidential 41
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
KXEN-Confidential 42
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!
KXEN-Confidential 47
Éléments d’inspection liés aux algorithmes
� ModelDetails■ Decision Trees■ Support Vector Machine■ Naïve Bayes■ Feed Forward Neural Networks■ K Means
KXEN-Confidential 48
Decision Trees (1)
Root Node
Cases: 1500
Node-1Cases: 550Rule: Age < 25Purchase: 250Don’t Purchase: 300
Node-2Cases: 950Rule: Age > 25Purchase: 400Don’t Purchase: 550
Age < 25
Age > 25
Node-3Cases: 350Rule: Age > 25 Low $Purchase: 200Don’t Purchase: 350
Node-4Cases: 600Rule: Age > 25 High $Purchase: 400Don’t Purchase: 550
income is low
income is high
Node-5Cases: 350Rule: Age < 25 Low $Purchase: 50Don’t Purchase: 300
Node-6Cases: 200Rule: Age < 25 High $Purchase: 150Don’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
KXEN-Confidential 53
K Means
� Rien de spécifique
KXEN-Confidential 54
Évaluer les modèles de classification
50621(Type-2Error)
NotPurchase
6(Type-1error)
250Purchase
Actual
Not PurchasePurchase
Predicted
Cumulative Gains Chart
0
10
20
30
40
50
60
70
80
90
100
0 10 20 30 40 50 60 70 80 90 100
% Customers in product campaign
% R
espo
nder
s
Response Model No Model
RO 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
% False Positive
% T
rue
Pos
itive
Model A
Model B
Random
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
KXEN-Confidential 59
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 storageExport mining models
Import mining models
Model(s)
Import/Export mining models
directly to another MOR
KXEN-Confidential 60
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
KXEN-Confidential 65
Les objets modèles
KXEN-Confidential 66
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 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
� ‘Service Oriented Architecture’ (SOA)
KXEN-Confidential 70
Client ProcessClient 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
KXEN-Confidential 71
Outils
KXEN-Confidential 72
É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
KXEN-Confidential 77
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■ …
KXEN-Confidential 78
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
KXEN-Confidential 83
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
KXEN-Confidential 84
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-insta nce">
<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=“ou tmap_KxVar1”><FieldColumnPair column=“KxVar1” field=“marital-stat us”/><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" targetFi eldName="rr_Status of credit accountmodelType="stepwisePolynomialRegression" modelName= "">
<MiningSchema><MiningField usageType="predicted" name="rr_Status of credit account"/><MiningField usageType="active" name="marital-statu s" /><MiningField usageType="active" name="age"
outliers="asExtremeValues" highValue="90" lowValue= "17" /></MiningSchema><RegressionTable intercept="0.12032505337028977">
<NumericPredictor exponent="1" coefficient="0.19180 105737725087"name="kxen_Marital status"/>
<NumericPredictor exponent="1" coefficient="0.28294 496376733896"name="kxen_age"/>
</RegressionTable></RegressionModel>
</PMML>
KXEN-Confidential 89
Exemple de génération(KXEN)
KXEN-Confidential 90
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) Sele ct
‘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?
KXEN-Confidential 95
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 96
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)
KXEN-Confidential 101
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 102
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
Top Related