K-Means Clustering
Esplora il K-Means Clustering per l'apprendimento non supervisionato. Scopri come questo algoritmo suddivide i dati, migliora le applicazioni IA e informa modelli come Ultralytics YOLO26.
K-Means Clustering è 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 è suddividere un dataset in sottogruppi distinti, noti come cluster, in modo che i punti dati all'interno dello stesso gruppo siano il più simili possibile, mentre quelli in gruppi diversi siano distinti. Come pietra miliare del data mining e dell'analisi esplorativa, K-Means consente agli scienziati dei dati di organizzare automaticamente informazioni complesse in categorie gestibili senza la necessità di etichette predefinite o supervisione umana.
Link to this sectionCome 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, o centroide, più vicina. Questo processo minimizza la varianza all'interno di ogni gruppo. Il flusso di lavoro segue generalmente questi passaggi:
-
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.
-
Assegnazione: Ogni punto dati nel dataset viene assegnato al centroide più vicino in base a una specifica metrica di distanza, comunemente la distanza euclidea.
-
Aggiornamento: I centroidi vengono ricalcolati prendendo la media di tutti i punti dati assegnati a quel cluster.
-
Iterazione: I passaggi 2 e 3 vengono ripetuti finché 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. Gli esperti spesso utilizzano tecniche come il metodo del gomito o analizzano lo Silhouette score per valutare quanto siano ben separati i cluster risultanti.
Link to this sectionApplicazioni reali nell'IA#
K-Means Clustering è altamente versatile e trova utilità in vari settori per la semplificazione e il pre-processamento dei dati.
- Compressione delle immagini e quantizzazione del colore: Nella computer vision (CV), K-Means aiuta a ridurre la dimensione 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 object detection 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 strategie di marketing mirate, una componente chiave delle soluzioni di AI nel retail. Identificando gli acquirenti ad alto valore o i rischi di abbandono, le aziende possono personalizzare i propri messaggi in modo efficace.
- Rilevamento delle anomalie: Imparando la struttura dei cluster di dati "normali", i sistemi possono identificare outlier che cadono lontano da qualsiasi centroide. Questo è prezioso per il rilevamento delle frodi nella finanza e il rilevamento delle anomalie nella sicurezza di rete, aiutando a segnalare attività sospette che si discostano dai modelli standard.
- Generazione di Anchor Box: Storicamente, i rilevatori di oggetti come le vecchie versioni di YOLO utilizzavano K-Means per calcolare anchor boxes ottimali dai dataset di addestramento. Sebbene modelli moderni come YOLO26 utilizzino metodi avanzati anchor-free, comprendere K-Means rimane rilevante per l'evoluzione delle architetture di rilevamento.
Link to this sectionEsempio di Implementazione#
Mentre i framework di deep learning come la Ultralytics Platform gestiscono pipeline di addestramento complesse, K-Means viene spesso utilizzato per analizzare le statistiche dei dataset. Il seguente snippet Python dimostra come raggruppare coordinate 2D—simulando centroidi di 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 0Link to this sectionConfronto con algoritmi correlati#
È importante distinguere K-Means da altri algoritmi con nomi o funzioni simili per assicurarsi che venga scelto lo strumento corretto per un progetto.
- K-Means vs. K-Nearest Neighbors (KNN): Questi vengono spesso confusi a causa della "K" nei loro nomi. K-Means è un algoritmo non supervisionato utilizzato per raggruppare dati non etichettati. Al contrario, K-Nearest Neighbors (KNN) è un algoritmo di apprendimento supervisionato utilizzato per la classificazione di immagini e la regressione, basandosi su dati etichettati per fare 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à, può trovare cluster di forme arbitrarie e gestisce meglio il rumore. Questo rende DBSCAN superiore per dati spaziali complessi trovati in dataset con strutture irregolari dove il numero di cluster è sconosciuto.






