Skip to content

Aprendizaje automático en la celebración de contratos gubernamentales en Colombia.

License

Notifications You must be signed in to change notification settings

santiagoahl/analisis-contratos-gov

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 

Repository files navigation


SECOP
Análisis de contratos gubernamentales en Colombia

Aprendizaje automático para predicción de valor de contratos, agrupamiento de palabras clave y detección de anomalías.

scikit-learn wordcloud nltk gensim pandas

Key FeaturesHow To UseCreditsLicense

screenshot

Características principales

Este proyecto de machine learning tiene como objetivo analizar a detalle la información desplegada por la página oficial de datos abiertos del gobierno de Colombia y del Sistema Electrónico para la Contratación Pública (SECOP), todo con la finalidad de encontrar posibles anomalías, agrupar texto clave del objetivo de los contratos y predecir los gastos.

El conjunto de datos es tomado de SECOP Integrado | Gastos Gubernamentales. A continuación mostramos las características clave del proyecto:

  • El conjunto de datos consta de 1996395 contratos (filas) por 21 columnas. Las columnas constan de la siguiente información:

    • Nivel Entidad
    • Nombre de la Entidad
    • NIT de la Entidad
    • Estado del Proceso
    • Modalidad de Contratación
    • Objeto a Contratar
    • Tipo de Contrato
    • Fecha de Firma del Contrato
    • ID Contrato
    • ID Proceso
    • Valor Contrato
    • Nom Raz Social Contratista
    • URL Contrato
    • Departamento Entidad
    • Municipio Entidad
    • Objeto del Proceso
    • Fecha Inicio Ejecucion
    • Fecha Fin Ejecucion
    • Tipo Contrato (Es una característica duplicada, pero existe)
    • Origen
    • Documento Proveedor
  • Tras limpiar datos duplicados, no relevantes o mal insertados, redujimos el tamaño del conjunto de datos en un 85%.

  • La predicción de gastos utiliza un modelo de regresón con bosques aleatorios, cuyo input es tomado gracias a one-hot-encoding de las siguientes características

    • Nombre de la Entidad
    • Estado del Proceso
    • Objeto a Contratar
    • Municipio Entidad
    • Tipo Contrato
  • Usamos módulos de Scikit-Learn como:

    • sklearn.ensemble.RandomForestRegressor: Predictor de valor de contrato.
    • sklearn.metrics.r2_score : Métrica para evaluar el desempeño del predictor.
  • También se usaron técnicas de procesamiento de lenguaje natural con GenSim y NLTK. Obteniendo palabras clave como

    • mantenimiento
    • prestacion
    • municipio
    • profesionales
    • suministro
  • Finalmente, tomamos los contratos que se salían del 95% de los datos asociados a una distribución normal. Obteniendo 55 contratos anómalos (No por ello producto de acciones fraudulentas): screenshot

¿Cómo usar?

Para ejecutar de manera local este proyecto, siga estos pasos:

# Clone el repositorio
$ git clone https://github.com/santiagoahl/analisis-contratos-gov.git

# Entre a la carpeta del repositorio
$ cd analisis-contratos-gov

Creditos

Este proyecto hace uso de las siguientes librerías y conjuntos de datos:

Licencia

MIT


Web Site santiagoal.super.site  ·  GitHub @santiagoahl  ·  Twitter @sahumadaloz

About

Aprendizaje automático en la celebración de contratos gubernamentales en Colombia.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published