Skip to main content

Librería de algoritmos de Inteligencia Artificial en Python.

Project description

Paquete Inteligencia Artificial

Paquete de algoritmos de Inteligencia Artificial para aprendizaje de estructura de Redes Bayesianas.

Instalación

pip install inteligenciartificial

O desde fuente local:

pip install ./fia

Uso

Algoritmos de aprendizaje de estructura

K2

Algoritmo greedy que requiere un orden topológico de variables. Agrega padres iterativamente si mejoran la métrica de scoring.

from inteligenciartificial.modelografosprobabilisticos.busqueda import K2
from inteligenciartificial.modelografosprobabilisticos.metricas import Entropia, BIC

orden = ["Churn", "tenure_cat", "OnlineSecurity", "TechSupport", "Contract"]
k2 = K2(orden, max_padres=4, df=df_train, metrica=Entropia())
# [K2] Grafos explorados: 35 | Tiempo: 0.1234 s | Throughput: 283.61 grafos/s

modelo = k2.fit(X_train, y_train, alpha=1.0)

Hill-Climbing

Algoritmo de búsqueda local que parte de un grafo vacío y en cada paso evalúa operaciones de agregar, eliminar e invertir aristas, seleccionando la que mayor mejora produce.

from inteligenciartificial.modelografosprobabilisticos.busqueda import HillClimbing
from inteligenciartificial.modelografosprobabilisticos.metricas import BIC

variables = ["Churn", "tenure_cat", "OnlineSecurity", "TechSupport", "Contract"]
hc = HillClimbing(variables, max_padres=4, df=df_train, metrica=BIC(), max_iter=100)
# [HillClimbing] Grafos explorados: 420 | Tiempo: 1.5678 s | Throughput: 267.90 grafos/s

modelo = hc.fit(X_train, y_train, alpha=1.0)

Métricas de throughput

Ambos algoritmos (K2 y Hill-Climbing) reportan automáticamente al finalizar el entrenamiento:

Atributo Descripción
grafos_explorados Cantidad de configuraciones de grafo (conjuntos de padres) evaluadas
tiempo_segundos Tiempo total de la búsqueda de estructura en segundos
throughput Tasa de exploración: grafos_explorados / tiempo_segundos (grafos/s)
print(k2.grafos_explorados)   # e.g., 35
print(k2.tiempo_segundos)     # e.g., 0.1234
print(k2.throughput)           # e.g., 283.61

Métricas de scoring

Métrica Descripción
Entropia Usa -H(X|Pa) como score (mayor es mejor)
BIC Bayesian Information Criterion con penalización (k/2)*log(N)

Modelos

  • RedBayesiana: Red Bayesiana discreta con CPTs estimadas por conteos + suavizado Dirichlet(alpha).
  • NaiveBayes: Caso especial donde todas las features dependen únicamente de la clase.

Dependencias

  • numpy >= 1.23
  • pandas >= 1.5

Licencia

MIT

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

inteligenciartificial-0.0.5.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

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

inteligenciartificial-0.0.5-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

Details for the file inteligenciartificial-0.0.5.tar.gz.

File metadata

  • Download URL: inteligenciartificial-0.0.5.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for inteligenciartificial-0.0.5.tar.gz
Algorithm Hash digest
SHA256 97fb6e8ab18ced208e9e55e4a3664c6d86dee6c3ea1fa33ca5c21b21afaaa992
MD5 03b66ccf20c2ad3bc2d1db47aea7d6b0
BLAKE2b-256 a0927d45a3d1dee9ec416381f4210ac658fac5798c9146a25bae976fdca82590

See more details on using hashes here.

File details

Details for the file inteligenciartificial-0.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for inteligenciartificial-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 06ecd5dcc2884e93afe92f18aafabd85f30880877ff96b158462676a60d739a9
MD5 8c2fba7631beb436e860484efbffde99
BLAKE2b-256 64d7ff4b4cb17c3493aa30198153431fefc2c0dbb30e3348cb6622aa3fe62d96

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