Algoritmi di regressione
- Argomenti:
- Query
Creato per:
- Sviluppatore
Questo documento fornisce una panoramica di vari algoritmi di regressione, concentrandosi sulla loro configurazione, sui parametri chiave e sull’utilizzo pratico in modelli statistici avanzati. Gli algoritmi di regressione sono utilizzati per modellare la relazione tra variabili dipendenti e indipendenti, predicendo risultati continui sulla base dei dati osservati. Ogni sezione include descrizioni dei parametri e codice di esempio per implementare e ottimizzare questi algoritmi per attività quali la regressione lineare, casuale e di sopravvivenza.
Regressione di Decision Tree
L'apprendimento di Decision Tree è un metodo di apprendimento supervisionato utilizzato in statistica, data mining e machine learning. In questo approccio, un albero decisionale di classificazione o regressione è utilizzato come modello predittivo per trarre conclusioni su una serie di osservazioni.
Parametri
La tabella seguente illustra i parametri chiave per la configurazione e l’ottimizzazione delle prestazioni dei modelli dell’albero decisionale.
Parametro | Descrizione | Valore predefinito | Valori possibili |
---|---|---|---|
MAX_BINS | Questo parametro specifica il numero massimo di raccoglitori utilizzati per determinare le feature continue e le divisioni in ogni nodo. Più raccoglitori offrono granularità e dettagli più precisi. | 32 | Deve essere almeno 2 e il numero di categorie in qualsiasi funzione categorica. |
CACHE_NODE_IDS | Questo parametro determina se memorizzare in cache gli ID dei nodi per ogni istanza. Se false , l'algoritmo passa gli alberi agli esecutori per far corrispondere le istanze con i nodi. Se true , l'algoritmo memorizza nella cache gli ID dei nodi per ogni istanza, in modo da velocizzare l'addestramento degli alberi più profondi. Gli utenti possono configurare la frequenza di checkpoint della cache o disabilitarla impostando CHECKPOINT_INTERVAL . | false | true o false |
CHECKPOINT_INTERVAL | Questo parametro specifica la frequenza con cui gli ID dei nodi memorizzati in cache devono essere sottoposti a checkpoint. Ad esempio, impostandolo su 10 , la cache verrà sottoposta a checkpoint ogni 10 iterazioni. Applicabile solo se CACHE_NODE_IDS è impostato su true e la directory del punto di controllo è configurata in org.apache.spark.SparkContext . | 10 | (>=1) |
IMPURITY | Questo parametro specifica il criterio utilizzato per calcolare l'incremento di informazioni. I valori supportati sono entropy e gini . | gini | entropy , gini |
MAX_DEPTH | Questo parametro specifica la profondità massima dell'albero. Ad esempio, una profondità di 0 significa 1 nodo foglia, mentre una profondità di 1 significa 1 nodo interno e 2 nodi foglia. La profondità deve essere compresa nell'intervallo [0, 30] . | 5 | [0, 30] |
MIN_INFO_GAIN | Questo parametro imposta il guadagno minimo di informazioni necessario affinché una suddivisione venga considerata valida in un nodo della struttura. | 0,0 | (>=0,0) |
MIN_WEIGHT_FRACTION_PER_NODE | Questo parametro specifica la frazione minima del numero di campioni ponderati che ogni nodo figlio deve avere dopo una suddivisione. Se uno dei nodi figlio ha una frazione inferiore a questo valore, la divisione verrà eliminata. | 0,0 | [0,0, 0,5] |
MIN_INSTANCES_PER_NODE | Questo parametro imposta il numero minimo di istanze che ogni nodo figlio deve avere dopo una divisione. Se una suddivisione genera un numero di istanze inferiore a questo valore, la suddivisione verrà eliminata in quanto non valida. | 1 | (>=1) |
MAX_MEMORY_IN_MB | Questo parametro specifica la memoria massima, in megabyte (MB), allocata per l'aggregazione dell'istogramma. Se la memoria è troppo piccola, verrà diviso un solo nodo per iterazione e i relativi aggregati potrebbero superare queste dimensioni. | 256 | Qualsiasi valore intero positivo |
PREDICTION_COL | Questo parametro specifica il nome della colonna utilizzata per memorizzare le previsioni. | "previsione" | Qualsiasi stringa |
SEED | Questo parametro imposta il valore di inizializzazione casuale utilizzato nel modello. | Nessuna | Qualsiasi numero a 64 bit |
WEIGHT_COL | Questo parametro specifica il nome della colonna di rilevanza. Se questo parametro non è impostato o è vuoto, tutti i pesi delle istanze vengono trattati come 1.0 . | Non impostato | Qualsiasi stringa |
Esempio
CREATE MODEL modelname OPTIONS(
type = 'decision_tree_regression'
) AS
SELECT col1, col2, col3 FROM training-dataset
Regressione di Factorization Machines
Factorization Machines è un algoritmo di apprendimento della regressione che supporta la normale discesa con gradiente e il risolutore AdamW. L'algoritmo si basa sul documento di S. Rendle (2010), "Factorization Machines".
Parametri
La tabella seguente descrive i parametri chiave per configurare e ottimizzare le prestazioni della regressione di Factorization Machines.
Parametro | Descrizione | Valore predefinito | Valori possibili |
---|---|---|---|
TOL | Questo parametro specifica la tolleranza di convergenza per l'algoritmo. Valori più elevati possono determinare una convergenza più rapida, ma una precisione minore. | 1E-6 | (>= 0) |
FACTOR_SIZE | Questo parametro definisce la dimensionalità dei fattori. Valori più alti aumentano la complessità del modello. | 8 | (>= 0) |
FIT_INTERCEPT | Questo parametro indica se il modello deve includere un termine di intercettazione. | true | true , false |
FIT_LINEAR | Questo parametro specifica se includere nel modello un termine lineare (detto anche termine a una via). | true | true , false |
INIT_STD | Questo parametro definisce la deviazione standard dei coefficienti iniziali utilizzati nel modello. | 0,01 | (>= 0) |
MAX_ITER | Questo parametro specifica il numero massimo di iterazioni per l'algoritmo da eseguire. | 100 | (>= 0) |
MINI_BATCH_FRACTION | Questo parametro imposta la frazione mini-batch, che determina la porzione di dati utilizzata in ciascun batch. Deve essere compreso nell'intervallo (0, 1] . | 1,0 | (0, 1] |
REG_PARAM | Questo parametro imposta il parametro di regolarizzazione per evitare l'eccesso di adattamento. | 0,0 | (>= 0) |
SEED | Questo parametro specifica il valore di inizializzazione casuale utilizzato per l'inizializzazione del modello. | Nessuna | Qualsiasi numero a 64 bit |
SOLVER | Questo parametro specifica l'algoritmo del risolutore utilizzato per l'ottimizzazione. | "adamW" | gd (discendenza sfumatura), adamW |
STEP_SIZE | Questo parametro specifica la dimensione del passaggio iniziale (o il tasso di apprendimento) per il primo passaggio di ottimizzazione. | 1,0 | Qualsiasi valore positivo |
PREDICTION_COL | Questo parametro specifica il nome della colonna in cui sono memorizzate le previsioni. | "previsione" | Qualsiasi stringa |
Esempio
CREATE MODEL modelname OPTIONS(
type = 'factorization_machines_regression'
) AS
SELECT col1, col2, col3 FROM training-dataset
Regressione di Generalized Linear
A differenza della regressione lineare, che presuppone che il risultato segua una distribuzione normale (gaussiana), i modelli Generalized Linear (GLM) consentono al risultato di seguire diversi tipi di distribuzioni, come Poisson o binomiale, a seconda della natura dei dati.
Parametri
La tabella seguente descrive i parametri chiave per configurare e ottimizzare le prestazioni della regressione di Generalized Linear.
MAX_ITER
irls
).REG_PARAM
TOL
1E-6
AGGREGATION_DEPTH
treeAggregate
.FAMILY
gaussian
, binomial
, poisson
, gamma
e tweedie
.gaussian
, binomial
, poisson
, gamma
, tweedie
FIT_INTERCEPT
true
true
, false
LINK
identity
, log
, inverse
, logit
, probit
, cloglog
e sqrt
.identity
, log
, inverse
, logit
, probit
, cloglog
, sqrt
LINK_POWER
1 - variancePower
, che viene allineato con il pacchetto R statmod
. Le potenze di collegamento specifiche di 0, 1, -1 e 0,5 corrispondono rispettivamente ai collegamenti Log, Identity, Inverse e Sqrt.SOLVER
irls
(riponderazione iterativa dei minimi quadrati).irls
VARIANCE_POWER
[1, inf)
. Le potenze di varianza di 0, 1 e 2 corrispondono rispettivamente alle famiglie Gaussian, Poisson e Gamma.[1, inf)
LINK_PREDICTION_COL
OFFSET_COL
WEIGHT_COL
1.0
. Nella famiglia Binomial, i pesi corrispondono al numero di prove e i pesi non interi sono arrotondati nel calcolo dell’AIC.Esempio
CREATE MODEL modelname OPTIONS(
type = 'generalized_linear_reg'
) AS
SELECT col1, col2, col3 FROM training-dataset
Regressione di Gradient Boosted Tree
Gli alberi potenziati dal gradiente (Gradient Boosted Tree, GBT) sono un metodo efficace per la classificazione e la regressione che combina le previsioni di più alberi decisionali per migliorare l'accuratezza predittiva e le prestazioni del modello.
Parametri
La tabella seguente descrive i parametri chiave per configurare e ottimizzare le prestazioni della regressione di Gradient Boosted Tree.
MAX_BINS
CACHE_NODE_IDS
false
, l'algoritmo passa gli alberi agli esecutori per far corrispondere le istanze con i nodi. Se true
, l'algoritmo memorizza nella cache gli ID nodo per ogni istanza. La memorizzazione nella cache può accelerare l'apprendimento degli alberi più profondi.false
true
, false
CHECKPOINT_INTERVAL
10
significa che la cache viene sottoposta a checkpoint ogni 10 iterazioni.MAX_DEPTH
0
significa 1 nodo foglia e profondità 1
significa 1 nodo interno con 2 nodi foglia.MIN_INFO_GAIN
MIN_WEIGHT_FRACTION_PER_NODE
MIN_INSTANCES_PER_NODE
MAX_MEMORY_IN_MB
PREDICTION_COL
VALIDATION_INDICATOR_COL
false
per la formazione e true
per la convalida.LEAF_COL
FEATURE_SUBSET_STRATEGY
auto
, all
, onethird
, sqrt
, log2
o una frazione compresa tra 0 e 1,0SEED
WEIGHT_COL
1.0
.LOSS_TYPE
squared
(L2) e absolute
(L1). Nota: i valori non fanno distinzione tra maiuscole e minuscole.STEP_SIZE
(0, 1]
, utilizzata per ridurre il contributo di ogni stimatore.(0, 1]
MAX_ITER
SUBSAMPLING_RATE
(0, 1]
.(0, 1]
Esempio
CREATE MODEL modelname OPTIONS(
type = 'gradient_boosted_tree_regression'
) AS
SELECT col1, col2, col3 FROM training-dataset
Regressione di Isotonic
Isotonic Regression è un algoritmo utilizzato per regolare iterativamente le distanze mantenendo l'ordine relativo delle differenze nei dati.
Parametri
La tabella seguente illustra i parametri chiave per la configurazione e l'ottimizzazione delle prestazioni di Isotonic Regression.
ISOTONIC
true
o antitonica (decrescente) quando false
.true
true
, false
WEIGHT_COL
1.0
.PREDICTION_COL
FEATURE_INDEX
featuresCol
è una colonna vettoriale. Se non viene impostato, il valore predefinito è 0
. In caso contrario, non ha alcun effetto.Esempio
CREATE MODEL modelname OPTIONS(
type = 'isotonic_regression'
) AS
SELECT col1, col2, col3 FROM training-dataset
Regressione di Linear
Linear Regression è un algoritmo di machine learning supervisionato che inserisce un'equazione lineare ai dati per modellare la relazione tra una variabile dipendente e funzionalità indipendenti.
Parametri
La tabella seguente illustra i parametri chiave per la configurazione e l'ottimizzazione delle prestazioni di Linear Regression.
MAX_ITER
REGPARAM
ELASTICNETPARAM
Esempio
CREATE MODEL modelname OPTIONS(
type = 'linear_reg'
) AS
SELECT col1, col2, col3 FROM training-dataset
Random Forest Regression
Random Forest Regression è un algoritmo di insieme che crea più alberi decisionali durante l'addestramento e restituisce la previsione media di tali alberi per le attività di regressione, contribuendo a evitare l'adattamento eccessivo.
Parametri
La tabella seguente illustra i parametri chiave per la configurazione e l'ottimizzazione delle prestazioni di Random Forest Regression.
MAX_BINS
CACHE_NODE_IDS
false
, l'algoritmo passa gli alberi agli esecutori per far corrispondere le istanze con i nodi. Se true
, l'algoritmo memorizza nella cache gli ID dei nodi per ogni istanza, velocizzando l'addestramento di strutture più profonde.false
true
, false
CHECKPOINT_INTERVAL
10
significa che la cache viene sottoposta a checkpoint ogni 10 iterazioni.IMPURITY
entropy
, gini
MAX_DEPTH
0
significa 1 nodo foglia e profondità 1
significa 1 nodo interno e 2 nodi foglia.MIN_INFO_GAIN
MIN_WEIGHT_FRACTION_PER_NODE
MIN_INSTANCES_PER_NODE
MAX_MEMORY_IN_MB
BOOTSTRAP
true
, false
NUM_TREES
1
, non viene utilizzato alcun bootstrapping. Se maggiore di 1
, viene applicato il bootstrapping.SUBSAMPLING_RATE
(0, 1]
.LEAF_COL
PREDICTION_COL
SEED
WEIGHT_COL
1.0
.Esempio
CREATE MODEL modelname OPTIONS(
type = 'random_forest_regression'
) AS
SELECT col1, col2, col3 FROM training-dataset
Survival Regression
Survival Regression viene utilizzato per adattarsi a un modello di regressione di sopravvivenza parametrica, noto come modello Accelerated Failure Time (AFT), basato su Weibull distribution. Può impilare le istanze in blocchi per migliorare le prestazioni.
Parametri
La tabella seguente illustra i parametri chiave per la configurazione e l'ottimizzazione delle prestazioni di Survival Regression.
MAX_ITER
TOL
1E-6
AGGREGATION_DEPTH
treeAggregate
. Se le quote della feature o il numero di partizioni sono elevati, questo parametro può essere impostato su un valore maggiore.FIT_INTERCEPT
true
, false
PREDICTION_COL
CENSOR_COL
1
indica che l'evento si è verificato (non censurato), mentre 0
indica che l'evento è censurato.MAX_BLOCK_SIZE_IN_MB
0
consente la regolazione automatica.Esempio
CREATE MODEL modelname OPTIONS(
type = 'survival_regression'
) AS
SELECT col1, col2, col3 FROM training-dataset
Passaggi successivi
Dopo aver letto questo documento, ora sai come configurare e utilizzare vari algoritmi di regressione. Quindi, consulta i documenti su classificazione e clustering per ulteriori informazioni su altri tipi di modelli statistici avanzati.