Per segnalare la rilevazione di un malfunzionamento è sufficiente inviare una mail a info[at]codeofduty.it oppure una Issue su GitHub.
- Introduzione
- Requisiti di sistema
- Server (Installazione opzionale)
- Web app (Installazione obbligatoria)
- Istruzioni per l'utilizzo di HD Viz
- Visualizzazioni
HD Viz è una web app per la visualizzazione di dati multidimensionali. È stata sviluppata per dare supporto agli utenti durante la fase esplorativa dell'analisi dei dati. Le visualizzazioni vengono create tramite la libreria d3.js.
Il sistema si divide in due parti:
- la web app vera e propria;
- il server per il recupero dei dati da database.
- Yarn v1.22.0 o superiore.
Se si vuole eseguire il server è necessario:
- Node v14.0.0 o superiore.
- Sistema Operativo:
- Windows 10;
- MacOS 10.13;
- Debian 8.10;
- Ubuntu 18.10.
- Browser:
- Google Chrome v57 o superiore;
- Microsoft Edge v15 o superiore;
- Mozilla Firefox v48 o superiore;
- Safari v10 o superiore;
- Opera v44 o superiore.
HD Viz consiste in una web app, perciò le configurazioni minime prevedono:
- Processore dual-core;
- 2GB di memoria RAM.
Il server è necessario solo per il recupero dati da database, per questo la sua installazione ed esecuzione non è obbligatoria.
L'utente può collegarsi ai vari tipi di database soltanto se precedentemente già installati su una macchina. Ci sono 4 tipi di database compatibili con la componente server di HD Viz e sono:
- MySQL;
- SQLite;
- PostgreSQL;
- MongoDB.
- Scaricare
server.zip
dall'ultima release presente su GitHub; - estrarre lo zip;
- posizionarsi nella cartella del server in cui è presente il file
package.json
; - eseguire il comando
yarn
da terminale per installare le dipendenze necessarie.
Prima di poter eseguire l'applicazione è necessario configurare i file per le connessioni ai database.
In particolare per configurare correttamente un database è necessario creare un file con estensione json
dentro la cartella src/config
, specificando come da esempio le caratteristiche del DB da aggiungere (è possibile configurare più file per più connessioni).
{
"DB_Name": "My Database",
"DB_Address": "192.168.1.100", // oppure indirizzo del file per sqlite
"DB_Username": "root",
"DB_Password": "admin",
"DB_Type": "mysql", // oppure "postgresql" o "mongodb" o "sqlite"
"DB_Port": 3306
}
Il campo DB_Type
può essere:
mysql
;postgresql
;mongodb
;sqlite
.
Per eseguire il server è sufficiente:
- aprire un terminale;
- posizionarsi nella cartella del server in cui è presente il file
index.js
; - avviare il server immettendo da terminale il seguente comando:
node index.js
;
Il server è ora in esecuzione nella porta 1337
se non specificato differentemente nel file config.json
all'interno della cartella pricipale.
- scaricare
client.zip
dall'ultima release presente su GitHub; - estrarre lo zip;
- aprire un terminale e installare
serve
utilizzando il comandoyarn global add serve
.
Per eseguire la web app è sufficiente:
- posizionarsi all'interno della cartella dove si è estratto lo zip;
- se necessario aggiornare l'url del server nel file
config.js
nella cartella principale; - aprire il terminale;
- immettere il comando
serve -s .
per avviare l'applicazione.
La web app è ora in funzione e disponibile nella porta 5000
(se non specificato differentemente da serve
).
Per caricare il dataset sono offerte due possibilità:
- caricamento tramite file .csv;
- caricamento tramite DB.
Spostandosi nella relativa tab è possibile vedere il pulsante di upload, il quale rimanderà al file manager predefinito la scelta del file da caricare.
È necessario aver installato e avviato il server. Spostandosi nella tab Database
è possibile visualizzare due campi:
- Database Connection: indica il nome del database dal quale si vuole estrarre il dataset;
- Data Table: indica la tabella specifica del database specificato, dalla quale si vuole estrarre il dataset.
Se nell'elenco dei database non fosse presente quello richiesto, è necessario configurare il server come da esempio.
È possibile scegliere fra uno di questi sette tipi di visualizzazione:
- Force Field;
- Linear Projection;
- Linear Projection con PCA;
- Linear Projection con UMAP.
- Parallel Coordinates;
- Heatmap;
- Correlation Heatmap;
- Scatter Plot Matrix.
È obbligatorio specificare le variabili feature sulle quali si vuole effettuare l'analisi. È possibile selezione al massimo 2 variabili target che influenzeranno le visualizzazioni. Le feature devono essere numeriche, mentre le variabili target possono essere sia valori numerici che stringhe.
Le opzioni di visualizzazione variano per ogni tipo di visualizzazione scelta.
Per la visualizzazione del grafico, è sufficiente premere sul pulsante Start
.
Di seguito verranno descritte le visualizzazioni offerte da Hd Viz, accompagnate dalle immagini dei grafici costruiti con il dataset iris.
La visualizzazione Scatter Plot Matrix mostra una griglia di grafici di dispersione,
per ogni coppia di feature selezionate viene costruito un grafico all'interno della griglia,
l'ordinata e l'ascissa di tale grafico rappresentano i valori delle feature a esso associate.
E' possibile selezionare alcuni punti all'interno di un grafico,
quando selezionati, questi punti saranno evidenziati anche negli altri grafici della griglia permettendo quindi di
vedere come cambia la loro distribuzione a seconda delle feature che sono associate ad un singolo grafico.
In questa visualizzazione non è possibile selezionare un numero di feature maggiore di 5, per prevenire la creazione di griglie troppo "dense".
- Normalizzazione: è possibile normalizzare il dataset prima di visualizzare il grafico, le funzioni di normalizzazione disponibili sono Standard Score, Euclidean Length Normalization e Manhattan Length Normalization.
La Heatmap è una matrice che ha come colonne le features selezionate e come righe i record del dataset caricato.
Ogni casella della Heatmap viene colorata in base al valore che assume il record di quella riga nella feature della colonna corrispondente,
più alto sarà il valore e più scura risulterà la casella.
- Range Color: è possibile selezionare i colori con cui visualizzare la Heatmap;
- Distanza: è possibile scegliere con quale matrice di distanza calcolare il clustering;
- Clustering: è possibile scegliere come verranno clusterizzate le righe;
- Normalizzazione: è possibile normalizzare il dataset prima di visualizzare il grafico, le funzioni di normalizzazione disponibili sono Standard Score, Euclidean Length Normalization e Manhattan Length Normalization.
La Correlation Heatmap è un tipo particolare di Heatmap in cui sia le colonne che le righe sono rappresentate dalle feature, il colore di una singola casella è determinato quindi dalla dipendenza tra le due feature corrispondenti alla casella, la dipendenza tra le feature è calcolata tramite il coefficiente di Pearson, tanto più alto sarà questo valore tanto più scura risulterà la casella.
- Range Color: è possibile selezionare i colori con cui visualizzare la Heatmap;
- Clustering: è possibile scegliere come verranno clusterizzate le righe;
- Normalizzazione: è possibile normalizzare il dataset prima di visualizzare il grafico, le funzioni di normalizzazione disponibili sono Standard Score, Euclidean Length Normalization e Manhattan Length Normalization.
Il Forcefield simula l'interazione tra forze in un grafo, gli archi esercitano una forza attrattiva sui nodi da essi collegati e i nodi esercitano una forza repulsiva tra di loro.
Nella visualizzazione i nodi del grafo sono i record del dataset, l'arco che unisce un nodo A ad un nodo B è pesato in base alla distanza tra i record raffigurati da A e B,
più due record sono vicini (cioè i valori delle loro feature sono simili) più l'arco che unisce i due nodi eserciterà una forza maggiore e i nodi risulteranno più vicini nel grafo visualizzato.
Per avere una visualizzazione più chiara gli archi non vengono visualizzati.
- Matrice di Distanza: è possibile scegliere la funzione di distanza (Euclidea o Manhattan) necessaria per calcolare la distanza tra i record e quindi il peso degli archi;
- Normalizzazione: è possibile normalizzare il dataset prima di visualizzare il grafico, le funzioni di normalizzazione disponibili sono Standard Score, Euclidean Length Normalization e Manhattan Length Normalization.
Questa visualizzazione proietta dei punti multidimensionali, cioè record di un dataset contenente diverse feature, in uno spazio a 2 dimensioni. Hd Viz utilizza due diversi algoritmi per eseguire la riduzione dimensionale.
La Principal Components Analysis riduce il numero di variabili originali a un numero minore di nuove variabili tramite una trasformazione lineare che minimizzi la perdita d'informazione.
Nella Linear Projection con PCA vengono visualizzati anche gli assi originali, proiettati nel nuovo sistema cartesiano.
Uniform Manifold Approximation and Projection è un algoritmo di riduzione dimensionale non lineare, UMAP costruisce un grafo a multi dimensioni per rappresentare i dati, dopo ottimizza un grafo a minore dimensione in modo tale che sia il più simile possibile a quello originale.
- Normalizzazione: è possibile normalizzare il dataset prima di visualizzare il grafico, le funzioni di normalizzazione disponibili sono Standard Score, Euclidean Length Normalization e Manhattan Length Normalization;
- Neighbors number (UMAP): indica il numero di vicini da considerare nella costruzione del grafo originale, più il valore è basso e più l'algoritmo si concentrerà sulle strutture locali del dataset, viceversa più è alto e più la visualizzazione mostrerà le strutture globali del dataset;
- Min distance (UMAP): è la distanza minima tra i punti mostrati nella visualizzazione.
- Spread (UMAP): definisce la scala dei punti proiettati, insieme a Min distance controlla la dispersione dei punti visualizzati.
In questa visualizzazione le variabili (feature) vengono disposte su linee parallele verticali, un punto (record) del dataset è rappresentato dalla linea spezzata che va a intersecare le linee verticali delle variabili, il punto in cui la linea che rappresenta il record va a intersecare la linea della variabile dipende dal valore che assume quel record in quella determinata variabile.
- Normalizzazione: è possibile normalizzare il dataset prima di visualizzare il grafico, le funzioni di normalizzazione disponibili sono Standard Score, Euclidean Length Normalization e Manhattan Length Normalization.