PMML Predictive Modeling Markup Language Thomas Morandell 30/01/2003
1. Index 1. Index... 2 2. Einführung... 3 2.1. Definition Data Mining... 3 2.2. Motivation für Standards in Data Mining... 3 3. PMML als Standard für den Austausch von Data Mining Ergebnissen... 4 3.1. Die Idee, die dahinter steckt... 4 3.2. Historie... 4 3.3. Einsatz... 4 3.4. Die von PMML unterstützen Modelle... 4 3.4.1. Data Dictionary, Mining Schema und Transformation... 4 3.4.2. Association Rules... 5 3.4.3. Decision Tree... 5 3.4.4. Clustering... 5 3.4.5. Regression... 5 3.4.6. Neural Network... 5 4. Allgemeine Struktur eines PMML Dokuments... 6 4.1. XML als Hintergrund... 6 4.2. Aufbau des PMML Dokuments... 6 4.2.1. Modell... 6 4.2.2. Header... 7 4.2.3. Data Dictionary... 7 4.2.4. Mining Schema... 8 4.2.5. Tree... 8 4.3. Schnittstellen... 8 4.4. Import eines PMML Dokuments in DB2 Intelligent Miner... 9 5. PMML und der SAS Enterprise Miner TM... 10 5.1. PMML Modelle, die von SAS unterstützt werden... 10 6. Die Zukunft von PMML... 12 6.1. Weiterentwicklung von PMML... 12 6.2. Fazit... 12 7. Literatur... 13 2
2. Einführung 2.1. Definition Data Mining Wir leben in einer Fülle von Daten. Aus diesen Datenmengen müssen wir aussagekräftige Informationen bekommen. Data Mining unterstützt uns bei diesem Prozess, indem der Computer in die Lage versetzt wird, Datenmengen automatisch nach Mustern zu durchsuchen. Außerdem sollten durch Abstraktionsprozesse aussagekräftige Informationen aus den Daten geliefert werden. Data Mining bedeutet also Analyse eines Datenbestandes ohne exakte Fragestellung um bislang unentdeckte Zusammenhänge aus den Daten zu extrahieren. Das Ziel ist es unbekannte oder zukünftige Werte vorherzusagen. 2.2. Motivation für Standards in Data Mining Oft wird der ganze Prozess von der Datengewinnung über die Vorverarbeitung bis zur Visualisierung als Data Mining bezeichnet. Das stimmt so nicht. Data Mining selbst ist der Kern dieses ganzen Prozesses. Nun gibt es ja viele verschiedene Data Mining Anwendungen wie Clustern, Classification und Association Rules. Da gibt es bei verschiedenen Anbietern verschieden gute Algorithmen. Wieso also nicht für jede Anwendung das stärkste Tool benutzen? Dazu gibt es bei Standardschnittstellen den Vorteil, dass nur der Data Mining Algorithmus von verschiedenen Anbietern verglichen werden kann. Die Algorithmen haben dieselbe Eingabe und erstellen eine Ausgabe. Diese kann dann ganz einfach verglichen werden. Also hat kein Anbieter die Chance, Ergebnisse durch bessere Vorverarbeitung zu beschönigen. 3
3. PMML als Standard für den Austausch von Data Mining Ergebnissen 3.1. Die Idee, die dahinter steckt Ein Hauptziel von PMML ist es, Anwendungen und On-line-Analysten mit Modellen von verschiedenen Quellen arbeiten zu lassen, ohne sich um die einzelnen Unterschiede zwischen jenen Quellen zu beschäftigen. Durch die PMML-Schnittstelle ist das Analyseprojekt nicht mehr an ein Data Mining Tool gebunden. 3.2. Historie PMML wurde 1998 durch die Data Mining Group ins Leben gerufen. Diese Gruppe besteht aus 12 Full Members und 8 Association Members. Darunter befinden sich Firmen wie IBM Corporation, Microsoft, Oracle Corporation, SAS Inc., SAP,... Die aktuellste Version 2.1 wurde im März 2003 freigegeben. Die Version 3.0 wurde zum ersten Quartal 2004 angekündigt. 3.3. Einsatz PMML kann in erschiednen Szenarien eingesetzt werde. Zum einen im Einsatz bei Modelldistributionen in operative Anwendungen. Der Nachteil dabei ist, dass das Modell nicht geändert werden kann. Es wird einfach so wie es ist ausgeliefert und eingesetzt. Da man ohne Zusatzinformationen nichts über Herkunft, Datengrundlage und Güte weiß, ist es nur bedingt einsetzbar. Ein weiteres Szenario könnte der Vergleich verschiedener Data Mining Algorithmen sein. Man erstellt eine Lernmenge, die man an die Anbieter gibt und testet das Modell, das diese Anbieter liefern auf der eigenen Datenmenge, der sogenannten Testmenge. Nun kann man anhand des Ergebnisses, das die verschiedenen Modelle liefern, ein Urteil bilden und den besten Anbieter herausfinden. Noch ein Szenario wäre der Austausch von Data Mining Prozessen zwischen verschiedenen Analysten. 3.4. Die von PMML unterstützen Modelle PMML ist noch in der Entwicklung und somit wird noch nicht der gesamte Data Mining Prozess abgebildet. Hier sind nun die Modelle, die von der Version 2.1 unterstützt werden. 3.4.1. Data Dictionary, Mining Schema und Transformation Das Data Dictionary definiert die Felder, auf die sich ein Data Mining Modell bezieht. Dazu werden auch der Typ und der Wertebereich dieses Modells abgelegt. Ein Dictionary kann für mehrere Modelle dienen. Das Mining Schema ist eine Teilmenge des Data Dictionary. Dieses definiert die Elemente, die in dem Modell benutzt werden. 4
Transformation bildet die Wertebereiche der Felder auf den Wertebereich des Modells um. Ein Neurales Netzwerk arbeitet zum Beispiel nur mit Werten zwischen 0 und 1. Dabei müssen die Eingabedaten in diesen Wertebereich verschoben werden. 3.4.2. Association Rules Das Association Rules Modell beschreibt Zusammenhänge zwischen Elementen. So kann das Modell beschreiben, dass ein bestimmtes Produkt oft mit einem anderen Produkt zusammen gekauft wird (Brot mit Milch). 3.4.3. Decision Tree Bäume werden meist zur Klassifikation benutzt. Dabei wird bei jedem Knoten je nach Bedingung in den entsprechenden Nachfolgerknoten gegangen. Die Blätter stellen verschiedene Container dar, in die die Elemente fallen können. Jeder Container stellt eine Klasse dar. 3.4.4. Clustering Ein Cluster Modell besteht aus einer Menge von Clustern. Das Modell muss Informationen über die Distanz oder Ähnlichkeitsmaße, mit denen geclusterd wird, enthalten. 3.4.5. Regression Die Regression Funktion wird dazu benutzt, das Verhältnis zwischen einer abhängigen und einer oder mehrerer unabhängigen Variablen zu bestimmen. Die abhängige Variable ist diejenige, die man mit Hilfe der unabhängigen Variablen bestimmen will. 3.4.6. Neural Network Ein neurales Netzwerk besteht aus einen oder mehreren Eingängen, die über mehrere Neuronen geleitet werden. Manche Neuronen werden auch als Ausgänge genommen. 5
4. Allgemeine Struktur eines PMML Dokuments 4.1. XML als Hintergrund Extensible Markup Language (XML) bietet sich als Grundlage für PMML an. Ein PMML Document besteht aus zwei Teilen. Die Document Type Definition (DTD) und den eigentlichen Daten. Die DTD enthält die Beschreibung der Struktur des Dokuments. Hier wird acuh beschrieben, wie die Syntax des PMML Dokumentes genau aussieht. Als nächstes kommen die eigentlichen Daten. 4.2. Aufbau des PMML Dokuments Hier wird nun die Form des PMML Dokumentes anhand des Beispiels eines Baumes gemacht. Zuerst wird eine Beschreibung des Baumes angegeben und dann wird diese Beschreibung in PMML Code umgesetzt. 4.2.1. Modell In Abbildung 4.2.1 wird ein Baum graphisch dargestellt. Dieser beschreibt, unter welchen Bedingungen die Entscheidung fällt, ob man Golf spielen geht oder nicht. Die Entscheidungen hängen von den Variablen Wetter, Temperatur und Luftfeuchtigkeit. Dabei kann Wetter nur die Werte sonnig, bewölkt und regnerisch übernehmen. Bei Wind bestehen die Werte nur aus windig (true) und nicht windig (false). Temperatur und Luftfeuchtigkeit können dagegen reellen Werte annehmen. 6
Abbildung 4.2.1: Der Entscheidungsbaum als Graphik 4.2.2. Header Die Daten des PMML Dokumentes beginnen mit dem Header. Im Header stehen Dinge wie Copyright und Beschreibung. <?XML version= 1.0?> <PMML version= 1.1 > <Header copyright=www.magnifyresearch.com description= A very small binary tree model to show structure /> 4.2.3. Data Dictionary Nun kommt die Definition der Daten, mit denen in diesem Modell gearbeitet wird. Dabei hat das Feld whatido einen speziellen Wert. Es beschreibt die Aktionen, die in einem Blatt ausgeführt werden können. <Data Dictionary numberoffields= 5 > <DataField name= temperature optype= continuous /> <DataField name= humidity optype= continuous /> <DataField name= windy optype= categorical> <Value value= true /> <Value value= false /> </DataField> <DataField name= outlook optype= categorical > <Value value= sunny /> <Value value= overcast /> <Value value= rain /> </DataField> <DataField name= whatido optype= categorical > <Value value= play /> <Value value= no_play /> 7
</DataField> </DataDictionary> 4.2.4. Mining Schema Im Mining Schema werden nun die Felder beschrieben, die im Modell verarbeitet werden. <TreeModel modelname= golfing > <MiningSchema> <MiningField name= temperature /> <MiningField name= humidity /> <MiningField name= windy /> <MiningField name= outlook /> <MiningField name= whatido usagetype= predited /> </MiningSchema> 4.2.5. Tree Nun kommt das eigentliche Modell. Der Baum wird aufgespannt. Dabei sieht man auch, wieso XML am besten zum Ablegen des Modells geeignet ist. Durch die Verschachtelung von TAGs miteinander kann man leicht die Knotenstruktur des Baumes aufbauen. <Node score= play > <Predicate field= outlook operator= equal value= sunny /> <Node score= play > <CompoundPredicate booleanoperator= and > <Predicate field= temperature operator= lessthan value= 90F /> <Predicate field= temperature operator= greaterthan value= 50F /> <Predicate field= humidity operator= lessthan value=70 /> </CompoundPredicate> <Node score= play > <True/> </Node> <Node score= no_play > <True/> </Node> </Node> <Node score= play > <Predicate field= outlook operator= equal value= rain /> <Node score= no_play > <True/> </Node> <Node score= play> <CompoundPredicate booleanoperator= and > <Predicate field= temperature operator= lessthan value= 100F /> <Predicate field= humidity= operator= lessthan value= 60 /> </CompoundPredicate> <Node score= play > <True/> </Node> <Node score= no_play <True/> </Node> </Node> </Node> </Node> </Node> </TreeModel></PMML> 4.3. Schnittstellen Es gibt mehrere Möglichkeiten, PMML Dokumente einzulesen. Prinzipiell muss man nur den XML-Code parsen. Dazu eignet sich jeder XML-Parser. Dazu gibt es mehrere Anbieter von Softwarepaketen, die PMML einlesen können. So hat zum Beispiel die Xelopes Library, eine frei erhältliche Data Mining Library das Einlesen von PMML Dokumenten schon realisiert. Dazu gibt es auch Tools, die ein PMML Dokument Graphisch anzeigen. Abbildung 4.3.1 zeigt ein kleines Beispiel, wie ein Baum graphisch dargestellt werden kann. Dadurch kann man Modelle verschiedenster Data Mining Tools darstellen, ohne die Spezielle Software zu besitzen. Man muss das Modell nur in PMML Form haben. 8
Abbildung 4.3.1 Beispiel einer graphischen Ausgabe eines Entscheidungsbaumes 4.4. Import eines PMML Dokuments in DB2 Intelligent Miner. Im folgenden wird beschrieben, wie man ein Modell in PMML form in eine Datenbank importieren und auf die Daten anwenden kann. Diese Funktionalität ist natürlich von Datenbank zu Datenbank verschieden. Zuerst muss das PMML Dokument in die Datenbank importiert werden. Dazu bietet DB2 folgenden Befehl an: Insert into IDMMX.ClassifModels values ( myregmodel102, IDMMX.DM_impClasFile( \\mymachine\mypmmlliv\dmreg.xml )); Nun wurde das Modell importiert und muss nur mehr auf die Daten angewendet werden. Das funktioniert wie folgt: WITH classifview( species, sepallen, sepalwid, petallen, petalwid, classifresult) AS ( SELECT B. species, B. sepallen, B. sepalwid, B. petallen, B. petalwid, IDMMX.DM_applyClassModel( C.MODEL, IDMMX.DM_impApplData ( rec2xml( 1.0, COLATTIVAL,, B. sepallen, B. sepalwid, B. petallen, B. petalwid ) ) ) FROM dmairis B, IDMMX.ClassifModels C WHERE C.MODELNAME= myregmodel102 ) SELECT sepallen, sepalwid, petallen, petalwid, species, IDMMX.DM_getPredClass( classifresult ) as pred_species FROM classifview; 9
5. PMML und der SAS Enterprise Miner TM 5.1. PMML Modelle, die von SAS unterstützt werden In SAS 9.1 gibt es Releases des Enterprise Miner Clients. Enterprise Miner 4.3 ist ein SAS/AF Client und unterstützt kein PMML. Enterprise Miner 5.1 ist ein Java Client und unterstützt PMML. Der Enterprise Miner sieht wie in Abbildung 5.1.1 aus. Abbildung 5.1.1: Oberfläche vom Enterprise Miner. Dieser ist knotenartig aufgebauut, wobei jeder Knoten einen Arbeitsschritt beschreibt. In der graphischen Oberfläche werden Data Mining Tools als Nodes bezeichnet. Nur ein kleiner Teil dieser Nodes produziert PMML-Output. Tabelle 5.1.1 zeigt alle Nodes im Enterprise Miner, die es gibt. Dabei werden jene Nodes aufgezeigt, die PMML können. Enterprise Miner Node Name Scoring Functions Generate SAS Code? Generate PMML? Imput Data Source No No Sample No No Partition No No Time Series No No Variable Selection Binning, Grouping, Interaction Terms Cluster Segment and Yes Yes Distance Assignment StatExplore No No Association Rule Definitions No No Path Analysis No No Test Miner No No Drop No No Transformation Variables Binning, Quantile, No No Percentile, Power, Optimal, etc. Filter Row Selection Impute Missing Value Replacement Principal Components Creates New 10
PrinComp Variables Regression Probability, Classification, Yes Yes Dmine Regression Probabiity, Classification, Decision Tree Probability, Classification, Yes Yes Decision Assignment, And Leaf Assignment Rule Induction Probality, Classification. Neural Network Probality, Classification, Yes Yes AutoNeural Probality, Classification, Yes Yes DMNeura Probality, Classification, Two Stage Probality, Classification, MBR Probality, Classification, Ensemble Probality, Classification, Model Comparsion Probality Percentile Assignment Score Map Varying Output Column Names To Fixed Column Names, Aggregate Score Code for Analyses Metadata No No SAS Code As entered by User * * Merge Joins Input Tables Yes No By ID Variable Control Point No No Tabelle 5.1.1: Nodes vom SAS Enterprise Miner mit der Beschreibung von Nodes, die PMML können. An dieser Tabelle sieht man, dass nur ein kleiner Teil der Möglichkeiten, die man im SAS Enterprise Miner hat, als PMML darstellen kann. Hinzu kommen die verschiedensten Datentypen, die es speziell in SAS gibt. Das führt dazu, dass SAS den PMML Code für seine Applikationen erweitert hat. Das führt dazu, dass sich PMML von SAS zu einem Dialekt von PMML entwickelt. Die SAS-Spezifischen Informationen werden durch den Zusatz x-sas erweitert. So wird ein <DataField name= time optype= continuous datatype= timeseconds /> zu einem <DataField name= time optype= continuous datatype= timeseconds x-sasinformat= TIME. />. Sollte man das SAS-PMML in ein anderes Data Mining Tool einbinden, dann weiß dieses, dass die Informationen bis zum x-sasinformat für dieses Toolinteressant sind. Um mit dem SAS Enterprise Miner PMML zu generieren gibt es mehrere Befehle: PROC DMDB erstellt das Data und Transformation Dictionary PROC ARBOR, NEURAL, DMREG und DMVQ erstellt das Baummodell, Neurake Netzwerk, Regressionsmodell und das Clustermodell. PROC RULEGEN erstellt das Assoziationsmodell Diese Befehle stehen dem Benutzer zur Verfügung. 11
6. Die Zukunft von PMML 6.1. Weiterentwicklung von PMML PMML ist wie schon bekannt 1998 entstanden. Zum jetzigen Zeitpunkt werden noch nicht alle Modelle, die Data Mining unterstützt. Die neueste Version 3.0, die 2004 herauskommt, soll aber diese Unterstützung haben. Allerdings ist der große Nachteil, dass die Daten, mit denen das Modell erstellt wurde, nicht aus dem Modell ersichtlich sind. Außerdem ist der Prozess, wie das Modell entstanden ist, auch nicht erkennbar. 6.2. Fazit PMML ist ein typisches Beispiel für Standards, die gerade im Entstehen sind. Da der Standard noch nicht ausgereift ist, müssen viele Firmen den Standard erweitern, was zu vielen Dialekten führt. Allerdings sollte sich in Zukunft ein Standard entwickeln, der für alle Anbieter die nötige Unterstützung hat. Das ist sehr schwierig, denn viele Anbieter haben verschiedene besondere Produktspezifische Lösungen und Datentypen, die sie von der Konkurrenz abheben. PMML soll auch nicht zu einer Vereinheitlichung der Softwareprodukte führen. Die große Stärke von PMML ist es, dass das Modell einfach und vielseitig einsetzbar ist. Es kann sehr einfach in eine DB2 Datenbank importiert werden und man kann es schon auf die Daten anwenden. Allerdings weiß man, wenn man nur das Modell hat, gar nichts über die Geschichte des Modells. Dazu wurde das Modell zu einer bestimmten Aufgabenstellung erstellt und kann nicht mehr geändert werden. Es kann also nicht auf geänderte Situationen angepasst werden. 12
7. Literatur http://www.is.informatik.uni-duisburg.de/teaching/lectures/dm_ws03/ http://www.dmg.org http://www.prudsys.com/produkte/algorithmen/xelopes/produktinfo/ http://cyber.felk.cvut.cz/solomon/pmml/pmmldminer.html Austauschformate für Data Mining in OLAP; Björn Stadler; Mai 2001 PMML Support in Enterprise Miner; SAS Inc. 13