Skip to content

[54th Place] Repository for Challenge 01 - Bantotal of the IBM Maratona Behind the Code 2021

License

Notifications You must be signed in to change notification settings

jorgerodriguezm/LoanRiskPredictionBantotal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

About this Repository

The goal of this repository is to use the data provided by Bantotal to create a machine learning model capable of performing a risk analysis to predict whether or not a loan should be made to a client.

Finished at 54th Place - F1_Score: 0.77

Model in this Repository:

Certificate

Desafio 01 | Bantotal

Para ayudarte

1. Sobre Bantotal

1.1. Introducción

Bantotal es la plataforma bancaria líder en América Latina, que resuelve la operativa de misión crítica de las Instituciones Financieras en forma simple y precisa.

La plataforma bancaria Bantotal ingresa al mercado en 1991 y se convierte en líder para América Latina. Su casa central se encuentra en Uruguay, donde también se ubican su Departamento de I+D, su Centro de Servicios de Mantenimiento global y su Centro de Capacitación. Cuenta con oficinas comerciales y de servicios en: Argentina, Chile, Colombia, México, Perú y Uruguay. Sus Centros de Desarrollo de Software están ubicados en Perú y Uruguay.

1.2. Premiación

Bantotal entregará como premio un voucher de compra por valor de USD 500 (quinientos dólares) a las dos personas mejor puntuadas en su desafío.

2. Desafio de negocio

Cada vez que un cliente solicita un crédito a una institución financiera se activan varios procesos y controles internos, necesarios para la evaluación de la solicitud recibida. De esta forma, se analizan manualmente mucha información vinculada al perfil del cliente, destinos del crédito, actividad laboral, ingresos, condiciones de la vivienda, entre otros datos demográficos.

Adicionalmente, la institución hace uso de los denominados Buró de créditos para conocer el historial crediticio del cliente con el fin de definir su perfil crediticio. Junto con otros historiales propios, información proveniente de otros créditos, nivel de cumplimiento y comportamiento en sus productos contratados, la institución aprueba un monto a prestar y un plazo para su devolución, o rechaza la solicitud.

3. Objetivo

El desafío consiste en crear un modelo de inteligencia artificial capaz de realizar un análisis de riesgo para predecir si se debe o no realizarse un préstamo a un cliente. Para ello, se espera el uso de un modelo de Machine Learning capaz de realizar una clasificación.

El modelo se puede desarrollar en la plataforma Watson Studio y debe publicarse en una instancia de Watson Machine Learning.

El modelo debe entrenarse con el conjunto de datos disponible en este repositorio, que contiene datos de clientes bancarios como datos demográficos, sus cuentas y préstamos realizados.

4. Tecnologias aplicadas

Para este desafío se utilizarán los siguientes servicios de IBM Cloud:

  • Watson Studio, también conocido como Cloud Pak for Data as a Service. Este servicio permite el uso de una variedad de herramientas relacionadas con la ciencia de datos, incluida la ejecución de Jupyter Notebooks con procesadores en la nube.

  • Watson Machine Learning (WML). Este servicio proporciona una serie de recursos para crear, capacitar y publicar modelos de aprendizaje automático. Para la validación del desafío, solicitamos a los participantes que envíen sus modelos en forma de publicación WML. De esta manera, será posible validar el modelo mediante llamadas HTTP.

Recomendamos usar el lenguaje Python, con Jupyter Notebooks, por lo que que proporcionamos ejemplos de código con estas herramientas, para usarlos en Watson Studio.

Sin embargo, el participante es libre de usar el lenguaje y la herramienta que desee para resolver el desafío, siempre que pueda publicar el modelo en Watson Machine Learning.

Pueden consultarse los frameworks compatibles en esta página.

5. Desarrollo de la Solución

5.1. Pre-requisitos

Para realizar este desafío, debe cumplir con los siguientes requisitos previos:

  • Registrarse en la Maratón Behind the Code y confirmar su correo electrónico de registro;
  • Tener una cuenta de IBM Cloud, que puede ser Lite o Pay-As-You-Go (no es necesario registrarse para el evento con la misma dirección de correo electrónico utilizada para crear su cuenta de IBM Cloud).

5.2. Resumen de Tareas

  1. Cree una instancia de los servicios del desafío en IBM Cloud: Watson Machine Learning (obligatorio). Object Storage y Watson Studio (opcionales);
  2. Si utiliza Watson Studio, descargue el proyecto e impórtelo a su servicio;
  3. Lea y ejecute las instrucciones contenidas en el Jupyter Notebook;
  4. Cambie, valide y pruebe su modelo de Machine Learning, hasta que esté satisfecho con el resultado;
  5. Cree un deployment de Watson Machine Learning con su modelo;
  6. Submita su solución en la página del desafío.

5.3. Desarollo

El desafío es desarrollar un modelo de Machine Learning para predecir el riesgo de un préstamo, basado en la información bancaria. Deberá explorar los datos, procesarlos y crear el modelo para la predicción.

El modelo debe recibir los siguientes datos como entrada:

[
  "ID",                             # Número identificador del cliente
  "CHECKING_BALANCE",               # Saldo que posee el cliente en su cuenta corriente
  "PAYMENT_TERM",                   # Cantidad de días que el cvliente posee para pagar el préstamo
  "CREDIT_HISTORY",                 # Situación crediticia pasada del cliente
  "LOAN_PURPOSE",                   # Motivo del préstamo
  "LOAN_AMOUNT",                    # Monto del préstamo
  "EXISTING_SAVINGS",               # Saldo de cuenta de ahorros
  "EMPLOYMENT_DURATION",            # Cuántos años ha permanecido el cliente en su empleo
  "INSTALLMENT_PERCENT",            # Cantidad de cuotas en las que el préstamo debe ser pagado
  "SEX",                            # Sexo del cliente
  "OTHERS_ON_LOAN",                 # Denota la existencia de un garante u otro solicitante del préstamo
  "CURRENT_RESIDENCE_DURATION",     # Años que el cliente ha permanecido en su última residencia
  "PROPERTY",                       # Indica si el cliente posee alguna propiedad a su nombre
  "AGE",                            # Edad del cliente
  "INSTALLMENT_PLANS",              # Plan de financiamiento, que puede ser del banco, externo o ninguno
  "HOUSING",                        # Indica si el cliente posee una casa propia
  "EXISTING_CREDITS_COUNT",         # Número de préstamos que le han sido concedidos al cliente en el pasado
  "JOB_TYPE",                       # Tipo de empleo: 0 - desempleado, 1 - no calificado, 2 - autónomo, 3 - calificado
  "DEPENDENTS",                     # Número de personas con acceso a la cuenta
  "TELEPHONE",                      # Denota si el cliente tiene un número de teléfono registrado
  "FOREIGN_WORKER"                  # Denota si el cliente trabaja en un país fuera del banco
]

Y como salida un valor binario que representa si se debe permitir o no el préstamo (0 para no, 1 para sí).

Atención: los datos proporcionados en este desafío son ficticios, cualquier correlación con la realidad es mera coincidencia.

Para comenzar, sigue el paso a paso a continuación para importar el proyecto del desafío con los datos y el Notebook en Watson Studio. Alternativamente, también puedes ejecutar el Notebook en otros entornos. En el Notebook encontrarás todas las instrucciones para crear un modelo de Machine Learning y publicarlo en Watson Machine Learning.

Importación de un proyecto a Watson Studio

Primero, cree una instancia de Watson Studio en su cuenta de IBM Cloud, si aún no la tiene, e ingrese a página de inicio de IBM Cloud Pak for Data as a Service a través de la instancia.

Descargue el archivo project.zip que se encuentra en este repositorio.

En la página de inicio, en la sección Work with data, haga clic en Create a project.

creando-proyecto

Después de abrir la nueva página, haga clic en Create a project from a sample or file.

creando

Haga clic en Drop a file here or browse for file to upload o arrastra tu archivo al área resaltada.

seleccionar-archivo

Después de cargarlo, dale un nombre a tu proyecto y una descripción, si así lo deseas.

naming

¡Listo!

Ahora simplemente ve a la pestaña Assets de tu proyecto para ver la lista de archivos y Notebooks.

assets.png

Desde aquí, podrás abrir el Notebook en tu proyecto y seguir las instrucciones para llevar a cabo el desafío.

6. Envío

Una vez tenga el modelo listo, el último paso es realizar el envío. Recuerde que sólo se aceptará un envío para el desafío, así que pruébelo bien antes de enviarlo.

🚨 CAMBIO EN EL MECANISMO DE ENVÍO 🚨

Debido a problemas con los límites del plan gratuito de Watson Machine Learning, cambiamos el sistema de envío para solicitar un archivo CSV. Para entregar el desafío, debe cambiar el archivo con la tabla de respuestas disponible en ese repositorio, completando el valor de la columna ALLOW en las 1000 líneas del archivo con las predicciones de su modelo (valores 0 o 1). Evaluaremos su solución en función de las respuestas en el archivo CSV.

Para enviar, debe acceder a la página de desafío: https://maratona.dev/challenge/1 y enviar el archivo CSV con las respuestas, junto con un archivo .zip, hasta 10 MB, que contiene el código fuente de la solución (recuerde eliminar las dependencias y los conjuntos de datos para que no ocupen espacio). La página probará el archivo CSV para verificar que se encuentra en el formato correcto.

Podrá seguir el estado de la entrega accediendo a la página del desafío, iniciando sesión en su cuenta.

7. Sobre la evaluación

Una semana después del inicio del desafío, nuestro sistema de evaluación automatizado iniciará las evaluaciones. Utilizará los datos para calcular una puntuación numérica del 1 al 100, basado en la métrica F1. El archivo .zip enviado debe contener todo el código utilizado para obtener la solución. De lo contrario, la puntuación será cero.

Si el desafío se entrega dentro del plazo de envío (hasta el 21 de noviembre), el participante recibirá una bonificación del 10% de la puntuación total (10 puntos), independientemente del resultado de su desafío. Por tanto, la puntuación máxima posible es 110 (puntuación de 100 + bonificación de 10).

Después del plazo de envío, el participante aún puede realizar su envío hasta el 12 de diciembre, pero sin recibir el bono.

Atención: nos reservamos el derecho de darle a um envío cero de puntuación si:

  • El código fuente enviado no es consistente con los resultados obtenidos de las pruebas en el modelo.
  • Se detecta plagio, de uno o más participantes. En este caso, se dará cero puntos al desafio entregado por todos los participantes con la misma solución.

Materiales de apoyo

Recuerda que puedes acceder al Discord oficial del Maratón 2021 para hacer preguntas y/o interactuar con otros participantes: Discord.

License

Copyright 2021 Maratona Behind the Code

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

About

[54th Place] Repository for Challenge 01 - Bantotal of the IBM Maratona Behind the Code 2021

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published