GithubHelp home page GithubHelp logo

bayes-networks-induction's Introduction

Apprendimento di rete bayesiana da un dataset

Moduli

  • bayes_induction.py: è il modulo principale che lancia l'esecuzione di K2 (Cooper & Herskovits, 1992) e renderizza il risultato nel file k2_result_N.svg dove 'N' è la grandezza del dataset. Deve ricevere come input la posizione del file CSV da cui leggere il dataset.

    Esempio di riga di comando:

    python bayes_induction.py file.csv
    

    Per l'esecuzione si richiede la versione 3.8 di python con le seguenti dipendenze:

    • pandas
    • numpy
    • graphviz
    • pydot
    • bnlearn
  • dataset_generator.py: questo è uno script che genera un dataset di grandezza arbitraria in formato CSV. Per eseguirlo bisogna che il pacchetto bnlearn sia installato (vedi qui). Esempio:

    python dataset_generator.py 3000
    
  • K2.py: modulo python che fornisce l'implementazione dell'algoritmo K2.

  • gFunction.py: modulo python che fornisce l'implementazione della funzione 12 dell'articolo equation.

  • node.py: fornisce una implementazione molto basilare della classe nodo.

  • global_vars.py: contiene due ordinamenti possibili utilizzati da K2.k2_procedure().

  • variables_constraint_parser.py: contiene la funzione che estrapola il dominio dei valori di ogni variabile dal file alarm_variables_constraints.txt

Per semplificare il tutto ho anche inserito lo script bash run_all_datasets.sh che esegue K2 su datasets di grandezze diverse predefinite.

È disponibile anche una versione multiprocess del test scaricabile dal branch multithreading.
ATTENZIONE: utilizzo intenso di CPU! Non ci sono controlli sul numero di processi che vengono spawnati. Non mi assumo nessuna responsabilità per eventuali processori fusi.

bayes-networks-induction's People

Contributors

simomett avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.