Upload
lebao
View
229
Download
1
Embed Size (px)
Citation preview
PMML(Predictive Model Markup Language)
Nicolas [email protected]
KXEN-Confidential
Agenda
! Présentation de PMML (Predictive Model Markup Language! Le contenu du standard PMML! L’architecture des modèles PMML! Exemple/Pratique:
_ Outils datamining utilisant le PMML_ Applications datamining…
KXEN-Confidential
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
Cible
! Architecte_ 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
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
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
KXEN-Confidential
Motivations/Objectifs
! Complémentarité_ Respecte les 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
PMML transporte des modèles issusd’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
KXEN-Confidential
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
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
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
Définition des modèles
! Choix du modèle_ Définition des variables utilisées
" Rôle
" Définition des comportements (outlier, traitement des valeurs manquantes)
" Définition de l’intervalle de validité
_ Définition des cibles_ Définition des statistiques_ Définition des transformations locales
" Propre à chaque type de modèle
_ Définition du calcul
KXEN-Confidential
Outils utilisant le PMML
! 2 catégories d’outils pour le PMML_ Outils générant du PMML
" Modélisation en PMML– KXEN
– …
_ Outils intégrant du PMML" Exécution et simulation de fichier PMML
– MicroStrategy
– …
KXEN-Confidential
Exemple de création d’un modèle PMML(1)
! Définition du header
! Définition des dictionnaires
<?xml version="1.0“ ?>
<PMML version= “3.1“ xmlns=“http://www.dmg.org/PMML-3_1“ xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance">
<Header copyright= “KXEN“/>
<DataDictionary>
<DataField optype=“continuous” name=“age”>
<Interval rightMargin=“90“ leftMargin=“17” closure= “closedClosed“/>
</DataField>
<DataField optype=“categorical” name=“marital-status”>
<Value value=“Divorced“/>
<Value value=“Missing“ property=“missing”/>
</DataField>
<DataField optype="continuous" name="rr_Status of credit account">
<Interval rightMargin="0" leftMargin="0" closure="closedClosed" />
</DataField>
</DataDictionary>
KXEN-Confidential
Exemple de création d’un modèle PMML(2)
! Définition des transformations des dictionnaires
<TransformationDictionary>
<DerivedField name=“kxen_age“>
<NormContinuous field= “age“>
<LinearNorm orig=“17” norm=“-1.58090064”/>
<LinearNorm orig=“90” norm=“3.732020564”/>
</NormContinuous>
</DerivedField>
<DerivedField name=“kxen_marital-status”>
<MapValues defaultValue=“0.2087222” outputColumn=“outmap_KxVar1”>
<FieldColumnPair column=“KxVar1” field=“marital-status”/>
<InlineTable>
<row>
<KxVar1>Missing</KxVar1>
<outmap_KxVar1>40.053485576923123</outmap_KxVar1>
</row>
<row>
<KxVar1>Divorced</KxVar1>
<outmap_KxVar1>43.307319101746586</outmap_KxVar1>
</row>
</InlineTable>
</MapValues>
</DerivedField>
</TransformationDictionary>
KXEN-Confidential
Exemple de création d’un modèle PMML(3)
! Définition du modèle
! Définition du footer
<RegressionModel functionName="regression" targetFieldName="rr_Status of credit account«
modelType="stepwisePolynomialRegression" modelName="">
<MiningSchema>
<MiningField usageType="predicted" name="rr_Status of credit account"/>
<MiningField usageType="active" name="marital-status" />
<MiningField usageType="active" name="age" outliers="asExtremeValues" highValue="90" lowValue="17" />
</MiningSchema>
<RegressionTable intercept="0.12032505337028977">
<NumericPredictor exponent="1" coefficient="0.19180105737725087" name="kxen_Marital status"/>
<NumericPredictor exponent="1" coefficient="0.28294496376733896" name="kxen_age"/>
</RegressionTable>
</RegressionModel>
</PMML>
KXEN-Confidential
Exemple de génération(KXEN)
KXEN-Confidential
Exemple d’intégration(MicroStrategy)