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