Sei sulla pagina 1di 68

Corso di Laurea in Ingegneria Gestionale

CORSO di Business Data Analytics (BDA) – prima parte

Francesca Ieva francesca.ieva@polimi.it - MOX, Dipartimento di Matematica


Outline

• Il processo di apprendimento
• Apprendimento Supervisionato vs Non Supervisionato

• Clustering in a nutshell

• Algoritmi di Clustering
• K-means
• Hierarchical clustering

• Come valutare l’esito del clustering

• Take home messages


3
The learning process
The learning process
Marketing
Text Analysis
Segmentation
(sentiment) Recommendation
Churn Prediction
Image systems
Classification CLUSTERING
Fraud Detection
CLASSIFICAZION

Prediction Credit
Market
Default PATTERN
SUPERVISED UNSUPERVISED Basket
DISCOVERY Analysis
LEARNING LEARNING

Churn Analysis

Credit Scoring REGRESSION


DIMENSIONAL
Customer Life Time REDUCTION
Forecasting Value Vislualizzazione
Dati Complessi
Compressione
Dati
The learning process
K-Means
Support Vector
Machines Logistic Hierarchical
Naïve Bayes Regression Clustering
CLUSTERING

CLASSIFICATION DB-Scan

Decision Trees
PATTERN
SUPERVISED UNSUPERVISED
DISCOVERY
Ensemble Methods LEARNING LEARNING

Neural Networks
Association
REGRESSION PCA Rules Mining
DIMENSIONAL
REDUCTION
Linear Nonlinear
Regression Regression
Autoencoders
Supervised Learning

7
all'arrivo di un nuovo dato il sistema sarà in grado di dirci cosa è il nuovo elemento. viene data un'etichetta

Supervised learning
LABELS INPUT DATA TRAINING TESTING

Candy Candy!
Candy!

Cupcake?

Cupcake

Nuovi Dati
Unsupervised Learning

15
non viene definita un'etichetta. non c'è un giusto e uno sbagliato. posso usare il criterio candy e cupcake oppure dividere gli oggetti per il livello di glucosio

Unsupervised learning
DATA
Unsupervised learning

• Nella matrice dei dati non è presente una variabile risposta (variabile target) 𝑌𝑌
• Obiettivo primario: esplorazione del dataset ed estrazione di informazioni

Variabili: 𝑋𝑋1 … 𝑋𝑋𝑝𝑝

Matrice dei dati: 𝒙𝒙𝟏𝟏𝟏𝟏 … 𝒙𝒙𝟏𝟏𝟏𝟏


𝕏𝕏 = ⋮ ⋱ ⋮ ∈ ℝ𝒏𝒏×𝒑𝒑
𝒙𝒙𝒏𝒏𝒏𝒏 … 𝒙𝒙𝒏𝒏𝒏𝒏

 Classi di metodi:
• Riduzione dimensionale
• Clustering
What is clustering
sono più simili tra di loro di quanto lo siano con gli
elementi degli altri gruppi

In generale ci si riferisce
con il termine clustering
ad un raggruppamento
di oggetti tale per cui gli
oggetti in uno stesso
gruppo (cluster) siano
tra loro simili e al tempo
steso diversi dagli
oggetti appartenenti ad
altri gruppi
Apprendimento non supervisionato
identificare gruppi di utenti che consumano similmente nelle stesse fasce orarie.

 Esempio.
• Analisi dei consumi energetici nella città di Milano
n = num. utenti della rete
Per ogni utente: consumo di energia in diverse fasce orarie
p = numero di fasce orarie

• Obiettivo: identificare gruppi di utenti (righe del dataset) caratterizzati da consumi energetici
«simili» (e.g., casalinga/lavoratore, residenza/ufficio)
• Problema non supervisionato perché cerchiamo di «scoprire» caratteristiche del fenomeno a
partire dai dati
Basics idea of clustering
variabilità tra i diversi cluster sia massima. ottimo sarebbe se avessimo gruppi identici all'interno dei cluster

Inter-cluster
Intra-cluster distances are
distances are maximized
minimized
La nozione di Cluster può essere ambigua

How many clusters? Six Clusters

Two Clusters Four Clusters


non solo distanza fisica ma distanza tra le caratteristiche tra le nostre unità

La nozione di Cluster può essere ambigua

Simpson Girls
School
family Boys
employees
Le “vere” etichette non sono note
Il risultato del Clustering dipende dal conceto di similarità che si adotta.
Tipicamente essa viene espressa attraverso una distanza.
Tipi di Clustering

 Una delle principali distinzioni da fare è tra hierarchical e


partitional (a.k.a. flat) clustering

 Partitional Clustering algoritmi che servono per assegnare le osservazioni ad uno e unico gruppo

• A division data objects into subsets (clusters) such that each data
object is in exactly one subset

 Hierarchical clustering
• A set of nested clusters organized as a hierarchical tree
• hierarchical clustering may be:

- AGGLOMERATIVE partiamo da un cluster per ogni osservazione e poi agglomeriamo nello stesso gruppo quelle più simili.
- DIVISIVE finchè le osservazioni non apparterranno ad un unico gruppo contenente tutte le osservazioni. mi
interessano i passaggi intermedi in questo caso. quelli divisivi fanno il procedimento opposto; partono da un
unico gruppo e si dividono poi fino a singole osservazioni per gruppo.
Partitional (flat) Clustering

Original Points A Partitional


Clustering
Hierarchical Clustering
Altri tipi di clustering

 Exclusive (or non-overlapping) versus non-exclusive (or


overlapping)
• In non-exclusive clusterings, points may belong to multiple clusters.

 Fuzzy (or soft) versus non-fuzzy (or hard)


• In fuzzy clustering, a point belongs to every cluster with some weight
between 0 and 1
 Weights usually must sum to 1 (often interpreted as
probabilities)

 Partial versus complete


• In some cases, we only want to cluster some of the data
The Clustering process

Metrica / Distanza Algoritmo di Clustering

Serve a definire cosa rende un Lista di operazioni utili a


oggetto “simile a” (o dissimile da) un ottenere un raggruppamento.
altro. Si basa tipicamente sul
concetto di distanza distanza tra i cluster
Distanze

Given two p-dimensional vectors x=(x1, x2,…,xp) and y=(y1, y2,…,yp), the
distance between x and y may be computed in several ways:

o Euclidean distance
• squared
• standardized
o Manhattan distance p

o Chebychev distance
p
o Cosine similarity (Angle)
o Correlation distance
o Mahalanobis distance
o Minkowski distance
Distanze
Distanze

Manhattan Distance 𝑑𝑑𝑀𝑀 𝑥𝑥, 𝑦𝑦 = 𝑥𝑥1 − 𝑦𝑦1 + 𝑥𝑥2 − 𝑦𝑦2 + ⋯ + 𝑥𝑥𝑛𝑛 − 𝑦𝑦𝑛𝑛 = ∑𝑛𝑛𝑖𝑖=1 𝑥𝑥𝑖𝑖 − 𝑦𝑦𝑖𝑖
non distanza in linea d'aria ma il percorso minimo (google maps)

Correlation based distance 𝑑𝑑𝑅𝑅 (𝑥𝑥, 𝑦𝑦) = 1 − 𝑟𝑟𝑥𝑥𝑥𝑥 where quando rxy=1 la distanza è 0 (minima)
quando rxy=0 la distanza è 1 (massima)

𝑆𝑆𝑥𝑥,𝑦𝑦 ∑𝑖𝑖=1(𝑥𝑥𝑖𝑖 − 𝑥𝑥)(𝑦𝑦


̄ 𝑖𝑖 − 𝑦𝑦)
̄
𝑟𝑟𝑥𝑥𝑥𝑥 = =
𝑆𝑆𝑥𝑥 𝑆𝑆𝑦𝑦 ̄ 2 ∑𝑖𝑖=1(𝑦𝑦𝑖𝑖 − 𝑦𝑦)
∑𝑖𝑖=1(𝑥𝑥𝑖𝑖 − 𝑥𝑥) ̄ 2
Qual è la distanza giusta da usare?

La scelta della “giusta” metrica


è qualcosa che dipende
dall’applicazione.
La domanda giusta da porsi è

Che tipo di similarità ci interessa


valutare?
Credits and further useful material
http://www.cs.uoi.gr/~tsap/teaching/2012f-cs059/slides-en.html
https://web.stanford.edu/class/cs345a/slides/12-clustering.pdf

K-MEANS
K-medie

• Nel metodo K-medie, si vuole trovare una partizione delle


osservazioni in un numero K (dato) di gruppi
→ Ogni osservazione è assegnata a uno e un solo gruppo

 Esempio
n=150 osservazioni (simulate)
p=2
K-medie

• Nel metodo K-medie, si vuole trovare una partizione delle


osservazioni in un numero K (dato) di gruppi
→ Ogni osservazione è assegnata a uno e un solo gruppo

 Esempio
K-medie

 Approccio di tipo Partitional (flat) clustering


 Ogni cluster è associato ad un centroide (punto centrale)
 Ogni punto è assegnato al cluster con il centroide più
vicino
 Il numero di cluster, K, va specificato a priori
 Obiettivo dell’algoritmo è minimizzare la somma delle
distanze dei punti dai rispettivi centroidi
K-medie

• Chiamiamo 𝐶𝐶1 , … , 𝐶𝐶𝑘𝑘 gli insiemi degli indici delle osservazioni


in ciascun cluster, e assumiamo che 𝐶𝐶1 , … , 𝐶𝐶𝑘𝑘 siano una
partizione degli indici, cioè:
1. 𝐶𝐶1 ∪ 𝐶𝐶2 ∪ ⋯ ∪ 𝐶𝐶𝑘𝑘 = 1,2, … , 𝑛𝑛
(Ogni osservazione appartiene ad almeno un cluster)
2. 𝐶𝐶𝑖𝑖 ∩ 𝐶𝐶𝑗𝑗 = ∅
(Le osservazioni non sono assegnate a più di un cluster)

• Per esempio, se la i-esima osservazione appartiene al k-


esimo cluster, allora 𝑖𝑖 ∈ 𝐶𝐶𝑘𝑘
K-medie come problema di ottimo
misurare la distanza di un punto dai centri dei k gruppi ed assegna il punto al gruppo dove questa distanza è minore

 Problem: Given a set X of n points in a d-dimensional


space and an integer K, group the points into K clusters C=
{C1, C2,…,Ck} such that
𝑘𝑘

𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 𝐶𝐶 = � � 𝑑𝑑𝑖𝑖𝑖𝑖𝑖𝑖 2 (𝑥𝑥, 𝑐𝑐𝑐𝑐)


𝑖𝑖=1 𝑥𝑥∈𝐶𝐶𝑖𝑖

is minimized, where ci is the centroid of the points in


cluster Ci
K-medie come problema di ottimo
 Idea: Un buon clustering è tale che la variabilità nei cluster è la più piccola possibile

Variabilità nel cluster (within-cluster variability)


È una misura 𝑊𝑊 𝐶𝐶𝑘𝑘 di quanto le osservazioni nel cluster 𝐶𝐶𝑘𝑘 sono tra loro differenti
Esempio.
1 1 2
𝑊𝑊 𝐶𝐶𝑘𝑘 = � 𝑑𝑑2 𝒙𝒙𝑖𝑖⋅ , 𝒙𝒙𝑖𝑖 ′ ⋅ = � � 𝑥𝑥𝑖𝑖𝑖𝑖 − 𝑥𝑥𝑖𝑖 ′ 𝑗𝑗
|𝐶𝐶𝑘𝑘 | ′ |𝐶𝐶𝑘𝑘 | ′
𝑖𝑖,𝑖𝑖 ∈𝐶𝐶𝑘𝑘 𝑖𝑖,𝑖𝑖 ∈𝐶𝐶𝑘𝑘 𝑗𝑗

Criterio di ottimo
Identificare 𝐶𝐶1 , … , 𝐶𝐶𝑘𝑘 che realizzano il minimo della variabilità totale nei cluster
𝐾𝐾

min � 𝑊𝑊(𝐶𝐶𝑘𝑘 )
𝐶𝐶1 ,…,𝐶𝐶𝑘𝑘
𝑘𝑘=1
K-medie: ALGORITMO

1. Inizializzazione.

Assegna casualmente un numero da 1 a K ad ogni osservazione,


ottenendo 𝐶𝐶1 , … , 𝐶𝐶𝑘𝑘

calcolo centroide. calcolo distanza dei punti dai centroidi e riassegno i punti ai gruppi la cui
2. Iterazione. distanza è minima. ricalcolo i centroidi e ripeto il procedimento finchè non avrò più spostamenti

Ripeti fino a convergenza


a. Identificazione:
Individua il centroide di ogni cluster come la media campionaria nel cluster
1
�𝑘𝑘 =
𝒙𝒙 � 𝒙𝒙𝑖𝑖⋅
𝐶𝐶𝑘𝑘
𝑖𝑖∈𝐶𝐶𝑘𝑘
b. Assegnazione:
Assegna il dato 𝒙𝒙𝑖𝑖⋅ al cluster 𝐶𝐶𝑘𝑘 il cui centroide è il più vicino
K-medie: ALGORITMO

Dataset: 𝑋𝑋 = 𝑥𝑥̄ 1 , 𝑥𝑥̄ 2 , ⋯ , 𝑥𝑥̄ 𝑛𝑛

Clusters: 𝐶𝐶1 , 𝐶𝐶2 , ⋯ 𝐶𝐶𝑘𝑘

Centroids : 𝑉𝑉 = 𝑣𝑣̄ 1 , 𝑣𝑣̄ 2 , ⋯ , 𝑣𝑣̄ 𝑘𝑘

Partition matrix: Γ = 𝛾𝛾𝑖𝑖𝑖𝑖

1 if 𝑥𝑥𝑗𝑗̄ ∈ 𝐶𝐶𝑖𝑖
𝛾𝛾𝑖𝑖𝑖𝑖 = �
0 otherwise Step 0.
Define the number of cluster k
K-medie: ALGORITMO

Dataset: 𝑋𝑋 = 𝑥𝑥̄ 1 , 𝑥𝑥̄ 2 , ⋯ , 𝑥𝑥̄ 𝑛𝑛

Clusters: 𝐶𝐶1 , 𝐶𝐶2 , ⋯ 𝐶𝐶𝑘𝑘

Centroids : 𝑉𝑉 = 𝑣𝑣̄ 1 , 𝑣𝑣̄ 2 , ⋯ , 𝑣𝑣̄ 𝑘𝑘

Partition matrix: Γ = 𝛾𝛾𝑖𝑖𝑖𝑖

1 if 𝑥𝑥𝑗𝑗̄ ∈ 𝐶𝐶𝑖𝑖
𝛾𝛾𝑖𝑖𝑖𝑖 = �
0 otherwise Step 1
Random assignment of each observation
to one of the K cluster and computation of
centroid (mean point) of each cluster.
K-medie: ALGORITMO

Dataset: 𝑋𝑋 = 𝑥𝑥̄ 1 , 𝑥𝑥̄ 2 , ⋯ , 𝑥𝑥̄ 𝑛𝑛

Clusters: 𝐶𝐶1 , 𝐶𝐶2 , ⋯ 𝐶𝐶𝑘𝑘

Centroids : 𝑉𝑉 = 𝑣𝑣̄ 1 , 𝑣𝑣̄ 2 , ⋯ , 𝑣𝑣̄ 𝑘𝑘

Partition matrix: Γ = 𝛾𝛾𝑖𝑖𝑖𝑖

1 if 𝑥𝑥𝑗𝑗̄ ∈ 𝐶𝐶𝑖𝑖
𝛾𝛾𝑖𝑖𝑖𝑖 = �
0 otherwise Step 2
Assign each observation to the cluster
whose centroid is closer and update the
partition matrix
K-medie: ALGORITMO

Dataset: 𝑋𝑋 = 𝑥𝑥̄ 1 , 𝑥𝑥̄ 2 , ⋯ , 𝑥𝑥̄ 𝑛𝑛

Clusters: 𝐶𝐶1 , 𝐶𝐶2 , ⋯ 𝐶𝐶𝑘𝑘

Centroids : 𝑉𝑉 = 𝑣𝑣̄ 1 , 𝑣𝑣̄ 2 , ⋯ , 𝑣𝑣̄ 𝑘𝑘

Partition matrix: Γ = 𝛾𝛾𝑖𝑖𝑖𝑖

1 if 𝑥𝑥𝑗𝑗̄ ∈ 𝐶𝐶𝑖𝑖
𝛾𝛾𝑖𝑖𝑖𝑖 = �
0 otherwise Step 3
Compute centroids again. Then repeat
Step 2 until no point changes the cluster
of belonging or until other stopping criteria
are satisfied.
K-medie: ALGORITMO
assegnando inizialmente in modo
random le osservazioni ai gruppi
posso ottenere diversi risultati.
PROBLEMA DI INIZIALIZZAZIONE

Risultati dell’algoritmo K-medie, con K=3, per differenti configurazioni iniziali.


Nota: l’instabilità nell’algoritmo può dipendere da K
K-medie: ALGORITMO

Nota:
label switching!
questi quattro casi sono diversi ma
solo perchè ho chiamato i gruppi
in modo diverso (in questo caso con
colori diversi)

Risultati dell’algoritmo K-medie, con K=3, per differenti configurazioni iniziali.


Nota: l’instabilità nell’algoritmo può dipendere da K
Algoritmo K-medie

• Si dimostra che, se la varianza within-cluster è definita in termini di


distanza Euclidea, l’algoritmo converge.

• Non è però detto che l’algoritmo converga a un ottimo globale


(potrebbe trovare un ottimo locale) => La soluzione trovata
dall’algoritmo dipende dall’inizializzazione.

• È quindi importante (necessario) eseguire l’algoritmo più volte a partire


da diverse configurazioni iniziali
• Select original set of points by methods at random
• Select original set of points other than at random: e.g., pick the most
distant (from each other) points as cluster centers --> K-means++ algorithm

• Metodo (e algoritmo) semplice, che funziona piuttosto bene nella


pratica.
L’importanza della scelta dei centroidi

Iteration 1 Iteration 2 Iteration 3


3 3 3

2.5 2.5 2.5

2 2 2

1.5 1.5 1.5


y

y
1 1 1

0.5 0.5 0.5

0 0 0

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2
x x x

Iteration 4 Iteration 5 Iteration 6


3 3 3

2.5 2.5 2.5

2 2 2

1.5 1.5 1.5


y

y
1 1 1

0.5 0.5 0.5

0 0 0

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2
x x x
Limiti del metodo K-medie

 Il numero di cluster (K) va scelto a


priori.

 Problemi con cluster di diversa


• Dimensione
• Densità

 K-medie non fornisce buoni risultati


in tutti quei casi in cui i cluster non
hanno forma globulare.
In questo caso la soluzione migliore sarebbe un cluster per il gruppo nel mezzo
e uno per i punti intorno
Limiti del metodo K-medie
il gruppo di destra ha un outlier e questo sposta il
centroide verso destra spostando alcuni punti nel

 La distanza Euclidea rende gruppo sbaglaito

l’algoritmo particolarmente K-MEANS


sensibile agli outlier.

 Use Medoids (median points)


instead of centroids

-> K-MEDOIDS Algorithm

 A volte il problema non è


l’algoritmo, ma lo spazio utilizzato
per rappresentare i dati!

-> SVM or MDS


K-MEDOIDS
Possibili alternative

 K-medoidi: Definizione del problema analoga a k-medie, ma con


centroidi definiti come uno dei punti dei cluster (medoidi).

 K-centri: Definizione del problema simile a k-medie, ma l’obiettivo


è minimizzare il diametro dei cluster (distanza massima tra 2
punti del cluster).
Credits and further useful material
http://www.cs.uoi.gr/~tsap/teaching/2012f-cs059/slides-en.html
https://web.stanford.edu/class/cs345a/slides/12-clustering.pdf

CLUSTERING
GERARCHICO
Clustering Gerarchico

 Two main types of hierarchical clustering


• Agglomerative:
 Start with the points as individual clusters
 At each step, merge the closest pair of clusters until only one cluster (or k clusters)
left

• Divisive:
 Start with one, all-inclusive cluster
 At each step, split a cluster until each cluster contains a point (or there are k
clusters)

 Traditional hierarchical algorithms use a similarity or distance matrix


• Merge or split one cluster at a time
Clustering Gerarchico

Il Clustering Gerarchico fa uso di una Matrice Distanza (Distance Matrix) per implementare i
raggruppamenti.
La Distance Matrix contiene la distanza tra ogni coppia di oservazioni.
Il Clustering Gerarchico non richiede la definizione a priori di un numero di gruppi, ma necessita
di un criterio di stop.
Step 0 Step 1 Step 2 Step 3 Step 4
Agglomerative
a ab
b abcde
c cde
d de
e
Divisive
Step 4 Step 3 Step 2 Step 1 Step 0
Clustering Gerarchico Agglomerativo

ALGORITHM

1) Compute the proximity matrix


(i.e., the distances between any couple of
observations)

2) Let each data point be a cluster


3) Repeat
1) Merge the two closest clusters
2) Update the proximity matrix using the new
clusters

4) Repeat until only a single cluster remains


Clustering Gerarchico Agglomerativo

ALGORITHM

1) Compute the proximity matrix


(i.e., the distances between any couple of
observations)
Step 3.1 depends on the
Linkage Method,
2) Let each data point be a cluster
(i.e., the method adopted
3) Repeat
for merging clusters)
1) Merge the two closest clusters
defining the proximity
2) Update the proximity matrix using the new
among clusters
clusters

4) Repeat until only a single cluster remains


Clustering Gerarchico: metodi di linkage

Single Link: distanza tra i due elementi più vicini dei due cluster. se distanza min è grande i due cluster
sono lontani

The distance between two clusters is given by the distance of their


closest points.
(a.k.a. “neighbor joining”)

Average Link:
The distance between two clusters is given by the distance of their
centroids. (mean points, not belonging to the original dataset)

Complete Link: distanza tra i due punti più lontani dei due cluster. se distanza max è piccola allora i due cluster
sono vicini
The distance between two clusters is given by the distance of their
points most far away.
Clustering Gerarchico: metodi di linkage

 Single link
• Can handle non-elliptical shapes
• Sensitive to noise and outliers

 Complete link
• Less susceptible to noise and outliers
• Tends to break large clusters
• Biased towards globular clusters
Clustering Gerarchico: Problems and Limitations
nel k-medie scegliamo k e quello rimane. in questo caso proviamo tantissimi k

 Maggiore complessità computazionale.


 Una volta che la decisione di combinare due cluster è presa, non si può
tornare indietro.
 Non vi è ottimizzazione diretta di una funzione obiettivo.

 A seconda della scelta del linkage, il risultato che si ottiene può essere
radicalmente diverso
Esempio: marketing segmentation

ottengo tante partizioni possibili. quelle


più forti sono quelle che hanno un
DISTANCE
ramo lungo
Esempio: simulazione

 Esempio (simulato, n=45, p=2; distanza Euclidea e complete linkage)

in questo caso due gruppi in questo caso tre gruppi

 Come scegliere K?
taglio dove i rami sono più lunghi

=> Si cercano aree di «stabilità» nel dendrogramma


CLUSTERING VALIDITY
Valutazione della bontà del clustering

Per verificare la bontà di un clustering, è possibile utilizzare degli


inidici numerici, che sono tipicamente raggruppati nelle seuenti tre
famiglie:

– Metriche Esterne: qualora fosse fornita una qualche etichetta di


classe esterna.
• E.g., entropy, precision, recall
– Metriche Interne: utilizzate per valutare il clustering senza
riferimento alcuno ad informazioni esterne.
• E.g., Sum of Squared Error (SSE)
– Metriche Relative: utilizzate per confrontare tra loro diversi
clustering.
• E.g., SSE or entropy
Metriche esterne

• 𝑛𝑛 = number of points
• 𝑚𝑚𝑖𝑖 = points in cluster i
• 𝑐𝑐𝑗𝑗 = points in class j
• 𝑚𝑚𝑖𝑖𝑗𝑗 = points in cluster i coming from class j
• 𝑝𝑝𝑖𝑖𝑖𝑖 = 𝑚𝑚𝑖𝑖𝑖𝑖 /𝑚𝑚𝑖𝑖 = prob of element from class j in cluster i

• Entropy: Class 1 Class 2 Class 3


– Of a cluster i: 𝑒𝑒𝑖𝑖 = − ∑𝐿𝐿𝑗𝑗=1 𝑝𝑝𝑖𝑖𝑖𝑖 log 𝑝𝑝𝑖𝑖𝑖𝑖
• Highest when uniform, zero when single class Cluster 1 𝑚𝑚11 𝑚𝑚12 𝑚𝑚13 𝑚𝑚1
𝑚𝑚𝑖𝑖
– Of a clustering: 𝑒𝑒 = ∑𝐾𝐾
𝑖𝑖=1 𝑛𝑛 𝑒𝑒𝑖𝑖 Cluster 2 𝑚𝑚21 𝑚𝑚22 𝑚𝑚23 𝑚𝑚2
• Purity:
– Of a cluster i: 𝑝𝑝𝑖𝑖 = max 𝑝𝑝𝑖𝑖𝑖𝑖 Cluster 3 𝑚𝑚31 𝑚𝑚32 𝑚𝑚33 𝑚𝑚3
𝑗𝑗
𝑚𝑚𝑖𝑖
– Of a clustering: 𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝 = ∑𝐾𝐾 𝑝𝑝 𝑐𝑐1 𝑐𝑐2 𝑐𝑐3 𝑛𝑛
𝑖𝑖=1 𝑛𝑛 𝑖𝑖
Metriche esterne

• Precision:
– Of cluster i with respect to class j: 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 𝑖𝑖, 𝑗𝑗 = 𝑝𝑝𝑖𝑖𝑖𝑖
• For the precision of a clustering you can take the maximum
• Recall:
𝑚𝑚𝑖𝑖𝑖𝑖
– Of cluster i with respect to class j: 𝑅𝑅𝑅𝑅𝑅𝑅 𝑖𝑖, 𝑗𝑗 =
𝑐𝑐𝑗𝑗
• For the recall of a clustering you can take the maximum
• F-measure:
– Harmonic Mean of Precision and Recall:
2 ∗ 𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 𝑖𝑖, 𝑗𝑗 ∗ 𝑅𝑅𝑅𝑅𝑅𝑅(𝑖𝑖, 𝑗𝑗)
𝐹𝐹 𝑖𝑖, 𝑗𝑗 =
𝑃𝑃𝑃𝑃𝑃𝑃𝑃𝑃 𝑖𝑖, 𝑗𝑗 + 𝑅𝑅𝑅𝑅𝑅𝑅(𝑖𝑖, 𝑗𝑗)
Metriche interne

SSE – Sum of Squared Errors & WCSS – Within Clusters Sum of Squares
SSE = Somma dei quadrati delle distanze tra tutte le osservazioni di un cluster e il
corrispondente medoide.
un cluster sarà buono se questo valore sarà basso.
Metriche interne

Come scegliere il “giusto” numero di cluster?

• Identificare il “gomito” della curva 10

9
che rappresenta la metrica interna 8

al variare del numero di cluster. 7

SSE
5

0
2 5 10 15 20 25 30
K

in questo caso sceglierò k=10 perchè oltre 10 il SSE non diminuisce più tanto
Metriche interne

Indice di SILHOUETTE

Single Cluster
Silhouette
Clustering
Silhouette
Metriche interne
Metriche interne

• Cluster Cohesion: Misura quanto “simili” tra loro siano gli elementi di un cluster.
• Cluster Separation: Misura quanto distinti o ben separati siano gli elementi di un
cluster da quelli degli altri.

• Esempio:
– Coesione misurata dal within cluster sum of squares
WSS = ∑ ∑ (x − c )
i x∈Ci
i
2

– Separazione misurata dal between cluster sum of squares

BSS = ∑ mi (c − ci ) 2
i
dove mi è la dimensione del cluster i-esimo.
Metriche interne - caveat

 Le metriche interne hanno il problema che l’algoritmo di clustering non è


impostato con l’idea di ottimizzare rispetto ad esse, pertanto l’esito del clustering
potrebbe non risultare ottimale se valutato rispetto ad esse.

 Nota: volendo si può costruire un algoritmo di clustering che usa una metrica
interna come funzione da ottimizzare.
Final Comments on Cluster Validity

“The validation of clustering structures is the most difficult


and frustrating part of cluster analysis.

Without a strong effort in this direction, cluster analysis will


remain a black art accessible only to those true believers
who have experience and great courage.”

Algorithms for Clustering Data, Jain and Dubes


software
R packages Scikit-Learn for Clustering
https://scikit-
https://www.rdocumentation.org/packages/arules/versions/1.6-4
learn.org/stable/modules/clustering.html
Step-by-step guide:
https://www.statmethods.net/advstats/cluster.html
Useful functions:
clusteR package Cluster.Kmeans
https://cran.r-project.org/web/packages/cluster/index.html Cluster.AgglomerativeClustering
Step-by-step guide:
https://www.r-bloggers.com/clustering-using-the-clusterr-
package/
factoextra & factoMineR package
(Visualization)
• https://cran.r-
project.org/web/packages/factoextra/README.html
• https://rpkgs.datanovia.com/factoextra/reference/fviz_cluster.
html
Final remark: data quality…
… and team working

Potrebbero piacerti anche