Anteprima
Vedrai una selezione di 4 pagine su 14
Esercitazione svolta Data Mining con Codice Sorgente  Pag. 1 Esercitazione svolta Data Mining con Codice Sorgente  Pag. 2
Anteprima di 4 pagg. su 14.
Scarica il documento per vederlo tutto.
Esercitazione svolta Data Mining con Codice Sorgente  Pag. 6
Anteprima di 4 pagg. su 14.
Scarica il documento per vederlo tutto.
Esercitazione svolta Data Mining con Codice Sorgente  Pag. 11
1 su 14
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Avvio del progetto

Per avviare il progetto è necessario aver installato una versione aggiornata dell'IDE Eclipse Enterprise Edition (4.24.0) con l'ausilio del plugin Spring Tool 4, il quale con pochi passaggi permette di istanziare una sessione della web application.

Il progetto è strutturato in package, al fine di rendere il progetto modulare e di conseguenza aumentando la qualità del software prodotto. Di seguito verranno descritti i package che compongono il progetto:

  • com.datamining.esercitazione: tale package è responsabile dell'avvio dell'applicativo mediante Spring;
  • com.datamining.esercitazione.controller: contenente il controller dell'applicativo nel quale sono definiti i metodi GET e POST per la visualizzazione delle pagine web;
  • com.datamining.esercitazione.datamining: contenente le logiche applicative per creazione ed applicazione del modello di classificazione;
  • com.datamining.esercitazione.model: contenente le classi Model con i...

relativi metodi get e set

com.datamining.esercitazione:utility: contenente classi di utility, necessarie all'esecuzione del programma

Pagina 7

Dopo aver avviato il progetto "Spring Boot App" come riportato nell'immagine seguente, sarà possibile accedere alla pagina web http://localhost:8080/weka.

In prima battuta sarà necessario caricare il file "IRIS.ARFF" all'interno del form di compilazione e premere il tasto "Elabora File" per far eseguire l'algoritmo dall'applicazione.

Pagina 8

La pagina visualizzata, è stata creata in html, utilizzando un form per il caricamento del file e delle librerie bootstrap e chart.js per la visualizzazione dell'istogramma.

Il processo, successivamente, passa attraverso il Controller, il quale ha il compito di caricare il Dataset in formato arff che viene caricato in input dalla WebUI (nel nostro caso abbiamo analizzato il file iris.arff). Successivamente al caricamento del

il controllo viene ceduto alla classe successiva. Pag. 9 La classe contenente il core della logica applicativa del progetto è denominata "DataMining", al cui interno vi è il codice che esegue l'algoritmo 10-fold cross-validation. Il primo step della classe "Datamining" è il caricamento dei parametri di configurazione tramite la classe "ConstantiUtility", la quale contiene la lista delle percentuali da elaborare. Deve inoltre essere definita negli step iniziali la Lista di oggetti del tipo "TotalWekaModel", la quale conterrà tutti i risultati che saranno successivamente reindirizzati nella pagina web sotto forma di istogramma. La classe "CostantiUtility", contiene le informazioni relative al numero di classi (pari a quelle presenti nel dataset), al numero di folder e alle percentuali definite all'interno della traccia. Lo step successivo all'interno della classe "Datamining"è relativo al calcolo dei centroidi, il dataset viene inviato al metodo "calcolaCentroide" contenuto nella classe "GeneraCentroide" e viene iterato 10 volte (numero di fold) consentendone la divisione in trainingSet e testSet. Il trainingSet è utilizzato per la fase di addestramento mentre il testSet per la valutazione del modello creato. Inoltre si fa uso del filtro Remove per rimuovere l'etichetta ad una percentuale di dati presenti nel training set. A partire dal trainingSet senza etichette viene usato l'algoritmo "Simple K-Means" e vengono calcolati i centroidi (tre come il numero di classi). Sulla parte rimanente del training set in cui è presente l'etichetta, viene calcolata la distanza minima che ciascun elemento ha nei confronti dei tre centroidi e sono state contate le istanze di ciascuna classe. Ad ogni cluster viene assegnata l'etichetta della classe che occorre un numero maggiore di volte. Lo stepsuccessivo all'interno della classe Datamining.java è relativo al calcolo della Confusion Matrix mediante il metodo generaConfusionMatrix, il quale ne contiene la logica per la creazione.

Nel GeneraConfusionMatrix.java, gli elementi del testSet sono sottoposti alla classificazione che viene effettuata misurando la distanza minima con i tre centroidi (etichettati) ed ottenuti dal metodo precedente e passati in input.

Lo step successivo all'interno della classe Datamining è relativo al calcolo dei dati statistici in termini di "true positive", "true negative", "false positive", "false negative" oltre che dell'accuracy per ciascuna fold.

Successivamente, al termine del ciclo per il calcolo delle 10 fold, vengono aggregate le informazioni statistiche che permettono dunque di calcolare l'accuracy totale al fine di poter valutare la bontà del modello creato.

Infine la

lista di oggetti del tipo “TotalWekaModel”, viene convertita in formato Json mediante la libreria gson (libreria di google importata nel POM) così da poterlo leggere e trasformare in istogramma attraverso l’utilizzo della libreria js Chart.min.js.

L’istogramma che verrà visualizzato è navigabile in modalità interattiva, pertanto muovendo il puntatore sulle singole barre sarà possibile visualizzare il valore associato alla stessa in formato percentuale.

pag. 13

Dettagli
Publisher
A.A. 2022-2023
14 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher carmdevol di informazioni apprese con la frequenza delle lezioni di Data mining e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università telematica "e-Campus" di Novedrate (CO) o del prof Antonelli Michela.