• Non ci sono risultati.

Prima di procedere con l’addestramento dei classificatori si `e ritenuto utile cercare di capire, mediante cluster analisys, se di per s´e i dati contenessero al loro interno pattern nascosti o partizionamenti “naturali”. L’obiettivo iniziale era quello di trovare una partizione naturale dei dati nello spazio delle feature, basata sulla tipologia di equalizzazione applicata.

Alla fine dei test relativi alla cluster analysis, sono emerse due principali tendenze: - divisione dei campioni silenziosi in due cluster, uno contenente quelli

post-equalizzati CCIR e l’altro quelli post-post-equalizzati NAB;

- divisione dei campioni rumorosi in tre cluster, il primo contenente quel-li equaquel-lizzati in modo corretto (pre-enfasi e post-enfasi entrambe NAB o CCIR), il secondo quelli post-equalizzati con pre-enfasi NAB e post-enfasi CCIR, il terzo quelli post-equalizzati con pre-enfasi CCIR e post-enfasi NAB.

Le tendenze si sono rilevate lievemente pi`u “marcate” per i campioni registrati

e riprodotti a 15 ips. Per ulteriori dettagli sui risultati della cluster analysis, si rimanda al Capitolo 4.

Nei prossimi due paragrafi verr`a descritta l’impostazione del codice MATLAB per la cluster analysis.

3.4.1 Hierarchical Clustering

I passi essenziali dell’algoritmo utilizzato per e↵ettuare hierarchical clustering sono elencati in seguito.

1 Importazione delle matrici contenenti, in ogni riga, le feature di un cam-pione audio. Tali matrici sono state calcolate in precedenza e salvate in un apposito file con estensione .mat.

2 Scelta di una metrica di distanza, tra i preset della funzione pdlist del Statistics and Machine Learning toolbox di MATLAB. Le scelte possibili sono [9]:

- euclidean, distanza Euclidea;

- squaredeuclidean, distanza Euclidea Quadrata; - seuclidean, distanza Euclidea Standardizzata; - cityblock, metrica City block ;

- minkowski, distanza di Minkowski, con esponente pari a 2; - chebychev, distanza di Chebychev ;

- cosine, uno meno il coseno dell’angolo compreso tra i punti campione; - correlation, uno meno la correlazione dei punti campione;

- spearman, uno meno la correlazione per ranghi di Spearman delle osservazioni;

- hamming, distanza di Hamming;

- jaccard, uno meno il coefficiente di Jaccard.

3 Scelta di un metodo di linkage, tra i preset della funzione linkage del Stati-stics and Machine Learning toolbox di MATLAB, per calcolare la distanza tra i cluster. Le scelte possibili sono [9]:

- average, distanza media non pesata (UPGMA);

- centroid, distanza tra i centroidi (UPGMC), appropriato solo per di-stanza Euclidea.

- complete, distanza maggiore;

- median, distanza pesata del centro di massa (WPGMC), appropriato solo per distanza Euclidea;

- single, distanza minore;

- ward, varianza minima, appropriato solo per distanza Euclidea; - weighted, distanza media pesata (WPGMA), appropriato solo per

di-stanza Euclidea.

4 Calcolo della distanza per ogni coppia di oggetti del dataset di input utiliz-zando la funzione pdlist, secondo la metrica scelta al passo 2.

5 Calcola della distanza tra i cluster utilizzando la funzione linkage, secondo la metrica di scelta al passo 3.

6 Creazione del cluster utilizzando la funzione cluster del Statistics and Ma-chine Learning toolbox di MATLAB, fissando a 4 il numero massimo di cluster.

7 Calcolo del coefficiente di correlazione cofenetica del cluster costruito al pas-so 6, utilizzando la funzione cophenet del Statistics and Machine Learning toolbox di MATLAB, per valutare la qualit`a del cluster.

8 Dato che la classe di appartenenza di ciascun campione `e nota, calcolo di quanti campioni per tipologia di equalizzazione sono stati inseriti in ciascun cluster.

9 Ripetizione dei passi dal 2 all’8, per testare tutte le possibili combinazioni di metrica di distanza e algoritmo di linkage, tra quelli di preset nelle apposite funzioni MATLAB.

10 Costruzione di una tabella contenente i risultati ottenuti al passo 9, per ogni scelta dei parametri dell’algoritmo.

11 Salvataggio della tabella costruita al passo 10 in un file con estensione *.cvs, poi importata in un documento Excel per maggiore leggibilit`a.

La scelta di fissare a 4 il numero massimo di cluster non `e obbligatoria, ma motivata dalla natura dei dati. Infatti, l’algoritmo per la creazione dei cluster `e stato preventivamente testato sia senza fissare un valore massimo, sia utilizzando valori diversi da 4. Ci`o che `e emerso `e che, nei casi in cui i dati venissero divisi

in pi`u cluster, il numero di cluster molto popolati oscillava sempre tra 2 e 4, da

cui la scelta di fissare il massimo a 4.

In Appendice A viene mostrato il codice della funzione MATLAB

cep hierarchical clustering, implementata per testare l’algoritmo di hierarchical clustering al variare dei parametri.

3.4.2 K-means clustering

La routine MATLAB utilizzata per e↵ettuare k-means clustering si articola nei passi elencati in seguito.

1 Importazione delle matrici contenenti, in ogni riga, le feature di un cam-pione audio. Tali matrici sono state calcolate in precedenza e salvate in un apposito file con estensione .mat.

2 Scelta di una metrica di distanza, tra i preset della funzione kmeans del Statistics and Machine Learning toolbox di MATLAB. Le scelte possibili sono [9]:

- sqedeuclidean, distanza Euclidea Quadrata; - cityblock, metrica City block ;

- cosine, uno meno il coseno dell’angolo compreso tra i punti campione; - correlation, uno meno la correlazione dei punti campione;

- hamming, distanza di Hamming;

3 Partizionamento delle osservazioni in kcluster, utilizzando la funzione kmeans del Statistics and Machine Learning toolbox di MATLAB.

4 Calcolo della silhouette media del partizionamento ottenuto al passo 3. In

generale, tanto pi`u alto `e questo valore, tanto migliore `e la scelta di k.

5 Dato che la classe di appartenenza di ciascun campione `e nota, calcolo di quanti campioni per tipologia di equalizzazione sono stati inseriti in ciascun cluster.

6 Ripetizione dei passi dal 3 al 5, cambiando ogni volta il valore di k. Proce-dura testata per k = 2, 3, 4.

7 Ripetizione del passo 6, cambiano ogni volta la metrica di distanza, secondo i preset della funzione kmeans.

8 Costruzione di una tabella contenente i risultati ottenuti nei passi prece-denti, per ogni scelta dei parametri dell’algoritmo.

9 Salvataggio della tabella costruita al passo 8 in un file con estensione *.cvs, poi importata in un documento Excel per maggiore leggibilit`a.

Le considerazioni in merito alla scelta dei valori di k sono del tutto analoghe a quelle esposte nel caso di hierarchical clustering.

In Appendice A viene mostrato il codice della funzione MATLAB

cep k means clustering, implementata per testare l’algoritmo di k-means cluste-ring al variare dei parametri.

Documenti correlati