Skip to content

infoburp/pgmpy

 
 

Repository files navigation

pgmpy Build Status Coverage Status

Python Library for Probabilistic Graphical Models
Documentation: pgmpy
Mailing List: pgmpy@googlegroups.com
irc: #pgmpy on freenode.net

Dependencies:

  • Python 3.3
  • NetworkX 1.8.1
  • Scipy 0.12.1
  • Numpy 1.7.1
  • Cython 0.19 (optional)

Installation:

pgmpy is installed using distutils. If you have the tools installed to build a python extension module:

sudo python3 setup.py install

Example:

from pgmpy import BayesianModel as bm
student = bm.BayesianModel()
# instantiates a new Bayesian Model called 'student'

student.add_nodes_from(['diff', 'intel', 'grade'])
# adds nodes labelled 'diff', 'intel', 'grade' to student

student.add_edges_from([('diff', 'grade'), ('intel', 'grade')])
# adds directed edges from 'diff' to 'grade' and 'intel' to 'grade'

student.set_states({'diff': ['hard', 'easy']})
student.set_rule_for_states('diff', ['easy', 'hard'])
student.set_cpd('diff', [[0.2],[0.8]])
#easy=0.2
#hard=0.8

student.set_states({'intel': ['avg', 'dumb', 'smart']})
student.set_rule_for_states('intel', ['dumb', 'avg', 'smart'])
student.set_cpd('intel', [[0.5], [0.3], [0.2]]) 
#dumb=0.5
#avg=0.3
#smart=0.2

student.set_states({'grade': ['A','C','B']})
student.set_rule_for_parents('grade', ['diff', 'intel'])
student.set_rule_for_states('grade', ['A', 'B', 'C'])
student.set_cpd('grade',
                [[0.1,0.1,0.1,0.1,0.1,0.1],
                [0.1,0.1,0.1,0.1,0.1,0.1], 
                [0.8,0.8,0.8,0.8,0.8,0.8]]
                )

#diff:       easy                 hard
#intel: dumb   avg   smart    dumb  avg   smart
#gradeA: 0.1    0.1    0.1     0.1  0.1    0.1  
#gradeB: 0.1    0.1    0.1     0.1  0.1    0.1
#gradeC: 0.8    0.8    0.8     0.8  0.8    0.8

student.set_observations({'intel': 'smart', 'diff': 'easy'})
# observed parameters are that intel of student is smart and
# difficulty is easy

student.reset_observations('intel')
# reset observations for intel

active_trail = student.is_active_trail('grade', 'intel')
# returns True if active trail exists between grade and intel

About

Python Library for Probabilistic Graphical Models

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 98.3%
  • Shell 1.7%