Giter Site home page Giter Site logo

anomalydetection's Introduction

Detección de abandono de estudiantes universitarios

Este proyecto utiliza análisis de datos y detección de anomalías para identificar a los estudiantes que están en riesgo de abandonar la universidad. El objetivo es poder predecir con la mayor antelación posible si un estudiante está en riesgo de abandonar, permitiendo a la universidad intervenir y proporcionar apoyo adicional si es necesario.

Estructura del proyecto

El proyecto se compone de dos servicios principales definidos en un archivo docker-compose.yml:

  • anomaly_detection: este es el servicio principal que realiza el análisis de datos y la detección de anomalías. Este servicio se basa en un Dockerfile en la carpeta anomalyDetection y monta esta carpeta en /app dentro del contenedor.

  • db: este servicio ejecuta una base de datos MySQL. Los scripts SQL para inicializar la base de datos se encuentran en la carpeta /database/sql y los archivos CSV para poblar la base de datos se encuentran en la carpeta /database/csv. Esta base de datos está expuesta en el puerto 3306.

Ejecutar el proyecto

Establecer el fichero .env

Establece las variables de entorno MYSQL_HOST,MYSQL_USER,MYSQL_PASSWORD,MYSQL_ROOT_PASSWORD y MYSQL_DATABASE con los valores deseados en un fichero .env.

Instala las imagenes de docker para TimeEval

Los algoritmos de TimeEval funcionan por imagenes de docker, por tanto hay que instalarlas. Para instalarlas se hace con los siguientes comandos:

docker pull ghcr.io/timeeval/autoencoder:0.3.0
docker pull ghcr.io/timeeval/dae:0.3.0
docker pull ghcr.io/timeeval/lstm_vae:0.3.0

Descargar los datos

Por temas de tamaño, los archivos de datos no se incluyen en el repositorio. Para descargarlos, descargue los ficheros del enlace indicado en dependencias. Esto descargará los archivos CSV necesarios para poblar la base de datos.

Establecer los algoritmos a ejecutar en el fichero config.yaml

En este fichero se establecen los algoritmos a entrenar y ejecutar. A continuación se muestra un ejemplo:

algorithms:
  - name: dae
    reportFile: "allReports.csv"
    train:
      - data_file: "dataset.csv"
        model_output: "dae_model.pkl"
        parameters:
          latent_size: 30
          epochs: 5
    test:
      - data_file: "dataset.csv"
        model_input: "dae_model.pkl"
    train-test:
      - data_file_test: "dataset.csv"
        data_file_train: "dataset.csv"
        model: "dae_model.zip"
        parameters:
          latent_size: 10
          epochs: 5

Ejecutar el proyecto

Para ejecutar el proyecto, simplemente ejecute el siguiente comando en la raíz del proyecto:

docker-compose up

Por temas de tamaño, los archivos de datos no se incluyen en el repositorio. Para descargarlos, descargue los ficheros del enlace indicado en dependencias. Esto descargará los archivos CSV necesarios para poblar la base de datos.

Dependencias

Se usan los datos de Open University Learning Analytics dataset y los algoritmos de TimeEval-algorithms , aunque en primeras iteraciones se han usado los algoritmos de pyod, pero estos no requieren instalación adicional.

anomalydetection's People

Contributors

02alvaro avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.