Este repositorio contiene un script desarrollado en R que aplica técnicas de Machine Learning no supervisado para descubrir reglas de asociación en transacciones contables categóricas, empleando el algoritmo Apriori del paquete arules.
El objetivo principal de este proyecto es automatizar la clasificación de transacciones contables categóricas mediante reglas de asociación generadas a partir del análisis de transacciones previamente clasificadas de forma manual. Las reglas obtenidas podrán ser implementadas posteriormente en un algoritmo de clasificación automática aplicado a futuros movimientos contables, disminuyendo significativamente la necesidad de intervención manual y optimizando el tiempo dedicado al proceso.
El proceso incluye:
- Limpieza automática del dataset (eliminación de valores vacíos y ceros).
- Conversión automática de todas las columnas a factores.
- Transformación del dataset al formato
transactionsnecesario para Apriori. - Ejecución del algoritmo Apriori con soporte relativo calculado dinámicamente.
- Filtrado automático de reglas redundantes.
- Extracción personalizada de reglas relevantes según configuración previa.
- Exportación automática de resultados en formato CSV (
|como separador) incluyendo un timestamp. - Gestión y reporte detallado de errores.
- R versión 4.0 o superior.
- Paquetes necesarios:
install.packages(c("arules", "arulesViz", "dplyr", "readr", "stringr", "forcats"))Se pueden configurar estos parámetros al inicio del script:
input_file_name: Nombre del archivo CSV de entrada.input_folder: Ruta al directorio que contiene el archivo.min_support_abs: Soporte absoluto mínimo requerido.min_conf: Confianza mínima para considerar una regla válida.min_rule_length: Longitud mínima de las reglas generadas.relevant_rules: Especifica reglas a extraer con campos a predecir y campos a excluir del antecedente.
Ejemplo:
relevant_rules <- list(
list(predicts = "cuenta_contable", exclude_from_lhs = "actividad"),
list(predicts = "actividad", exclude_from_lhs = "cuenta_contable")
)El resultado es exportado automáticamente a un archivo CSV en la misma carpeta del archivo de entrada, nombrado según el patrón:
reglas_asoc_filtradas_yy-mm-dd--HH_MM_SS.csv
El archivo contiene:
lhs: Antecedente de la regla.rhs: Consecuente de la regla.confidence: Confianza de la regla (4 decimales).lift: Métrica de independencia (4 decimales).count: Cantidad absoluta de transacciones que soportan la regla.
Para visualizar adecuadamente en Excel, usa la opción "Texto en columnas" con separador |.
El script incluye manejo de errores, proporcionando mensajes claros y detallados sobre en qué etapa se produjo la falla.