Il coefficiente di silhouette

Il coefficiente di silhouette è una misura della qualità di una partizione di un insieme di dati nella classificazione automatica.

La tecnica fornisce una rappresentazione grafica sintetica di quanto bene ogni oggetto è stato classificato.

Il suo valore varia da -1 a +1, dove un valore alto indica che l’oggetto è ben associato al proprio cluster e scarsamente associato ai cluster vicini. Se la maggior parte degli oggetti ha un valore alto, allora la configurazione del clustering è appropriata. Se molti punti hanno un valore basso o negativo, allora la configurazione del clustering potrebbe avere troppi o troppo pochi cluster.

Il coefficiente di silhouette può essere calcolato con qualsiasi metrica di distanza, come la distanza euclidea o la distanza di Manhattan. Per calcolare il coefficiente di silhouette per un punto i appartenente al cluster C_I, si usano le seguenti formule:

  • a(i) = (1 / |C_I| – 1) * somma di d(i,j) per tutti i j in C_I diversi da i, dove d(i,j) è la distanza tra i e j, e |C_I| è il numero di punti nel cluster C_I. Questo è il valore medio della distanza tra i e tutti gli altri punti nello stesso cluster, e rappresenta la coesione del cluster.
  • b(i) = minimo di (1 / |C_J|) * somma di d(i,j) per tutti i j in C_J, dove C_J è un cluster diverso da C_I. Questo è il valore medio della distanza tra i e tutti i punti nel cluster più vicino a i, e rappresenta la separazione tra i cluster.
  • s(i) = (b(i) – a(i)) / max(a(i), b(i)). Questo è il coefficiente di silhouette per il punto i, che misura quanto i è simile al proprio cluster rispetto ad altri cluster. Un valore vicino a +1 indica che i è ben assegnato al suo cluster, mentre un valore vicino a -1 indica che i potrebbe essere assegnato a un altro cluster.

Il punteggio di silhouette per l’intero insieme di dati è la media dei coefficienti di silhouette per tutti i punti. Un punteggio alto indica che i dati sono stati partizionati in modo coerente e distintivo.

Il coefficiente di silhouette può essere usato per valutare la qualità di diversi algoritmi di clustering, come k-means o k-medoids. Può anche essere usato per scegliere il numero ottimale di cluster per un dato insieme di dati, confrontando i punteggi di silhouette per diversi valori di k. In generale, si sceglie il valore di k che massimizza il punteggio di silhouette.

Un esempio di applicazione del coefficiente di silhouette nel clustering è l’analisi dei dati provenienti da sensori o dispositivi IoT. Questi dati possono avere diverse dimensioni e caratteristiche, e possono essere raggruppati in base alla loro somiglianza o differenza. Il coefficiente di silhouette può aiutare a determinare il numero e la forma dei cluster che meglio rappresentano i dati e le loro relazioni.

Seguendo questo link potete trovare un’applicazione del coefficiente silhouette in KNIME Analytics Platform.

Buono studio.

"KNIME Analytics Platform per Data Scientists, corso base o intermedio" su Udemy a 12.99€