Predictive Model Markup Language

Il Predictive Model Markup Language (PMML) è un linguaggio di markup aperto basato su XML, sviluppato dal Data Mining Group (DMG), concepito per permettere la descrizione di modelli di analisi predittiva che possano essere condivisi tra sistemi ed applicazioni diversi. PMML è uno standard de facto,[1][2] che ha avuto origine nel 1997.

PMML
Estensione.pmml
SviluppatoreData Mining Group (DMG)
Formato aperto?

Da quando PMML è uno standard basato su XML, le specifiche sono XML Schema.

Componenti PMML modifica

PMML segue una struttura intuitiva per descrivere un modello di data mining, che sia esso un modello di rete neurale artificiale o un modello di regressione logistica.

La struttura può essere descritta dai seguenti componenti:[3][4]

  • Header: contiene informazioni generali circa il documento PMML, come informazioni sul copyright del modello, sua descrizione e informazioni riguardo l'applicazione (nome e versione) usata per generarlo. Contiene anche un attributo di tipo timestamp il quale può essere usato per specificare la data della creazione del modello.
  • Data Dictionary: contiene le definizioni di tutti i possibili campi usati dal modello. Qui è definito il campo come continuo, categorico o ordinale (attributo optype). Da questa definizione dipende l'appropriata valutazione del range che è definito dopo il tipo di dato (come string e double).
  • Data Transformations: trasformazioni che consentono il mappaggio di dati in diverse forme, per essere usate dal modello di mining. PMML definisce cinque trasformazioni:
    • Normalization: mappa i valori a numeri, l'input può essere continuo o discreto.
    • Discretization: mappa valori continui in valori discreti.
    • Value mapping: mappa valori discreti in valori discreti.
    • Functions: deriva un valore dall'applicazione di una funzione con uno o più parametri.
    • Aggregation: usata per sintetizzare o collezionare gruppi di valori.
  • Model: contiene la definizione del modello di data mining. La multi-layered feedforward neural network è la più comune rappresentazione rete neurale nelle odierne applicazioni, che ha conquistato la popolarità grazie all'efficienza data dall'algoritmo di training conosciuto come backpropagation. Una rete è rappresentata in PMML da un elemento "NeuralNetwork" il quale contiene attributi come:
    • Nome del modello (attributo modelName)
    • Nome funzione (attributo functionName)
    • Nome algoritmo (attributo algorithmName)
    • Funzione di attivazione (attributo activationFunction)
    • Numero di strati (attributo numberOfLayers)

Queste informazioni sono seguite da un albero che modella gli strati neurali i quali specificano l'architettura del modello di rete neurale. Questi attributi sono NeuralInputs, NeuralLayer, e NeuralOutputs. Accanto alla rete neurale, PMML consente la rappresentazione di altri tipi di modelli di data mining come: macchine a vettori di supporto, regole di associazione, classificatore bayesiano, clustering models, text models, alberi di decisione e differenti modelli di regressione.

  • Mining Schema: lo schema di mining elenca tutti i campi usati nel modello. Questo può essere un sottoinsieme dei campi definiti nel dizionario. Contiene informazioni specifiche di ogni campo, come:
    • Nome (attributo name): deve riferirsi a un campo del dizionario
    • Tipo d'uso (attributo usageType): definisce il modo di utilizzo di un campo nel modello. Tipicamente i valori sono: active, predicted, e supplementary. I campi Predicted sono quei valori interi predetti dal modello.
    • Trattamento estremo (attributo outliers): definisce i trattamenti estremi che possono essere utilizzati. In PMML, gli estremi (outliers) possono essere trattati come valori mancanti, come valori estremi (basati sulla definizione di massimo e minimo valore del particolare campo, o lasciandoli inalterati).
    • Politica di rimpiazzamento del valore (attributo missingValueReplacement): se questo attributo è specificato dopo un valore mancante è automaticamente rimpiazzato da un valore calcolato.
    • Trattamento valore mancante (attributo missingValueTreatment): indica come il valore di rimpiazzamento è derivato (es. come valore, media o mediana).
  • Targets: consente nel post-processing dei valori predetti di fare operazioni di scalatura se l'output del modello è continuo. Targets possono essere anche usati per classificare compiti. In questo caso l'attributo priorProbability specifica una probabilità di default per la categoria target corrispondente. Esso è usato se la predizione logica non produce un risultato. Questo può accadere, per esempio, se un valore di input è mancante e questo e non è presente un metodo di trattamento dei valori mancanti.
  • Output: Questo elemento può essere usato per nominare tutti i campi di output desiderati aspettati dal modello. Le caratteristiche del campo predetto sono tipicamente i valori predetti, la probabilità, affinità cluster (per modelli clustering), errore standard, etc.

Storia dei rilasci modifica

Versione Data di rilascio
Versione 0.7 luglio 1997
Versione 0.9 Luglio 1998
Versione 1.0 Agosto 1999
Versione 1.1 Agosto 2000
Versione 2.0 Agosto 2001
Versione 2.1 Marzo 2003
Versione 3.0 Ottobre 2004
Versione 3.1 Dicembre 2005
Versione 3.2 Maggio 2007
Versione 4.0 Giugno 2009
Versione 4.1 Dicembre 2011
Versione 4.2 Febbraio 2014
Versione 4.2.1 Marzo 2015
Versione 4.3 Agosto 2016

Note modifica

  1. ^ Alex Guazzelli, What is PMML?, su ibm.com, IBM developerWorks, 28 settembre 2010. URL consultato l'11 agosto 2013.
  2. ^ Mark F. Hornick, Erik Marcadé, Sunil Venkayala, Java Data Mining: Strategy, Standard, and Practice, su books.google.it, Morgan Kaufmann, 2010, 452-453, ISBN 978-0080495910.
  3. ^ A. Guazzelli, M. Zeller, W. Chen, and G. Williams. PMML: An Open Standard for Sharing Models. The R Journal, Volume 1/1, May 2009.
  4. ^ A. Guazzelli, W. Lin, T. Jena (2010). PMML in Action: Unleashing the Power of Open Standards for Data Mining and Predictive Analytics. CreateSpace.
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica