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.
- 1. Sobre Bantotal
- 2. Desafio de negocio
- 3. Objetivo
- 4. Tecnologias aplicadas
- 5. Desarrollo de la Solución
- 5.1. Pre-requisitos
- 5.2. Resumen de Tareas
- 5.3. Desarollo
- 6. Envío
- 7. Sobre la evaluació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.
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.
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.
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.
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.
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).
- Cree una instancia de los servicios del desafío en IBM Cloud: Watson Machine Learning (obligatorio). Object Storage y Watson Studio (opcionales);
- Si utiliza Watson Studio, descargue el proyecto e impórtelo a su servicio;
- Lea y ejecute las instrucciones contenidas en el Jupyter Notebook;
- Cambie, valide y pruebe su modelo de Machine Learning, hasta que esté satisfecho con el resultado;
- Cree un deployment de Watson Machine Learning con su modelo;
- Submita su solución en la página del desafío.
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.
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
.
Después de abrir la nueva página, haga clic en Create a project from a sample or file
.
Haga clic en Drop a file here or browse for file to upload
o arrastra tu archivo al área resaltada.
Después de cargarlo, dale un nombre a tu proyecto y una descripción, si así lo deseas.
¡Listo!
Ahora simplemente ve a la pestaña Assets
de tu proyecto para ver la lista de archivos y Notebooks.
Desde aquí, podrás abrir el Notebook en tu proyecto y seguir las instrucciones para llevar a cabo el desafí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.
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.
- Documentación de Watson Machine Learning
- Introducción a IBM Watson Studio
- Toma el control de tus datos con Watson Studio
- Visualizar datos con Python
- Generar un Python notebook para modelos de pipeline usando AutoAI
- Automatizando Machine Learning como un campeón con Watson AutoAI
- Despliega tu modelo de Machine Learning en la nube con Watson
- ¿Qué es la Analítica predictiva?
- Cree una solución predictiva
- Introducción a IBM Cloud Pak for Data
- Desarrollar modelos de machine learning con y sin AutoML
- Ponga en marcha una solución predictiva
- Ética de Datos: 5 razones de sesgo en modelos de Machine Learning y cómo evitarlos
- Cómo resolver un problema de negocio y pronosticar la rotación de clientes utilizando un conjunto de datos de pérdida de clientes
- Crea un modelo predictivo de machine learning de manera rápida y sencilla con IBM SPSS Modeler
- Construir un predictor del mercado de valores
Recuerda que puedes acceder al Discord oficial del Maratón 2021 para hacer preguntas y/o interactuar con otros participantes: Discord.
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.