Yolo Vision Shenzhen
Shenzhen
Iscriviti ora
Glossario

Clustering K-Means

Scopri il K-Means Clustering, un algoritmo chiave di apprendimento non supervisionato per raggruppare i dati in cluster. Esplora il suo processo, le applicazioni e i confronti!

Il K-Means Clustering è un algoritmo ampiamente utilizzato nel campo dell'apprendimento non supervisionato. dell'apprendimento non supervisionato, progettato per suddividere un in sottogruppi distinti e non sovrapposti. Nel contesto più ampio del dell'apprendimento automatico (ML), questo metodo è essenziale per scoprire per scoprire schemi e strutture nascoste all'interno di dati non etichettati. L'algoritmo funziona organizzando i punti di dati in un numero $K$ di cluster, dove ogni punto appartiene al cluster con la media più vicina, che funge da prototipo del gruppo. gruppo. Questo approccio aiuta a minimizzare la varianza all'interno di ogni cluster, assicurando che i punti di dati nello stesso gruppo siano il più possibile simili, pur mantenendo distinti i diversi gruppi.

Come funziona l'algoritmo

Il processo di K-Means è iterativo e inizia con la selezione di $K$ centroidi iniziali, che fungono da punti centrali per i cluster. punti centrali per i cluster. Questi centroidi possono essere scelti in modo casuale o tramite tecniche di inizializzazione più intelligenti, come ad esempio inizializzazione k-means++ per migliorare la velocità di convergenza. L'algoritmo procede poi attraverso due fasi primarie fino a quando i risultati si stabilizzano:

  1. Assegnazione: Ogni punto dei dati di addestramento dati di addestramento viene assegnato al centroide più vicino basato su una metrica di distanza, in genere la distanza distanza euclidea. Questo passaggio raggruppa effettivamente i dati in $K$ cluster.
  2. Aggiornamento: il nuovo centroide per ogni cluster viene calcolato calcolando la media di tutti i punti dati assegnati a quello specifico cluster. assegnati a quel cluster specifico.

Questo ciclo si ripete fino a quando i centroidi non si spostano più in modo significativo, indicando che l'algoritmo ha convergenza. La determinazione del numero ottimale di cluster è una parte critica del processo, spesso ottenuta utilizzando tecniche come il metodo del metodo del gomito o analizzando il punteggio Silhouette per misurare la distanza di separazione tra i cluster risultanti.

Applicazioni del mondo reale nell'IA

Il clustering K-Means è versatile e trova utilità in vari settori per l'estrazione e l'analisi dei dati. attività di data mining e di analisi.

  • Segmentazione dei clienti: Le aziende utilizzano il clustering per raggruppare i clienti in base al comportamento di acquisto comportamento d'acquisto, sui dati demografici o sulla cronologia di navigazione. Identificando gruppi distinti, le aziende possono adattare le strategie di marketing. strategie di marketing, analogamente a come l 'IA nel settore della vendita al dettaglio migliora il la gestione dell'inventario e il targeting dei clienti.
  • Compressione di immagini: Nel campo della computer vision (CV), K-Means viene utilizzato per la quantizzazione dei colori. Questa tecnica riduce il numero di colori unici in un'immagine raggruppando i valori dei pixel, in modo efficace, eseguendo riduzione della dimensionalità, mantenendo l'integrità visiva dell'immagine.
  • Rilevamento delle anomalie: Apprendendo la struttura dei cluster di dati normali, i sistemi possono identificare gli outlier che si allontanano da qualsiasi centroide. Questo è utile per le applicazioni di sicurezza e rilevamento di anomalie nel traffico di rete.

K-Means nella storia del rilevamento di oggetti

Mentre i moderni rilevatori di oggetti come Ultralytics YOLO11 spesso utilizzano tecniche di regressione avanzate o teste prive di ancoraggio, K-Means ha svolto un ruolo fondamentale nell'evoluzione dei modelli di rilevamento. modelli di rilevamento. Le prime iterazioni, come YOLOv2 e YOLOv5, hanno utilizzato il clustering K-Means sulle dimensioni del bounding box del set di dati COCO per determinare i parametri ottimali. del datasetCOCO per determinare le caselle di ancoraggio ottimali. caselle di ancoraggio ottimali. Questi ancoraggi precalcolati hanno fornito Il modello ha avuto a disposizione priori migliori per la previsione delle forme degli oggetti, migliorando in modo significativo la stabilità dell'addestramento e il richiamo.

K-Means vs. K-Nearest Neighbors (KNN)

È comune confondere K-Means con K-Nearest Neighbors (KNN), ma le loro funzioni sono fondamentalmente diverse. scopi fondamentalmente diversi.

  • K-Means è un algoritmo non supervisionato utilizzato per il clustering. Non richiede non richiede dati etichettati e si concentra sulla ricerca della struttura intrinseca del set di dati.
  • KNN è un algoritmo di apprendimento supervisionato utilizzato per la classificazione e regressione delle immagini. Si basa su input etichettati per si basa su input etichettati per classify nuovi punti di dati in base alla classe maggioritaria dei loro vicini più prossimi.

Un altro concetto correlato è DBSCAN, che raggruppa in base alla densità piuttosto che alla distanza da un punto centrale. A differenza di K-Means, DBSCAN non richiede di specificare in anticipo il numero di il numero di cluster da specificare in anticipo e gestisce meglio gli outlier.

Esempio di codice: Quantizzazione del colore

Il seguente esempio Python mostra come utilizzare K-Means per raggruppare i colori dei pixel, una fase comune di preelaborazione dei dati nelle attività di visione. di preelaborazione dei dati nelle attività di visione.

import numpy as np
from sklearn.cluster import KMeans

# Simulate a small image (10x10 pixels) with 3 RGB channels
# In a real scenario, you would load an image using cv2.imread()
image_data = np.random.randint(0, 255, (10, 10, 3), dtype=np.uint8)
pixels = image_data.reshape(-1, 3)

# Apply K-Means to reduce the image to 3 dominant colors (clusters)
kmeans = KMeans(n_clusters=3, n_init="auto", random_state=42).fit(pixels)

# The cluster centers represent the dominant colors
print(f"Dominant RGB Colors:\n{kmeans.cluster_centers_}")

Unitevi alla comunità di Ultralytics

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

Iscriviti ora