Sviluppo software per il learning di reti Bayesiane gerarchiche

Posillico, Vincenzo (2020) Sviluppo software per il learning di reti Bayesiane gerarchiche. Bachelor thesis, Scuola universitaria professionale della Svizzera italiana.

[img] Text
DOC_POSILLICO.pdf
Available under License Creative Commons Attribution Non-commercial.

Download (947kB)
[img] Text
POSTER_POSILLICO.pdf
Available under License Creative Commons Attribution Non-commercial.

Download (262kB)

Abstract

Le reti Bayesiane rappresentano un metodo probabilistico di machine learning flessibile e adatto a rappresentare in modo sintetico, per mezzo di un grafo, relazioni multivariate tra numerose variabili. Recentemente è stata proposta una estensione, chiamata reti Bayesiane gerarchiche, che permette di imparare le relazioni tra variabili nel caso i dati derivino da una collezione di dataset correlati ma non identici tra di loro, che possono differire tra loro per esempio nel modo in cui i dati sono stati raccolti. Esempi possono essere trovati in trial clinici multi-centro, genomica e scienze ambientali. Questa estensione permette di imparare un grafo comune per i diversi gruppi di dati, tenendo però in considerazione le differenze tra i gruppi, e dei parametri specifici per ogni gruppo. Un codice prototipale per imparare i parametri e la struttura di reti Bayesiane gerarchiche è disponibile in R. In questo lavoro viene richiesto che venga tradotto in C e integrato all’interno della libreria R bnlearn per il learning delle reti Bayesiane. Parte del codice prototipale è stato quindi convertito in C o, nel caso di alcuni file R, adattato per renderlo compatibile a questo cambiamento. Rispettando la struttura della libreria bnlearn, è stata effettuata una corretta integrazione di questi elementi. Inoltre, le funzioni convertite, hanno portato a un miglioramento dell’88% nella velocità di esecuzione del codice. Bayesian networks are a flexible probabilistic machine learning method that represent in a synthetic way, by means of a graph, the multivariate relationship between different variables. A new extension of these models, named hierarchical Bayesian networks, was recently proposed. This extension allows to learn the relationships between variables when data are taken from a collection of related but not identical datasets, which may differ e.g. in the way data was collected. Such examples can be found in multicenter clinical trials, genomic ones and environmental science. This extension allows to learn of a common graph for different groups of data, by taking into consideration the differences among groups and by providing group specific parameters. Prototype code dedicated to hierarchical parameters and structure learning was already available in R. The aim of this project is the conversion of the prototype code in C and its integration into the bnlearn R package for Bayesian networks learning. Part of the prototype code was converted to C or, in the case of some R files, made compatible with the changes made. The integration of all the elements with the bnlearn library structure was successful. In addition, the converted functions led to an 88% performance improvement in the code execution speed. Le reti Bayesiane rappresentano un metodo probabilistico di machine learning flessibile e adatto a rappresentare in modo sintetico, per mezzo di un grafo, relazioni multivariate tra numerose variabili. Recentemente è stata proposta una estensione, chiamata reti Bayesiane gerarchiche, che permette di imparare le relazioni tra variabili nel caso i dati derivino da una collezione di dataset correlati ma non identici tra di loro, che possono differire tra loro per esempio nel modo in cui i dati sono stati raccolti. Esempi possono essere trovati in trial clinici multi-centro, genomica e scienze ambientali. Questa estensione permette di imparare un grafo comune per i diversi gruppi di dati, tenendo però in considerazione le differenze tra i gruppi, e dei parametri specifici per ogni gruppo. Un codice prototipale per imparare i parametri e la struttura di reti Bayesiane gerarchiche è disponibile in R. In questo lavoro viene richiesto che venga tradotto in C e integrato all’interno della libreria R bnlearn per il learning delle reti Bayesiane. Parte del codice prototipale è stato quindi convertito in C o, nel caso di alcuni file R, adattato per renderlo compatibile a questo cambiamento. Rispettando la struttura della libreria bnlearn, è stata effettuata una corretta integrazione di questi elementi. Inoltre, le funzioni convertite, hanno portato a un miglioramento dell’88% nella velocità di esecuzione del codice. Bayesian networks are a flexible probabilistic machine learning method that represent in a synthetic way, by means of a graph, the multivariate relationship between different variables. A new extension of these models, named hierarchical Bayesian networks, was recently proposed. This extension allows to learn the relationships between variables when data are taken from a collection of related but not identical datasets, which may differ e.g. in the way data was collected. Such examples can be found in multicenter clinical trials, genomic ones and environmental science. This extension allows to learn of a common graph for different groups of data, by taking into consideration the differences among groups and by providing group specific parameters. Prototype code dedicated to hierarchical parameters and structure learning was already available in R. The aim of this project is the conversion of the prototype code in C and its integration into the bnlearn R package for Bayesian networks learning. Part of the prototype code was converted to C or, in the case of some R files, made compatible with the changes made. The integration of all the elements with the bnlearn library structure was successful. In addition, the converted functions led to an 88% performance improvement in the code execution speed.

Item Type: Thesis (Bachelor)
Corso: UNSPECIFIED
Supervisors: Azzimonti, Laura
Subjects: Informatica
Divisions: Dipartimento tecnologie innovative > Bachelor in Ingegneria informatica
URI: http://tesi.supsi.ch/id/eprint/3581

Actions (login required)

View Item View Item