Support Vector Regression
==========================

Il modulo effettua la classificazione di immagini o vettori usando l'algoritmo supervisionato non-parametrico Support Vector Regression (SVR). L'algoritmo SVM si basa sul principio che lo spazio delle variabili di partenza può essere trasformato in uno spazio a più alta dimensionalità in cui la stima lineare è possibile. La trasformazione è effettuata utilizzando una funzione kernel.
Gli input allo stimatore sono un file vettoriale contente una colonna con l'indicazione del target da stimare (es: volume) in formato numerico, e (opzionale) l'indicazione delle variabili (attributi del vettore) da usare nella stima (es: percentili LIDAR, altezza LIDAR media, dimensione della chioma, ecc.). L'utente potrà anche inserire un vettoriale da usare nella fase di validazione o per mappare un'area più ampia (es. vettoriale di una griglia).

.. only:: latex

  .. image:: ../_static/tool_images/support_vector_regression.png


Input
------------

**Dati di input vettoriale di training**: file vettoriale contente le aree di training e l'indicazione dei target.

**Seleziona la colonna con indicazione del parametro da stimare**: selezionare tra le colonne del file vettoriale quella che indica il parametro da stimare.

**Vettoriale di mappatura**: file vettoriale contente le aree per effettuare la mappatura dell'attributo stimato. Input opzionale.

Parametri
------------

**Effettuare la cross-validation**: se scelto viene effettuata la cross validation. La cross-validation consiste nel dividere i campioni di training (le aree contenute nel vettoriale di training) in un numero N di fold definiti dall'utente (parametro "fold della cross-vaidation") e di creare un modello usando N-1 fold e di validarlo sul fold rimanete. Questa operazione è ripetuta N volte.

**Inserire il numero di fold della cross-validation**: inserire il numero di fold della cross-validation. Questo numero deve essere scelto in base al numero di campioni di training disponibili e deve essere maggiore o uguale a 2. Non può essere un valore superiore al numero di campioni. Si consiglia di non usare un valore superiore a 10.

**Selezionare il kernel da utilizzare**:

	* *RBF*: kernel di tipo gaussiano Radial Basis Function (scelta consigliata).
	* *lineare*: kernel di tipo lineare.
	* *polinomiale*: kernel polinomiale.

.. warning::

  Il kernel RBF è quello usato di default. Di solito questo kernel riesce a dare i risultati migliori, ma può avere tempi di elaborazione molto lunghi se si hanno molti campioni di training. Inoltre necessità di un tuning dei parametri C e gamma.

**Inserire il parametro C** (opzionale): parametro di regolarizzazione. Default: 1. Se si hanno campioni di training rumorosi si consiglia di usare un valore inferiore ad 1.

**Inserire il valore di gamma** (opzionale): parametro del kernel RBF, sigmoidale e polinomiale. Deve esssre maggiore di 0. Se lasciato vuoto viene usato il valore di default: 1/(numero_di_feature). Un valore molto piccolo fa si che il modello si adatti molto bene ai campioni di training, ma abbia meno capacità di generalizzare.

**Inserire il valore di epsilon**: parametro dello stimatore SVR. Il valore di epsilon indica la fascia attorno alla funzione di predizione per la quale gli errori sono considerati nulli. Questo significa che fissando epsilon a 0.1 in fase di training tutti i punti per cui l'errore di predizione è inferiore a 0.1 in valore assoluto sono considerati corretti.

**Inserire il valore di r** (opzionale): parametro r del kernel sigmoidale e polinomiale.

**Inserire il valore del grado del polinomio** (opzionale): parametro del kernel polinomiale.

**Selezionare la trasformazione**: scegliere la trasformazione da applicare alla colonna target. La trasformazione può aiutare ad ottenere un modello lineare nel caso la distribuzione dei dati non lo sia.

**Selezione variabili**:

	* *no*: nessuna selezione delle variabili. Vengono usate tutte le varaibili contenute nel vettoriale di training.
	* *manuale*: le variabili vengono selezionate manualmente.
	* *file*: le variabili sono scelte in base al file di output del modulo "Selezione variabili per la stima".

**Seleziona le variabili da utilizzare cliccandoci sopra** (opzionale): selezionare le variabili da utilizzare. Se non si seleziona nulla vengono usate tutte le variabili.

**File di selezione** (opzionale): inserire il file ottenuto in output dal modulo "Selezione variabili per la stima". Attivato solo se l'opzione "file" viene scelta nel menu "selezione variabili".

**Vettoriale di validazione** (opzionale): file vettoriale contenente le aree di validazione o di mappatura. I nomi delle colonne del vettoriale devono essere le stesse delle varaibili utilizzate nella creazione del modello.

**Seleziona la colonna per la validazione** (opzionale): selezionare tra le colonne del file vettoriale quella che indica il target. Se si effettua la mappatura non ve scelto nulla.

**Indice di accuratezza per la selezione del modello** (opzionale):

	* *MSE*: Mean Square Error.
	* *R2*: R2.

**Creare output**: se scelto viene creato l'output, ovvero un vettoriale uguiale a quello di validazione/mappatura con un campo aggiuntivo col parametro stimato. Se non viene dato nessun input alla voce *Vettoriale di validazione* l'output verrà creato partendo dal vettoriale di training.

Output
------------

**Risultato**: inserire il percorso e il nome del file di output. Oltre allo shape file lo strumento crea, nella stessa directory, dei file CSV relativi ai risultati del calcolo dell'accuratezza per il set di validazione e della cross validation. Se è stato impostato il kernel linare verrà creato anche un file di testo dei coefficienti e dell'intercetta del modello lineare usato per la stima. 

**Colonna per i valori della stima**: nome della colonna dove verranno salvati i valori stimati. Al nome indicato viene aggiunta in fondo una *S* per indicare ceh la stima è stata effettuata mediante stimatore SVR.

.. only:: latex

  .. raw:: latex

    \newpage % hard pagebreak at exactly this position
