Professional Documents
Culture Documents
Importing Library
In [29]:
In [30]:
Checking if the cpds are valid for the model
In [31]:
1 alarm_model.check_model()
Out[31]:
True
In [32]:
1 alarm_model.nodes()
Out[32]:
In [33]:
1 alarm_model.edges()
Out[33]:
In [34]:
1 alarm_model.local_independencies('Burglary')
Out[34]:
(Burglary ⟂ Earthquake)
1 alarm_model.get_independencies()
Out[35]:
(Earthquake ⟂ Burglary)
In [36]:
1 infer = VariableElimination(alarm_model)
In [37]:
1 alarm_prob = infer.query(['Alarm'])
2 print(alarm_prob)
+----------+--------------+
| Alarm | phi(Alarm) |
+==========+==============+
| Alarm(0) | 0.9975 |
+----------+--------------+
| Alarm(1) | 0.0025 |
+----------+--------------+
+----------+--------------+
| Alarm | phi(Alarm) |
+==========+==============+
| Alarm(0) | 0.9990 |
+----------+--------------+
| Alarm(1) | 0.0010 |
+----------+--------------+
In [39]:
1 print(
2 infer.query(['Alarm'],
3 evidence={
4 'Burglary': 0,
5 'Earthquake': 0,
6 'JohnCalls': 1,
7 'MaryCalls': 1
8 }))
+----------+--------------+
| Alarm | phi(Alarm) |
+==========+==============+
| Alarm(0) | 0.9940 |
+----------+--------------+
| Alarm(1) | 0.0060 |
+----------+--------------+
1 print(
2 infer.query(['Alarm'],
3 evidence={
4 'Burglary': 1,
5 'Earthquake': 0,
6 'JohnCalls': 0,
7 'MaryCalls': 1
8 }))
+----------+--------------+
| Alarm | phi(Alarm) |
+==========+==============+
| Alarm(0) | 0.6453 |
+----------+--------------+
| Alarm(1) | 0.3547 |
+----------+--------------+
In [41]:
1 print(
2 infer.query(['Alarm'],
3 evidence={
4 'Burglary': 1,
5 'Earthquake': 1,
6 'JohnCalls': 1,
7 'MaryCalls': 1
8 }))
+----------+--------------+
| Alarm | phi(Alarm) |
+==========+==============+
| Alarm(0) | 0.0087 |
+----------+--------------+
| Alarm(1) | 0.9913 |
+----------+--------------+