Video: K Means Clustering Algorithm | K Means Example in Python | Machine Learning Algorithms | Edureka 2024
K è un input dell'algoritmo per l'analisi predittiva; indica il numero di raggruppamenti che l'algoritmo deve estrarre da un set di dati, espresso algebricamente come k . Un algoritmo K-means divide un determinato set di dati in cluster k . L'algoritmo esegue le seguenti operazioni:
-
Seleziona k elementi casuali dal set di dati e li contrassegna come rappresentanti del cluster.
-
Associare ciascun elemento rimanente nel set di dati al rappresentante del cluster più vicino, utilizzando una distanza euclidea calcolata da una funzione di similarità.
-
Ricalcola i rappresentanti dei nuovi cluster.
-
Ripeti i passaggi 2 e 3 finché i cluster non cambiano.
Un rappresentante di un cluster è la media matematica (media) di tutti gli elementi che appartengono allo stesso cluster. Questo rappresentante è anche chiamato centroide del cluster . Ad esempio, considera tre elementi del set di dati Frutti dove
Il tipo 1 corrisponde alle banane.
Il tipo 2 corrisponde alle mele.
Il colore 2 corrisponde al giallo.
Il colore 3 corrisponde al verde.
Supponendo che questi articoli siano assegnati allo stesso cluster, viene calcolato il centroide di questi tre elementi.
Elemento | Caratteristica # 1 Tipo | Caratteristica # 2 Colore | Caratteristica # 3 Peso (once) |
---|---|---|---|
1 | 1 | 2 | 5. 33 |
2 | 2 | 3 | 9. 33 |
3 | 1 | 2 | 2. 1 |
Ecco i calcoli di un cluster rappresentativo di tre elementi che appartengono allo stesso cluster. Il rappresentante del cluster è un vettore di tre attributi. I suoi attributi sono la media degli attributi degli elementi nel cluster in questione.
Elemento | Caratteristica # 1 Tipo | Caratteristica # 2 Colore | Caratteristica # 3 Peso (once) |
---|---|---|---|
1 | 1 | 2 | 5. 33 |
2 | 2 | 3 | 9. 33 |
3 | 1 | 2 | 2. 1 |
Rappresentante del cluster (Vettore Centroid) | (1 + 2 + 1) / 3 = 1. 33 | (2 + 3 + 2) / 3 = 2. 33 | (5 33 + 9. 33 +32. 1) / 3 = 3 |
Il set di dati mostrato successivamente è composto da sette valutazioni dei clienti di due prodotti, A e B. La classifica rappresenta il numero di punti (tra 0 e 10) che ciascun cliente ha assegnato a un prodotto: più punti vengono assegnati, più alto è il punteggio del prodotto.
Utilizzando un algoritmo K-means e assumendo che k è uguale a 2, il set di dati verrà suddiviso in due gruppi. Il resto della procedura ha il seguente aspetto:
-
Scegli due elementi casuali dal set di dati e etichettali come rappresentanti del cluster.
Quanto segue mostra il passo iniziale della selezione dei centroidi casuali da cui inizia il processo di clustering di K-means.I centroidi iniziali vengono selezionati in modo casuale dai dati che si sta per analizzare. In questo caso, stai cercando due cluster, quindi due elementi di dati vengono selezionati casualmente: Clienti 1 e 5.
Inizialmente, il processo di clustering crea due cluster attorno a quei due rappresentanti di cluster iniziali (selezionati a caso). Quindi i rappresentanti del cluster vengono ricalcolati; il calcolo si basa sugli elementi di ciascun cluster.
ID cliente Valutazioni cliente del prodotto A Valutazioni cliente del prodotto B 1 2 2 2 3 4 3 < 6 8 4 7 10 5 10 14 6 9 10 7 7 9 Ispeziona ogni altro articolo (cliente) e assegnalo al rappresentante del cluster a cui è più simile. -
Usa la
Distanza euclidea per calcolare quanto un oggetto è simile a un gruppo di elementi: Somiglianza tra elemento I e Cluster X = sqrt {{{sinistra ({{f_1} - {x_1 }} destra)} ^ 2} + {{sinistra ({{f_2} - {x_2}} destra)} ^ 2} + cdots + {{sinistra ({{f_n} - {x_n}} destra)} ^ 2} }
I valori {f_1},; {f_2},; ldot; {f_n} sono i valori numerici delle funzioni che descrivono l'oggetto in questione. I valori {x_1},; {x_2},; ldot; {x_n} sono le caratteristiche (valori medi) del rappresentante del cluster (centroide), assumendo che ciascuna voce abbia
n caratteristiche. Ad esempio, prendere in considerazione la voce Cliente 2 (3, 4): la valutazione del cliente per il Prodotto A era 3 e la valutazione per il Prodotto B era 4. La funzione di rappresentante del cluster è (2, 2). La somiglianza tra Cliente 2 e Cluster 1 è calcolata come segue:
Somiglianza tra l'Articolo 2 e il Cluster 1 = sqrt {{{left ({3 - 2} right)} ^ 2} + {{left ({4 - 2 } destra)} ^ 2}} = 2. 23
Ecco come si presenta lo stesso processo con Cluster 2:
Somiglianza tra l'articolo 2 e il Cluster 2 = sqrt {{{left ({3 - 10} right) } ^ 2} + {{sinistra ({4 - 14} destra)} ^ 2}} = 12. 20
Confrontando questi risultati, si assegna l'Articolo 2 (ovvero, Cliente 2) al Cluster 1 perché i numeri dicono L'elemento 2 è più simile al Cluster 1.
Applica la stessa analisi di similarità a tutti gli altri elementi del set di dati.
-
Ogni volta che un nuovo membro si unisce a un cluster, è necessario ricalcolare il rappresentante del cluster.
Rappresenta i risultati della prima iterazione dell'algoritmo K-mean. Nota che
k è uguale a 2, quindi stai cercando due cluster, che dividono un gruppo di clienti in due gruppi significativi. Ogni cliente viene analizzato separatamente e assegnato a uno dei cluster sulla base della somiglianza del cliente con ciascuno dei rappresentanti del cluster corrente. Ripeti il set di dati, passando attraverso ogni elemento; calcolare la somiglianza tra ciascun elemento e il suo attuale rappresentante del cluster.
-
Si noti che il Cliente 3 è passato dal Cluster 1 al Cluster 2. Ciò è dovuto al fatto che la distanza del Cliente 3 rispetto al cluster Cluster 2 è più vicina rispetto al cluster rappresentativo del Cluster 1.
Rappresentante del cluster (Vettore Centro) < Cluster 1
ID cliente n. 1 (2, 2) Cluster 2 ID cliente n. 5 (10, 14) Iterazione n. 1 Cluster cliente 1 Cluster cliente 2 Cliente da esaminare ID cliente appartenenti al Cluster 1 Rappresentante cluster ID cliente appartenenti al Cluster 1 Rappresentante cluster 1 (2, 2) > 5 (10, 14) 2 1, 2 (2.4, 3) 5 (10, 14) 3 1, 2, 3 (3, 6, 4 6) 5 (10, 14) 4 1, 2, 3 (3, 6, 4 6) 4, 5 (8, 4, 12) 6 1, 2, 3 (3, 6, 4 6) 4, 5, 6 (8, 6, 11 4) 7 1, 2, 3 > (3, 6, 4 6) 4, 5, 6, 7 (8, 2, 10. 8) Ecco una seconda iterazione dell'algoritmo K-means sui dati del cliente. Ogni cliente viene nuovamente analizzato. Il Cliente 2 viene assegnato al Cluster 1 perché il Cliente 2 è più vicino al rappresentante del Cluster 1 rispetto al Cluster 2. Lo stesso scenario si applica al Cliente 4. Si noti che un rappresentante del cluster viene ricalcolato ogni volta che un nuovo membro viene assegnato a un cluster. Iteration # 2 Customer Cluster 1 Customer Cluster 2
Cliente da esaminare
ID cliente appartenenti al Cluster 1 | Rappresentante del cluster | ID cliente appartenenti al Cluster 2 > Rappresentante del cluster | ||
---|---|---|---|---|
1 | 1 | (3, 6, 4 6) | 5 | (8 2, 10 8) |
2 | 1, 2 < (5, 2, 3) | 5 | (8 2, 10 8) | 3 |
1, 2 | (5, 2, 3) | 5, 3 | (7, 8, 10. 2) | 4 |
1, 2 | (5, 2, 3) | 4, 5. 3 | (7, 8, 10 2) | 6 |
1, 2 | (5, 2, 3) | 4, 5, 6. 3 | (7, 8, 10. 2) | 7 < 1, 2 |
(5, 2, 3) | 3, 4, 5, 6, 7 | (7, 8, 10. 2) |