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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file BayesNetCreacion-1.1.5.tar.gz.
File metadata
- Download URL: BayesNetCreacion-1.1.5.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff3ca971cab53842704749419cb71c7a368dc4cf37dfe70232cc0fe9867732d1
|
|
| MD5 |
62be6df78190d7a0f455a1803d5d5d83
|
|
| BLAKE2b-256 |
dcd4b31bb6f70dd0dc0ffe4cd53695ca476ddd3392f40c2cbeb2b8dfcd5f6623
|
File details
Details for the file BayesNetCreacion-1.1.5-py3-none-any.whl.
File metadata
- Download URL: BayesNetCreacion-1.1.5-py3-none-any.whl
- Upload date:
- Size: 5.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1b1495b83849ecbf133b238d4697ac98143fd84cfb078d3d28595999af3ba784
|
|
| MD5 |
2e0762f57b6e7918535ab1163812ba7e
|
|
| BLAKE2b-256 |
378b5b6c96a70be8b8018f57a5961b4258f66fe53aadf959f8f27a48c9113991
|