Yolo Vision Shenzhen
Shenzhen
Iscriviti ora
Glossario

Clustering K-Means

Esplora il clustering K-Means per l'apprendimento non supervisionato. Scopri come questo algoritmo suddivide i dati, migliora le applicazioni di IA e alimenta modelli come Ultralytics .

Il clustering K-Means è un algoritmo fondamentale e ampiamente utilizzato nel campo dell' apprendimento non supervisionato, progettato per scoprire strutture nascoste all'interno di dati non etichettati. Il suo obiettivo principale è quello di suddividere un set di dati in sottogruppi distinti, noti come cluster, in modo tale che i punti dati all'interno dello stesso gruppo siano il più simili possibile, mentre quelli di gruppi diversi siano distinti. Come pietra miliare del data mining e dell'analisi esplorativa, K-Means consente ai data scientist di organizzare automaticamente informazioni complesse in categorie gestibili senza la necessità di etichette predefinite o supervisione umana.

Come funziona l'algoritmo

Il funzionamento di K-Means è iterativo e si basa su metriche di distanza per determinare il raggruppamento ottimale dei dati di addestramento. L'algoritmo opera organizzando gli elementi in K cluster, dove ogni elemento appartiene al cluster con la media più vicina, o centroide. Questo processo riduce al minimo la varianza all'interno di ciascun gruppo. Il flusso di lavoro segue generalmente questi passaggi:

  1. Inizializzazione: l'algoritmo seleziona K punti iniziali come centroidi. Questi possono essere scelti casualmente o tramite metodi ottimizzati come k-means++ per accelerare la convergenza.
  2. Assegnazione: ogni punto dati nel set di dati viene assegnato al centroide più vicino in base a una specifica metrica di distanza, più comunemente la distanza euclidea.
  3. Aggiornamento: i centroidi vengono ricalcolati prendendo la media (media aritmetica) di tutti i punti dati assegnati a quel cluster.
  4. Iterazione: i passaggi 2 e 3 vengono ripetuti fino a quando i centroidi non si spostano più in modo significativo o viene raggiunto un numero massimo di iterazioni.

Determinare il numero corretto di cluster (K) è un aspetto critico dell'utilizzo di questo algoritmo. I professionisti spesso utilizzano tecniche come il metodo Elbow o analizzano il punteggio Silhouette per valutare quanto siano ben separati i cluster risultanti.

Applicazioni del mondo reale nell'IA

Il clustering K-Means è altamente versatile e trova utilità in vari settori per la semplificazione e la pre-elaborazione dei dati.

  • Compressione delle immagini e quantizzazione dei colori: nella visione artificiale (CV), K-Means aiuta a ridurre le dimensioni dei file delle immagini raggruppando i colori dei pixel. Raggruppando migliaia di colori in un insieme più piccolo di colori dominanti , l'algoritmo esegue efficacemente la riduzione della dimensionalità, preservando la struttura visiva dell'immagine. Questa tecnica viene spesso utilizzata prima dell'addestramento di modelli avanzati di rilevamento degli oggetti per normalizzare i dati di input.
  • Segmentazione della clientela: le aziende sfruttano il clustering per raggruppare i clienti in base alla cronologia degli acquisti, ai dati demografici o al comportamento sul sito web. Ciò consente di attuare strategie di marketing mirate, una componente fondamentale dell' intelligenza artificiale nelle soluzioni di vendita al dettaglio. Identificando gli acquirenti di alto valore o i rischi di abbandono, le aziende possono personalizzare i propri messaggi in modo efficace.
  • Rilevamento delle anomalie: apprendendo la struttura dei cluster di dati "normali", i sistemi possono identificare i valori anomali che si discostano notevolmente da qualsiasi centroide. Ciò è prezioso per il rilevamento delle frodi in ambito finanziario e il rilevamento delle anomalie nella sicurezza della rete, aiutando a segnalare attività sospette che si discostano dai modelli standard.
  • Generazione di anchor box: storicamente, i rilevatori di oggetti come YOLO precedenti YOLO utilizzavano K-Means per calcolare gli anchor box ottimali dai set di dati di addestramento . Mentre i modelli moderni come YOLO26 utilizzano metodi avanzati senza anchor, la comprensione di K-Means rimane rilevante per l'evoluzione delle architetture di rilevamento.

Esempio di implementazione

Mentre i framework di deep learning come la Ultralytics gestiscono pipeline di formazione complesse, K-Means viene spesso utilizzato per analizzare le statistiche dei set di dati. Il seguente Python mostra come raggruppare coordinate 2D, simulando i centroidi degli oggetti, utilizzando la popolare libreria Scikit-learn.

import numpy as np
from sklearn.cluster import KMeans

# Simulated coordinates of detected objects (e.g., from YOLO26 inference)
points = np.array([[10, 10], [12, 11], [100, 100], [102, 101], [10, 12], [101, 102]])

# Initialize K-Means to find 2 distinct groups (clusters)
kmeans = KMeans(n_clusters=2, random_state=0, n_init="auto").fit(points)

# Output the cluster labels (0 or 1) for each point
print(f"Cluster Labels: {kmeans.labels_}")
# Output: [1 1 0 0 1 0] -> Points near (10,10) are Cluster 1, near (100,100) are Cluster 0

Confronto con algoritmi simili

È importante distinguere K-Means da altri algoritmi con nomi o funzioni simili per garantire la scelta dello strumento corretto per un progetto.

  • K-Means vs. K-Nearest Neighbors (KNN): Questi algoritmi vengono spesso confusi a causa della "K" presente nei loro nomi. K-Means è un algoritmo non supervisionato utilizzato per il clustering di dati non etichettati. Al contrario, K-Nearest Neighbors (KNN) è un algoritmo di apprendimento supervisionato utilizzato per la classificazione e la regressione delle immagini, che si basa su dati etichettati per effettuare previsioni basate sulla classe maggioritaria dei vicini.
  • K-Means vs. DBSCAN: Sebbene entrambi raggruppino i dati, K-Means presuppone che i cluster siano sferici e richiede che il numero di cluster sia definito in anticipo. DBSCAN raggruppa i dati in base alla densità, è in grado di individuare cluster di forme arbitrarie e gestisce meglio il rumore. Ciò rende DBSCAN superiore per i dati spaziali complessi presenti in set di dati con strutture irregolari in cui il numero di cluster è sconosciuto.

Unitevi alla comunità di Ultralytics

Entra nel futuro dell'AI. Connettiti, collabora e cresci con innovatori globali

Iscriviti ora