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.