Algoritmi di classificazione
- Argomenti:
- Query
Creato per:
- Sviluppatore
Questo documento fornisce una panoramica dei vari algoritmi di classificazione, concentrandosi sulla loro configurazione, sui parametri chiave e sull’utilizzo pratico in modelli statistici avanzati. Gli algoritmi di classificazione vengono utilizzati per assegnare categorie ai punti dati in base alle funzioni di input. Ogni sezione include descrizioni dei parametri e codice di esempio per implementare e ottimizzare questi algoritmi per attività quali alberi delle decisioni, foresta casuale e classificazione Bayes naive.
Decision Tree Classifier
Decision Tree Classifier è un approccio di apprendimento supervisionato utilizzato in statistica, data mining e machine learning. In questo approccio, un albero decisionale viene utilizzato come modello predittivo per le attività di classificazione, traendo conclusioni da una serie di osservazioni.
Parametri
La tabella seguente illustra i parametri chiave per la configurazione e l'ottimizzazione delle prestazioni di Decision Tree Classifier.
Parametro | Descrizione | Valore predefinito | Valori possibili |
---|---|---|---|
MAX_BINS | Il numero massimo di raccoglitori determina il modo in cui le feature continue vengono suddivise in intervalli discreti. Questo influisce sul modo in cui le funzioni vengono suddivise in ciascun nodo della struttura decisionale. Più contenitori forniscono maggiore granularità. | 32 | Deve essere almeno pari a 2 e almeno uguale al numero di categorie in qualsiasi funzione categoriale. |
CACHE_NODE_IDS | 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, velocizzando l'addestramento di strutture più profonde. | false | true , false |
CHECKPOINT_INTERVAL | Specifica la frequenza di checkpoint per gli ID dei nodi memorizzati in cache. 10 , ad esempio, indica che la cache viene sottoposta a checkpoint ogni 10 iterazioni. | 10 | (>= 1) |
IMPURITY | Il criterio utilizzato per il calcolo dell’acquisizione di informazioni (senza distinzione tra maiuscole e minuscole). | gini | entropy , gini |
MAX_DEPTH | Profondità massima dell'albero (non negativa). Ad esempio, profondità 0 significa 1 nodo foglia e profondità 1 significa 1 nodo interno e 2 nodi foglia. | 5 | (>= 0) (intervallo: [0,30]) |
MIN_INFO_GAIN | Il guadagno minimo di informazioni necessario affinché una suddivisione possa essere considerata in un nodo della struttura. | 0,0 | (>= 0,0) |
MIN_WEIGHT_FRACTION_PER_NODE | Frazione minima del numero di campioni ponderati che ogni bambino deve avere dopo una divisione. Se una suddivisione fa sì che la frazione del peso totale in uno dei figli sia inferiore a questo valore, viene eliminata. | 0,0 | (>= 0,0, <= 0,5) |
MIN_INSTANCES_PER_NODE | Il numero minimo di istanze che ogni figlio deve avere dopo una suddivisione. Se una suddivisione genera un numero di istanze inferiore a questo valore, la suddivisione viene eliminata. | 1 | (>= 1) |
MAX_MEMORY_IN_MB | Memoria massima, in MB, allocata all'aggregazione dell'istogramma. Se questo valore è troppo piccolo, viene diviso solo 1 nodo per iterazione e i relativi aggregati possono superare queste dimensioni. | 256 | (>= 0) |
PREDICTION_COL | Nome della colonna per l’output di previsione. | "previsione" | Qualsiasi stringa |
SEED | Il seme casuale. | N/D | Qualsiasi numero a 64 bit |
WEIGHT_COL | Il nome della colonna, ad esempio pesi. Se non è impostato o vuoto, tutti i pesi delle istanze vengono trattati come 1.0 . | NON IMPOSTATO | Qualsiasi stringa |
ONE_VS_REST | Abilita o disabilita il wrapping di questo algoritmo con One-vs-Rest, utilizzato per problemi di classificazione in più classi. | false | true , false |
Esempio
Create MODEL modelname OPTIONS(
type = 'decision_tree_classifier'
) AS
select col1, col2, col3 from training-dataset
Factorization Machine Classifier
Factorization Machine Classifier è un algoritmo di classificazione che supporta la normale discesa con gradiente e il risolutore AdamW. Il modello di classificazione della macchina di fattorizzazione utilizza la perdita logistica, che può essere ottimizzata tramite una discesa con gradiente, e spesso include termini di regolarizzazione come L2 per evitare l'eccesso di adattamento.
Parametri
La tabella seguente illustra i parametri chiave per la configurazione e l'ottimizzazione delle prestazioni di Factorization Machine Classifier.
Parametro | Descrizione | Valore predefinito | Valori possibili |
---|---|---|---|
TOL | La tolleranza di convergenza, che controlla la precisione dell'ottimizzazione. | 1E-6 | (>= 0) |
FACTOR_SIZE | La dimensionalità dei fattori. | 8 | (>= 0) |
FIT_INTERCEPT | Specifica se adattare un termine di intercettazione. | true | true , false |
FIT_LINEAR | Specifica se adattarsi al termine lineare (noto anche come termine a una via). | true | true , false |
INIT_STD | Deviazione standard per l'inizializzazione dei coefficienti. | 0,01 | (>= 0) |
MAX_ITER | Il numero massimo di iterazioni per l’algoritmo da eseguire. | 100 | (>= 0) |
MINI_BATCH_FRACTION | Frazione di dati da utilizzare in mini-batch durante l’apprendimento. Deve essere compreso nell'intervallo (0, 1] . | 1,0 | 0 < valore <= 1 |
REG_PARAM | Il parametro di regolarizzazione, che consente di controllare la complessità del modello e di evitare l'adattamento eccessivo. | 0,0 | (>= 0) |
SEED | Valore di inizializzazione casuale per il controllo dei processi casuali nell'algoritmo. | N/D | Qualsiasi numero a 64 bit |
SOLVER | L’algoritmo del risolutore utilizzato per l’ottimizzazione. Le opzioni supportate sono gd (discendenza sfumata) e adamW . | "adamW" | gd , adamW |
STEP_SIZE | Dimensione del passaggio iniziale per l’ottimizzazione, spesso interpretata come tasso di apprendimento. | 1,0 | > 0 |
PROBABILITY_COL | Nome di colonna per le probabilità condizionali di classe previste. Nota: non tutti i modelli generano probabilità ben calibrate; queste dovrebbero essere trattate come punteggi di affidabilità piuttosto che come probabilità esatte. | "probabilità" | Qualsiasi stringa |
PREDICTION_COL | Nome di colonna per le etichette di classe previste. | "previsione" | Qualsiasi stringa |
RAW_PREDICTION_COL | Nome della colonna per i valori di previsione non elaborati (noti anche come affidabilità). | "rawPrediction" | Qualsiasi stringa |
ONE_VS_REST | Specifica se abilitare One-vs-Rest per la classificazione in più classi. | FALSE | true , false |
Esempio
CREATE MODEL modelname OPTIONS(
type = 'factorization_machines_classifier'
) AS
SELECT col1, col2, col3 FROM training-dataset
Gradient Boosted Tree Classifier
Gradient Boosted Tree Classifier utilizza un insieme di strutture decisionali per migliorare la precisione delle attività di classificazione, combinando più strutture per migliorare le prestazioni del modello.
Parametri
La tabella seguente illustra i parametri chiave per la configurazione e l'ottimizzazione delle prestazioni di Gradient Boosted Tree Classifier.
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
, ad esempio, indica che la cache viene sottoposta a checkpoint ogni 10 iterazioni.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
PREDICTION_COL
VALIDATION_INDICATOR_COL
false
indica l'addestramento, mentre true
indica la convalida. Se non viene impostato alcun valore, il valore predefinito è None
.RAW_PREDICTION_COL
LEAF_COL
FEATURE_SUBSET_STRATEGY
auto
(determinata automaticamente in base all'attività), all
(utilizza tutte le funzionalità), onethird
(utilizza un terzo delle funzionalità), sqrt
(utilizza la radice quadrata del numero di funzionalità), log2
(utilizza il logaritmo base 2 del numero di funzionalità) e n
(dove n è una frazione delle funzionalità se nell'intervallo (0, 1]
o un numero specifico di funzionalità se nell'intervallo [1, total number of features]
).auto
, all
, onethird
, sqrt
, log2
, n
WEIGHT_COL
1.0
.LOSS_TYPE
logistic
(senza distinzione maiuscole/minuscole)STEP_SIZE
(0, 1]
, utilizzata per ridurre il contributo di ogni stimatore.MAX_ITER
SUBSAMPLING_RATE
(0, 1]
PROBABILITY_COL
ONE_VS_REST
false
true
, false
Esempio
Create MODEL modelname OPTIONS(
type = 'gradient_boosted_tree_classifier'
) AS
select col1, col2, col3 from training-dataset
Linear Support Vector Classifier (SVC lineare)
Linear Support Vector Classifier (LinearSVC) costruisce un iperpiano per classificare i dati in uno spazio ad alta dimensione. Puoi utilizzarlo per massimizzare il margine tra le classi al fine di ridurre al minimo gli errori di classificazione.
Parametri
La tabella seguente illustra i parametri chiave per la configurazione e l'ottimizzazione delle prestazioni di Linear Support Vector Classifier (LinearSVC).
MAX_ITER
AGGREGATION_DEPTH
FIT_INTERCEPT
true
true
, false
TOL
MAX_BLOCK_SIZE_IN_MB
0
, il valore ottimale viene scelto automaticamente (in genere circa 1 MB).REG_PARAM
STANDARDIZATION
true
true
, false
PREDICTION_COL
RAW_PREDICTION_COL
ONE_VS_REST
false
true
, false
Esempio
Create MODEL modelname OPTIONS(
type = 'linear_svc_classifier'
) AS
select col1, col2, col3 from training-dataset
Logistic Regression
Logistic Regression è un algoritmo supervisionato utilizzato per le attività di classificazione binaria. Modella la probabilità che un’istanza appartenga a una classe utilizzando la funzione logistica e assegna l’istanza alla classe con la probabilità più elevata. Questo lo rende adatto a problemi in cui l’obiettivo è quello di separare i dati in una di due categorie.
Parametri
La tabella seguente illustra i parametri chiave per la configurazione e l'ottimizzazione delle prestazioni di Logistic Regression.
MAX_ITER
REGPARAM
ELASTICNETPARAM
ElasticNet
controlla il saldo tra le penalità L1 (Lazo) e L2 (Ridge). Un valore pari a 0 applica una penalità L2 (Ridge, che riduce la dimensione dei coefficienti), mentre un valore pari a 1 applica una penalità L1 (Lasso, che incoraggia la sparsità impostando alcuni coefficienti a zero).Esempio
Create MODEL modelname OPTIONS(
type = 'logistic_reg'
) AS
select col1, col2, col3 from training-dataset
Multilayer Perceptron Classifier
Multilayer Perceptron Classifier (MLPC) è un classificatore di rete neurale artificiale di avanzamento. È costituito da più livelli completamente connessi di nodi, dove ogni nodo applica una combinazione lineare ponderata di input, seguita da una funzione di attivazione. MLPC viene utilizzato per attività di classificazione complesse che richiedono limiti di decisione non lineari.
Parametri
MAX_ITER
BLOCK_SIZE
STEP_SIZE
gd
).TOL
1E-6
PREDICTION_COL
SEED
PROBABILITY_COL
RAW_PREDICTION_COL
ONE_VS_REST
false
true
, false
Esempio
CREATE MODEL modelname OPTIONS(
type = 'multilayer_perceptron_classifier'
) AS
select col1, col2, col3 from training-dataset
Naive Bayes Classifier
Naive Bayes Classifier è un semplice classificatore probabilistico e multiclasse basato sul teorema di Bayes con ipotesi di indipendenza forte (naive) tra le feature. Si addestra in modo efficiente calcolando le probabilità condizionali in un singolo passaggio sui dati di addestramento per calcolare la distribuzione delle probabilità condizionali di ogni funzione data ogni etichetta. Per le previsioni, usa il teorema di Bayes per calcolare la distribuzione di probabilità condizionale di ogni etichetta data un'osservazione.
Parametri
MODEL_TYPE
"multinomial"
, "complement"
, "bernoulli"
e "gaussian"
. Il tipo di modello distingue tra maiuscole e minuscole."multinomial"
, "complement"
, "bernoulli"
, "gaussian"
SMOOTHING
PROBABILITY_COL
WEIGHT_COL
1.0
.PREDICTION_COL
RAW_PREDICTION_COL
ONE_VS_REST
false
true
, false
Esempio
CREATE MODEL modelname OPTIONS(
type = 'naive_bayes_classifier'
) AS
SELECT col1, col2, col3 FROM training-dataset
Random Forest Classifier
Random Forest Classifier è un algoritmo di apprendimento di gruppo che crea più strutture decisionali durante l'apprendimento. Attenua l’eccesso di adattamento calcolando la media delle previsioni e selezionando la classe scelta dalla maggior parte degli alberi per le attività di classificazione.
Parametri
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, velocizzando l'apprendimento.false
true
, false
CHECKPOINT_INTERVAL
10
, ad esempio, indica 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
PREDICTION_COL
WEIGHT_COL
1.0
.SEED
BOOTSTRAP
true
true
, false
NUM_TREES
1
, non viene utilizzato alcun bootstrapping. Se maggiore di 1
, viene applicato il bootstrapping.SUBSAMPLING_RATE
LEAF_COL
PROBABILITY_COL
RAW_PREDICTION_COL
ONE_VS_REST
false
true
, false
Esempio
Create MODEL modelname OPTIONS(
type = 'random_forest_classifier'
) AS
select col1, col2, col3 from training-dataset
Passaggi successivi
Dopo aver letto questo documento, ora sai come configurare e utilizzare vari algoritmi di classificazione. Quindi, consulta i documenti su regressione e clustering per ulteriori informazioni su altri tipi di modelli statistici avanzati.