Algoritmi di clustering
- Argomenti:
- Query
Creato per:
- Sviluppatore
Gli algoritmi di clustering raggruppano i punti dati in cluster distinti in base alle loro somiglianze, consentendo all’apprendimento non supervisionato di individuare pattern all’interno dei dati. Per creare un algoritmo di clustering, utilizzare il parametro type
nella clausola OPTIONS
per specificare l'algoritmo da utilizzare per l'apprendimento del modello. Quindi, definisci i parametri rilevanti come coppie chiave-valore per ottimizzare il modello.
K-Means
K-Means
è un algoritmo di clustering che suddivide i dati in un numero predefinito di cluster (k). È uno degli algoritmi più comunemente utilizzati per il clustering per la sua semplicità ed efficienza.
Parametri
Quando si utilizza K-Means
, è possibile impostare i seguenti parametri nella clausola OPTIONS
:
Parametro | Descrizione | Valore predefinito | Valori possibili |
---|---|---|---|
MAX_ITER | Il numero di iterazioni che l’algoritmo deve eseguire. | 20 | (>= 0) |
TOL | Livello di tolleranza della convergenza. | 0.0001 | (>= 0) |
NUM_CLUSTERS | Numero di cluster da creare (k ). | 2 | (>1) |
DISTANCE_TYPE | Algoritmo utilizzato per calcolare la distanza tra due punti. Il valore distingue tra maiuscole e minuscole. | euclidean | euclidean , cosine |
KMEANS_INIT_METHOD | Algoritmo di inizializzazione per i centri cluster. | k-means|| | random , k-means|| (versione parallela di k-mean++) |
INIT_STEPS | Numero di passaggi per la modalità di inizializzazione k-means|| (applicabile solo quando KMEANS_INIT_METHOD è k-means|| ). | 2 | (>0) |
PREDICTION_COL | Nome della colonna in cui verranno memorizzate le previsioni. | prediction | Qualsiasi stringa |
SEED | Un seme casuale per la riproducibilità. | -1689246527 | Qualsiasi numero a 64 bit |
WEIGHT_COL | Nome della colonna utilizzata per i pesi dell’istanza. Se non viene impostato, tutte le varianti vengono ponderate in modo uniforme. | not set | N/D |
Esempio
CREATE MODEL modelname
OPTIONS(
type = 'kmeans',
MAX_ITERATIONS = 30,
NUM_CLUSTERS = 4
)
AS SELECT col1, col2, col3 FROM training-dataset;
Bisecting K-means
Bisecting K-means è un algoritmo di clustering gerarchico che utilizza un approccio divisivo (o top-down). Tutte le osservazioni iniziano in un singolo cluster e le divisioni vengono eseguite in modo ricorsivo durante la creazione della gerarchia. Bisecting K-means può essere spesso più veloce delle normali medie K, ma in genere produce risultati cluster diversi.
Parametri
Parametro | Descrizione | Valore predefinito | Valori possibili |
---|---|---|---|
MAX_ITER | Numero massimo di iterazioni eseguite dall'algoritmo. | 20 | (>= 0) |
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 |
NUM_CLUSTERS | Il numero desiderato di cluster foglia. Se non rimangono cluster divisibili, il numero effettivo potrebbe essere inferiore. | 4 | (> 1) |
SEED | Valore di inizializzazione casuale utilizzato per controllare i processi casuali nell'algoritmo. | NON IMPOSTATO | Qualsiasi numero a 64 bit |
DISTANCE_MEASURE | La misura della distanza utilizzata per calcolare la somiglianza tra i punti. | "euclideo" | euclidean , cosine |
MIN_DIVISIBLE_CLUSTER_SIZE | Il numero minimo di punti (se >= 1,0) o la proporzione minima di punti (se < 1,0) necessaria per la divisibile di un cluster. | 1,0 | (>= 0) |
PREDICTION_COL | Nome della colonna per l’output di previsione. | "previsione" | Qualsiasi stringa |
Esempio
Create MODEL modelname OPTIONS(
type = 'bisecting_kmeans',
) AS
select col1, col2, col3 from training-dataset
Gaussian Mixture Model
Gaussian Mixture Model rappresenta una distribuzione composita in cui i punti dati vengono ricavati da una delle sottodistribuzioni di k Gaussian, ciascuna con la propria probabilità. Viene utilizzato per modellare set di dati che si presume siano generati da una miscela di diverse distribuzioni gaussiane.
Parametri
MAX_ITER
WEIGHT_COL
1.0
.NUM_CLUSTERS
SEED
AGGREGATION_DEPTH
PROBABILITY_COL
TOL
PREDICTION_COL
Esempio
Create MODEL modelname OPTIONS(
type = 'gaussian_mixture',
) AS
select col1, col2, col3 from training-dataset
Latent Dirichlet Allocation (LDA)
Latent Dirichlet Allocation (LDA) è un modello probabilistico che acquisisce la struttura argomento sottostante da una raccolta di documenti. Si tratta di un modello bayesiano gerarchico a tre livelli con livelli di parola, argomento e documento. LDA utilizza questi livelli, insieme ai documenti osservati, per creare una struttura di argomenti latente.
Parametri
MAX_ITER
OPTIMIZER
"online"
(Online Variational Bayes) e "em"
(Expectation-Maximization).online
, em
(senza distinzione maiuscole/minuscole)NUM_CLUSTERS
CHECKPOINT_INTERVAL
DOC_CONCENTRATION
EM
, i valori alfa devono essere maggiori di 1,0 (impostazione predefinita: distribuiti uniformemente come (50/k) + 1), garantendo distribuzioni dell'argomento simmetriche. Per l'ottimizzatore online
, i valori alfa possono essere uguali o superiori a 0 (impostazione predefinita: distribuiti uniformemente come 1,0/k), consentendo un'inizializzazione più flessibile degli argomenti.KEEP_LAST_CHECKPOINT
em
. L’eliminazione del punto di controllo può causare errori in caso di perdita di una partizione di dati. I punti di controllo vengono rimossi automaticamente dall'archivio quando non sono più necessari, come determinato dal conteggio dei riferimenti.true
true
, false
LEARNING_DECAY
online
, impostato come tasso di decadimento esponenziale tra (0.5, 1.0]
.(0.5, 1.0]
LEARNING_OFFSET
online
che sottopone a downweight le iterazioni iniziali per ridurre il conteggio delle iterazioni iniziali.SEED
OPTIMIZE_DOC_CONCENTRATION
online
: se ottimizzare docConcentration
(parametro Dirichlet per la distribuzione di argomenti dei documenti) durante l'apprendimento.false
true
, false
SUBSAMPLING_RATE
online
: la frazione del corpo campionata e utilizzata in ogni iterazione di discendenza sfumata mini-batch, nell'intervallo (0, 1]
.(0, 1]
TOPIC_CONCENTRATION
EM
, valori > 1,0 (valore predefinito = 0,1 + 1). Per online
, i valori ≥ 0 (valore predefinito = 1,0/k).TOPIC_DISTRIBUTION_COL
Esempio
Create MODEL modelname OPTIONS(
type = 'lda',
) AS
select col1, col2, col3 from training-dataset
Passaggi successivi
Dopo aver letto questo documento, saprai come configurare e utilizzare vari algoritmi di clustering. Quindi, consulta i documenti su classificazione e regressione per ulteriori informazioni su altri tipi di modelli statistici avanzati.