DocumentazioneExperience PlatformGuida di Query Service

Algoritmi di classificazione

Ultimo aggiornamento: 22 novembre 2024
  • 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.

ParametroDescrizioneValore predefinitoValori possibili
MAX_BINSIl 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à.32Deve essere almeno pari a 2 e almeno uguale al numero di categorie in qualsiasi funzione categoriale.
CACHE_NODE_IDSSe 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.falsetrue, false
CHECKPOINT_INTERVALSpecifica 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)
IMPURITYIl criterio utilizzato per il calcolo dell’acquisizione di informazioni (senza distinzione tra maiuscole e minuscole).ginientropy, gini
MAX_DEPTHProfondità 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_GAINIl guadagno minimo di informazioni necessario affinché una suddivisione possa essere considerata in un nodo della struttura.0,0(>= 0,0)
MIN_WEIGHT_FRACTION_PER_NODEFrazione 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_NODEIl 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_MBMemoria 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_COLNome della colonna per l’output di previsione."previsione"Qualsiasi stringa
SEEDIl seme casuale.N/DQualsiasi numero a 64 bit
WEIGHT_COLIl nome della colonna, ad esempio pesi. Se non è impostato o vuoto, tutti i pesi delle istanze vengono trattati come 1.0.NON IMPOSTATOQualsiasi stringa
ONE_VS_RESTAbilita o disabilita il wrapping di questo algoritmo con One-vs-Rest, utilizzato per problemi di classificazione in più classi.falsetrue, 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.

ParametroDescrizioneValore predefinitoValori possibili
TOLLa tolleranza di convergenza, che controlla la precisione dell'ottimizzazione.1E-6(>= 0)
FACTOR_SIZELa dimensionalità dei fattori.8(>= 0)
FIT_INTERCEPTSpecifica se adattare un termine di intercettazione.truetrue, false
FIT_LINEARSpecifica se adattarsi al termine lineare (noto anche come termine a una via).truetrue, false
INIT_STDDeviazione standard per l'inizializzazione dei coefficienti.0,01(>= 0)
MAX_ITERIl numero massimo di iterazioni per l’algoritmo da eseguire.100(>= 0)
MINI_BATCH_FRACTIONFrazione di dati da utilizzare in mini-batch durante l’apprendimento. Deve essere compreso nell'intervallo (0, 1].1,00 < valore <= 1
REG_PARAMIl parametro di regolarizzazione, che consente di controllare la complessità del modello e di evitare l'adattamento eccessivo.0,0(>= 0)
SEEDValore di inizializzazione casuale per il controllo dei processi casuali nell'algoritmo.N/DQualsiasi numero a 64 bit
SOLVERL’algoritmo del risolutore utilizzato per l’ottimizzazione. Le opzioni supportate sono gd (discendenza sfumata) e adamW."adamW"gd, adamW
STEP_SIZEDimensione del passaggio iniziale per l’ottimizzazione, spesso interpretata come tasso di apprendimento.1,0> 0
PROBABILITY_COLNome 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_COLNome di colonna per le etichette di classe previste."previsione"Qualsiasi stringa
RAW_PREDICTION_COLNome della colonna per i valori di previsione non elaborati (noti anche come affidabilità)."rawPrediction"Qualsiasi stringa
ONE_VS_RESTSpecifica se abilitare One-vs-Rest per la classificazione in più classi.FALSEtrue, 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.

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 2 e uguale o maggiore del numero di categorie in qualsiasi caratteristica 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)
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)
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
VALIDATION_INDICATOR_COL
Il nome della colonna indica se ogni riga viene utilizzata per l’apprendimento o la convalida. Il valore false indica l'addestramento, mentre true indica la convalida. Se non viene impostato alcun valore, il valore predefinito è None.
“Nessuno”
Qualsiasi stringa
RAW_PREDICTION_COL
Nome della colonna per i valori di previsione non elaborati (noti anche come affidabilità).
"rawPrediction"
Qualsiasi stringa
LEAF_COL
Il nome della colonna per gli indici foglia, che è l'indice foglia previsto di ogni istanza in ogni albero, generato dall'attraversamento del preordine.
""
Qualsiasi stringa
FEATURE_SUBSET_STRATEGY
Il numero di feature considerate per la suddivisione in ciascun nodo della struttura. Opzioni supportate: 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"
auto, all, onethird, sqrt, log2, n
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
LOSS_TYPE
Funzione di perdita che il modello Gradient Boosted Tree tenta di ridurre a icona.
"logistico"
logistic (senza distinzione maiuscole/minuscole)
STEP_SIZE
Dimensione del passaggio (nota anche come tasso di apprendimento) nell'intervallo (0, 1], utilizzata per ridurre il contributo di ogni stimatore.
0,1
(>= 0,0, <= 1)
MAX_ITER
Il numero massimo di iterazioni per l’algoritmo.
20
(>= 0)
SUBSAMPLING_RATE
Frazione di dati di addestramento utilizzata per addestrare ogni albero decisionale. Il valore deve essere compreso nell'intervallo 0 < valore <= 1.
1,0
(0, 1]
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
ONE_VS_REST
Abilita o disabilita il wrapping di questo algoritmo con One-vs-Rest per la classificazione in più classi.
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).

Parametro
Descrizione
Valore predefinito
Valori possibili
MAX_ITER
Il numero massimo di iterazioni per l’algoritmo da eseguire.
100
(>= 0)
AGGREGATION_DEPTH
Profondità dell'aggregazione ad albero. Questo parametro viene utilizzato per ridurre il sovraccarico delle comunicazioni di rete.
2
Qualsiasi numero intero positivo
FIT_INTERCEPT
Se adattare un termine di intercettazione.
true
true, false
TOL
Questo parametro determina la soglia per l’interruzione delle iterazioni.
1E-6
(>= 0)
MAX_BLOCK_SIZE_IN_MB
Memoria massima in MB per lo stacking dei dati di input in blocchi. Se il parametro è impostato su 0, il valore ottimale viene scelto automaticamente (in genere circa 1 MB).
0,0
(>= 0)
REG_PARAM
Il parametro di regolarizzazione, che consente di controllare la complessità del modello e di evitare l'adattamento eccessivo.
0,0
(>= 0)
STANDARDIZATION
Questo parametro indica se standardizzare le feature di addestramento prima di adattare il modello.
true
true, false
PREDICTION_COL
Nome della colonna per l’output di previsione.
"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
Abilita o disabilita il wrapping di questo algoritmo con One-vs-Rest per la classificazione in più classi.
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.

Parametro
Descrizione
Valore predefinito
Valori possibili
MAX_ITER
Numero massimo di iterazioni eseguite dall'algoritmo.
100
(>= 0)
REGPARAM
Il parametro di regolarizzazione viene utilizzato per controllare la complessità del modello.
0,0
(>= 0)
ELASTICNETPARAM
Il parametro di combinazione 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).
0,0
(>= 0, <= 1)

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

Parametro
Descrizione
Valore predefinito
Valori possibili
MAX_ITER
Il numero massimo di iterazioni per l’algoritmo da eseguire.
100
(>= 0)
BLOCK_SIZE
Dimensione del blocco per lo stacking dei dati di input nelle matrici all'interno delle partizioni. Se la dimensione del blocco supera i dati rimanenti in una partizione, viene regolata di conseguenza.
128
(>= 0)
STEP_SIZE
Dimensione del passaggio utilizzata per ogni iterazione di ottimizzazione (applicabile solo per il risolutore gd).
0,03
(> 0)
TOL
La tolleranza di convergenza per l'ottimizzazione.
1E-6
(>= 0)
PREDICTION_COL
Nome della colonna per l’output di previsione.
"previsione"
Qualsiasi stringa
SEED
Valore di inizializzazione casuale per il controllo dei processi casuali nell'algoritmo.
NON IMPOSTATO
Qualsiasi numero a 64 bit
PROBABILITY_COL
Nome di colonna per le probabilità condizionali di classe previste. Questi devono essere trattati come punteggi di affidabilità piuttosto che come probabilità esatte.
"probabilità"
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
Abilita o disabilita il wrapping di questo algoritmo con One-vs-Rest per la classificazione in più classi.
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

Parametro
Descrizione
Valore predefinito
Valori possibili
MODEL_TYPE
Specifica il tipo di modello. Le opzioni supportate sono "multinomial", "complement", "bernoulli" e "gaussian". Il tipo di modello distingue tra maiuscole e minuscole.
"multinomiale"
"multinomial", "complement", "bernoulli", "gaussian"
SMOOTHING
Il parametro di uniformità viene utilizzato per gestire i problemi di frequenza zero nei dati categorici.
1,0
(>= 0)
PROBABILITY_COL
Questo parametro specifica il nome della colonna per le probabilità condizionali di classe previste. Nota: non tutti i modelli forniscono stime di probabilità ben calibrate; questi valori vengono considerati come attendibilità anziché come probabilità precise.
"probabilità"
Qualsiasi stringa
WEIGHT_COL
Nome della colonna per i pesi dell’istanza. Se non è impostato o vuoto, tutti i pesi delle istanze vengono trattati come 1.0.
NON IMPOSTATO
Qualsiasi stringa
PREDICTION_COL
Nome della colonna per l’output di previsione.
"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 = '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

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 2 e uguale o maggiore del numero di categorie in qualsiasi caratteristica 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 nodo per ogni istanza, velocizzando l'apprendimento.
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)
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
(>= 1)
PREDICTION_COL
Nome della colonna per l’output di previsione.
"previsione"
Qualsiasi stringa
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 nome di colonna valido o vuoto
SEED
Valore di inizializzazione casuale utilizzato per controllare i processi casuali nell'algoritmo.
-1689246527
Qualsiasi numero a 64 bit
BOOTSTRAP
Se i campioni di bootstrap vengono utilizzati durante la creazione di alberi.
true
true, false
NUM_TREES
Il numero di alberi da addestrare. Se 1, non viene utilizzato alcun bootstrapping. Se maggiore di 1, viene applicato il bootstrapping.
20
(>= 1)
SUBSAMPLING_RATE
La frazione dei dati di formazione utilizzati per imparare ogni albero decisionale.
1,0
(> 0, <= 1)
LEAF_COL
Il nome della colonna per gli indici foglia, che contiene l'indice foglia previsto di ogni istanza in ogni albero per preordine.
""
Qualsiasi stringa
PROBABILITY_COL
Nome di colonna per le probabilità condizionali di classe previste. Questi devono essere trattati come punteggi di affidabilità piuttosto che come probabilità esatte.
NON IMPOSTATO
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 = '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.

recommendation-more-help
ccf2b369-4031-483f-af63-a93b5ae5e3fb