All Projects → godai0519 → BayesianNetwork

godai0519 / BayesianNetwork

Licence: MIT license
An implementation of Bayesian Networks Model for pure C++14 (11) later, including probability inference and structure learning method.

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to BayesianNetwork

dbnR
Gaussian dynamic Bayesian networks structure learning and inference based on the bnlearn package
Stars: ✭ 33 (-8.33%)
Mutual labels:  bayesian-networks
Stanford Cs 221 Artificial Intelligence
VIP cheatsheets for Stanford's CS 221 Artificial Intelligence
Stars: ✭ 1,923 (+5241.67%)
Mutual labels:  bayesian-networks
Pgmpy
Python Library for learning (Structure and Parameter) and inference (Probabilistic and Causal) in Bayesian Networks.
Stars: ✭ 1,942 (+5294.44%)
Mutual labels:  bayesian-networks
Dowhy
DoWhy is a Python library for causal inference that supports explicit modeling and testing of causal assumptions. DoWhy is based on a unified language for causal inference, combining causal graphical models and potential outcomes frameworks.
Stars: ✭ 3,480 (+9566.67%)
Mutual labels:  bayesian-networks
markovian
🎲 A Kotlin DSL for probabilistic programming.
Stars: ✭ 13 (-63.89%)
Mutual labels:  bayesian-networks
sparsebn
Software for learning sparse Bayesian networks
Stars: ✭ 41 (+13.89%)
Mutual labels:  bayesian-networks
pycid
Library for graphical models of decision making, based on pgmpy and networkx
Stars: ✭ 64 (+77.78%)
Mutual labels:  bayesian-networks

Bayesian Network Build Status

What's this

This software is for Bayesian Network (BN) Library.
A implementation of Bayesian Networks Model for pure C++11, included Loopy-BP and Likelihood Weighting.
Development is not yet finished, but you can already use.

このソフトウェアはベイジアンネットワークのためのライブラリです.
C++14を使用して実装しており,Loopy-BPやLikelihood Weighingといったベイジアンネットワークモデルを提供します.

Install

This library is implemented as Header Only Library.
Just through the /path/to/BayesianNetwork directory. (ex. -I/path/to/BayesianNetwork)

header onlyライブラリとして実装してあるので,ディレクトリへのパスを通すだけで使用可能です.
(ex. -I/path/to/BayesianNetwork)

Compilers Tested

  • Linux:
    • GCC, C++11: 4.8.1, 4.9.2, 5.0.0
    • Clang, C++11: 3.5, 3.7.0 (trunk)
  • Windows:
    • Visual C++: 12.0 (CTP_Nov2013), 13.0

Feature

Bayesian Network structure learning

  • Brute Force class
    • search all patterns, very very slow.
  • Greedy class
    • some patterns(not become good score) ignore, fast a little.
  • Simulated Annealing class
    • as if a metal, with spending time, structure is less likely to change.
  • K2 Algorithm class
    • give information that you already know some relations between nodes.
  • Stepwise Structure
    • first, make some cluster that include some node, one after another cluster combine two clusters.
Available Algorithms in Stepwise Structure
Learning in Cluster Learning between Cluster
Brute Force OK OK
Greedy OK OK
Simulated Annealing OK NG
K2 Algorithm OK NG

Inferring unobserved variables

  • Loopy-BP class
    • high-speed and strong in a loop graph.
  • Rejection Sampling (a.k.a. Logic Sampling) class
    • very simple, but very slowly.
  • Likelihood Weighting
    • higher than Rejection Sampling, and extremely accuracy.

Author and Contact

Feel free to contact me ;)
Bugs and issues are reportable below:

Licence

Code released under the MIT license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].