Laboratorio de Programación Científica para Ciencia de Datos

Entregas del curso Laboratorio de Programación Científica para Ciencia de Datos - MDS7202 del Magister de Ciencia de Datos de la Facultad de Ciencias Físicas y Matemáticas de la Universidad de Chile

Integrantes:

Proyecto

Esta primera fase tiene como objetivo la detección de potenciales clientes fraudulentos de una entidad bancaria llamada Bodoque Bank. Para lo cual se cuenta con un set de datos The Bank Account Fraud (BAF), que contiene registros de clientes bancarios y sus características demográficas y también las que tienen que ver con su relación con la organización. En total, son 32 variables que describen desde los ingresos, edades, situación de residencial y laboral, entre otras características demográficas, hasta si el banco los considera como clientes que cometen fraude, el medio de pago que ocupan, antiguedad de la cuenta, entre otros atributos bancarios.

El desarrollo de este objetivo considera dos tareas principales que se listan a continuación:

  1. Generar un Análisis exploratorio de Datos (EDA) que describa set de datos. Esto mediante cálculo de métricas y visualizaciones, así cómo también con el procesamiento de datos.

  2. Buscar anomalías de forma automatizada. Esto mediante la aplicación de algoritmos de "novelty detection".

  1. Crear un modelo para identificar clientes riesgosos

Laboratorios

Objetivos:

  • Conocer los elementos básicos que conformar Git.
  • Clonar repositorios.
  • Identificar ramas de un repositorio.
  • Reconocer y solucionar problemas entre ramas.
  • Subir cambios a un repositorio.

Objetivos:

  • Variables, Operadores y Expresiones.
  • Estructuras de Control (if/else).
  • Iteraciones.
  • Listas y Diccionarios.
  • Funciones.
  • Programación Orientada a Objetos (Encapsulamiento, Polimorfismo y Herencia).

Objetivos:

  • Aplicar los paradigmas y buenas prácticas de programación vistas hasta este momento.
  • Comprender y aprovechar las ventajas que nos ofrece la liberia numpy con respecto a trabajar en Python 'puro'.
  • Visualizar aplicaciones de filtros de imágenes sin el uso de librerías.
  • Verificar que el uso indiscriminado de for puede afectar en la eficiencia en al procesar datos masivos.

Objetivos:

  • Entender, aplicar y aprovechar las ventajas que nos ofrece la libreria pandas para manejar datos tabulares.
  • Aprender a utilizar la documentación de pandas (y en general, de cualquier librería de python) como también a buscar soluciones en la web.

Objetivos:

  • Aplicar y aprovechar las ventajas que nos ofrece la libreria pandas.
  • Utilizar plotly para obtener información gráfica del dataset.
  • Aplicar el Análisis Exploratorio de Datos a un caso en particular.

Objetivos:

  • Aplicar los paradigmas y buenas prácticas de programación vistas hasta este momento.
  • Comprender y aprovechar las ventajas que nos ofrece la liberia numpy con respecto a trabajar en Python 'puro'.
  • Visualizar aplicaciones de filtros de imágenes sin el uso de librerías.
  • Verificar que el uso indiscriminado de for puede afectar en la eficiencia en al procesar datos masivos.

Objetivos:

  • Comprender y aprovechar las ventajas que nos ofrece la librería pandas con respecto a trabajar en Python "puro".
  • Crear nuevas características para entrenar un modelo de clustering.
  • Comprender como aplicar pipelines de Scikit-Learn para generar procesos más limpios.

Objetivos:

  • Comprender el funcionamiento de clasificadores/regresores.
  • Generar múltiples modelos predictivos.
  • Comprender las ventajas de crear modelos en pipeline vs hacer las operaciones a mano.

Objetivos:

  • Obtener caracteristicas a partir de texto usando CountVectorizer.
  • Fijar un pipeline con un modelo base que luego se irá optimizando.
  • Comprender como realizar una búsqueda de grilla sobre un conjunto de clasificadores e hiperparámetros usando GridSearch.

Objetivos:

  • Generar un pipeline de clasificación con XGBoost.
  • Implementar modelos de interpretabilidad Global (Partial Dependence Plot, Permutation Feature Importance) y Local (Scoped Rules, SHAP) para explicar el funcionamiento del modelo de clasificación.

Objetivos:

  • Automatizar el flujo de vida de un proyecto de machine learning usando kedro
  • Formatear código usando flake8, isort y black
  • Registrar y comparar modelos a través de MLflow