Skip to main content

Library capable of creating Bayesian Networks and making probabilistic inference over them, as well additional functions

Project description

BayesNetCreacion

This library has the objective of building Bayesian networks and making probabilistic inference over them. Also, adding some other additional features that could serve the developers that make use of this library.

This library has zero dependencies to assure it is futureproof, easier to debug, to contribute to and use.

For the most part this library works over classes like BayesNetCreacion and Node, this was chosen so that in a way it could facilitate the usage of the OOP paradigm.

For further inquiries you about the usage of the library you can consult Usage section of this repo or the testing python file to see the Burglar Alarm System example being used.

Features

  • Created without using any dependencies/libraries.

  • Can create Bayesian Networks, represented as a dictionary.

  • Calculation of probabilistic inference given the created Bayesian Network.

  • Can check if network is fully defined or not.

  • Has the capability of returning a compact representation of the network as a string.

  • Can return the network's factors as a dictionary.

  • Is able to return the numeration of the network given evidence and a query.

Prerequisites

  • Python 3.10.^

Usage

from BayesNetCreacion import BayesNetCreacion, Node #Import the library



examplenode = Node('E') #Create a Node object

example2node = Node('E2') #Create another Node object

example2node.set_parents([str(examplenode)]) #Set node as parent



bnc = BayesNetCreacion() #Instantiate the Bayes Network class



#Add both nodes into the network

bnc.add_node(examplenode)

bnc.add_node(example2node) 



#Add the probability values of each node 

bnc.add_prob({

    ('E', True): 0.001,

    ('E', False): 0.999,

    ('E2', True, 'E', True): 0.25,

    ('E2', True, 'E', False): 0.9,

    ('E2', False, 'E', True): 0.75,

    ('E2', False, 'E', False): 0.1

})



#Features:



#Get dictionary with network

bn = bnc.get_network()



#Probabilistic inference

evidence = {'E': True}

query = 'E2'



result = bnc.probabilistic_inference(query, evidence) #Calculate the inference

print(result) #Profit?



#Compact

WIP



#Factors

print(bnc.get_factors())



#Definition Check

WIP



#Enumeration

evidence = {'E': False}

query = 'E2'

result = bnc.pre_enum(query, evidence) #Calculate numeration

print(result)

Author

👤 Andrés de la Roca

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

BayesNetCreacion-1.1.2.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

BayesNetCreacion-1.1.2-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

Details for the file BayesNetCreacion-1.1.2.tar.gz.

File metadata

  • Download URL: BayesNetCreacion-1.1.2.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.10

File hashes

Hashes for BayesNetCreacion-1.1.2.tar.gz
Algorithm Hash digest
SHA256 83a820fceb172cf0aead49702d8345794fe630829d5022e60a2929e82d9d99f1
MD5 5b7fa0b6322abd92c15e1ad82ec935bf
BLAKE2b-256 ca7ab7e5a5a8b09ab15889ed2efb2d18b745bafa75e64a6e33a83f605fb3cf5d

See more details on using hashes here.

File details

Details for the file BayesNetCreacion-1.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for BayesNetCreacion-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8fec12dca91e614d041b038e66c1323b80a2b7c00d3290ac38d129a18aecf642
MD5 bc8e936c8395ea5f37c51c5c50e1a5c8
BLAKE2b-256 7c00b0b90352a643da68e2870a7744c5b6a3150d39592323b172f20cb1efd650

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page