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.23pandas >= 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
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
97fb6e8ab18ced208e9e55e4a3664c6d86dee6c3ea1fa33ca5c21b21afaaa992
|
|
| MD5 |
03b66ccf20c2ad3bc2d1db47aea7d6b0
|
|
| BLAKE2b-256 |
a0927d45a3d1dee9ec416381f4210ac658fac5798c9146a25bae976fdca82590
|
File details
Details for the file inteligenciartificial-0.0.5-py3-none-any.whl.
File metadata
- Download URL: inteligenciartificial-0.0.5-py3-none-any.whl
- Upload date:
- Size: 15.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06ecd5dcc2884e93afe92f18aafabd85f30880877ff96b158462676a60d739a9
|
|
| MD5 |
8c2fba7631beb436e860484efbffde99
|
|
| BLAKE2b-256 |
64d7ff4b4cb17c3493aa30198153431fefc2c0dbb30e3348cb6622aa3fe62d96
|