Skip to main content

No project description provided

Project description

Laboratorio 2 - Inteligencia Artificial

Este laboratorio es una implementacion de las redes bayesianas en python. La librerí, con nombre fcaBayesian utiliza la libería de pgmpy para poder hacer todos los análisis de las redes bayesianas.

Los métodos que se encuentran en esta librería son:

  • build_model(): utiliza los valores obtenidos en los parametros del constructor y crea el modelo de la red bayesiana.

  • enumeracion(variables, evidence): obtiene la variable de forma ['variable'] y la evidencia de la forma {'variable_de_evidencia': evidencia}.

    Un ejemplo de esta llamada es: bayes.enumeracion(['R'], {'M': 1,}) siendo bayes una instancia de la red bayesiana.

    El valor de retorno es un array con los valores resultantes del metodo de pgmpy self.inference.query(variables=variables, evidence=evidence)

+------+----------+
| R    |   phi(R) |
+======+==========+
| R(0) |   0.2131 | -> El primer valor en el arreglo del return
+------+----------+
| R(1) |   0.7869 | -> El segundo valor en el arreglo del return
+------+----------+
  • obtener_factores: obtine las dependencias independientes del modelo bayesiano utiliza la funcion get_independecies del objeto model
(U  M, B)
(U  B | M)
(U  M | B)
(U  S | B, R)
(U  S | M, B, R)
(M  U, B)
(M  B | U)
(M  U | B)
(M  S | B, R)
(M  S | U, B, R)
(S  U, M | B, R)
(S  M | U, B, R)
(S  U | M, B, R)
(B  U, M)
(B  M | U)
(B  U | M) 
  • representacion_compacta: utiliza la funcion de la libreria pgmpy get_cpds() para obtener todos los cpds y los escribe en un string que lo regresa de la siguiente manera:
+------+------+
| M(0) | 0.95 |
+------+------+
| M(1) | 0.05 |
+------+------++------+------+
| U(0) | 0.85 |
+------+------+
| U(1) | 0.15 |
+------+------++------+-----+
| B(0) | 0.9 |
+------+-----+
| B(1) | 0.1 |
+------+-----++------+------+------+------+------+
| R    | R(0) | R(0) | R(1) | R(1) |
+------+------+------+------+------+
| B    | B(0) | B(1) | B(0) | B(1) |
+------+------+------+------+------+
| S(0) | 0.98 | 0.88 | 0.95 | 0.6  |
+------+------+------+------+------+
| S(1) | 0.02 | 0.12 | 0.05 | 0.4  |
+------+------+------+------+------++------+------+------+------+------+------+------+------+------+
| M    | M(0) | M(0) | M(0) | M(0) | M(1) | M(1) | M(1) | M(1) |
+------+------+------+------+------+------+------+------+------+
| B    | B(0) | B(0) | B(1) | B(1) | B(0) | B(0) | B(1) | B(1) |
+------+------+------+------+------+------+------+------+------+
| U    | U(0) | U(1) | U(0) | U(1) | U(0) | U(1) | U(0) | U(1) |
+------+------+------+------+------+------+------+------+------+
| R(0) | 0.96 | 0.86 | 0.94 | 0.82 | 0.24 | 0.15 | 0.1  | 0.05 |
+------+------+------+------+------+------+------+------+------+
| R(1) | 0.04 | 0.14 | 0.06 | 0.18 | 0.76 | 0.85 | 0.9  | 0.95 |
+------+------+------+------+------+------+------+------+------+
  • completamente_descrita: Esta funcion devuelve el resultado booleano (true/false) de la comprobacion de si el modelo esta correctamente definido. Utiliza la funcion de pgmpy check_model().

Para crear una instancia del modelo bayesiano se debe de crear un diccionario de la siguiente forma:

{
    'nodos' : ...
    'edge' : ...
    'probabilidad' : [[nodo, [probabilidades], [evidencia], [evidence_card]]]
}

Un ejemplo de esta implementación es lo siguiente:

parametros = {
    'nodos': ['M', 'U', 'R', 'B', 'S'],
    'edge': [['M','R'], ['U','R'], ['B','R'], ['B','S'], ['R','S']],
    'probabilidad':     [['M', [[0.95], [0.05]],[], []], ['U', [[0.85], [0.15]],[], []], ['B', [[0.90], [0.10]],[], []], ['S', [[0.98, .88, .95, .6], [.02, .12, .05, .40]],['R','B'], [2,2]],
        ['R', [[0.96, .86, .94, .82, .24, .15, .10, .05], [.04, .14, .06, .18, .76, .85, .90, .95]],['M','B', 'U'], [2,2,2]]],

}

Luego ese diccionario se envia como parametro a la funcion BayesModel de la siguiente manera: bayes = fca.BayesModel(parametros). Luego de esto se puede hacer uso de las funciones explicadas anteriormente.

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

fcabayesian-0.0.4.tar.gz (3.6 kB view details)

Uploaded Source

Built Distribution

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

fcabayesian-0.0.4-py3-none-any.whl (3.4 kB view details)

Uploaded Python 3

File details

Details for the file fcabayesian-0.0.4.tar.gz.

File metadata

  • Download URL: fcabayesian-0.0.4.tar.gz
  • Upload date:
  • Size: 3.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for fcabayesian-0.0.4.tar.gz
Algorithm Hash digest
SHA256 37f1ec9c485ac219f61f553494c9ade8b4805e21f573f253e5cdeefef5fe2d45
MD5 2d82ba91b703f99cae974efaf60cd901
BLAKE2b-256 ef601388a0ec5cc17c4f74cda55daa482a8ea2fe5b1a66173ac5bafd9ead289d

See more details on using hashes here.

File details

Details for the file fcabayesian-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: fcabayesian-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 3.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for fcabayesian-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 5e895e69abeed425b5b5db3c7139dae8905ac21bcae200c6ced87340b13e2f21
MD5 96a881c02c6bc38faa83c42d7c40e9db
BLAKE2b-256 7e656f3c4e7bca40d9fd2f3e2e5fae70b3dcf23efed384d03710d6b11a38d49c

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