Sistema de recomendación de inmuebles Bancolombia

Juan Camilo Díaz Z
DataBank by Bancolombia
8 min readMar 8, 2023

Simulación Bayesiana y redes neuronales

Un sistema de recomendación de inmuebles para Bancolombia hace que la experiencia del cliente al conseguir su próxima vivienda sea memorable, ya que con este nuevo sistema el banco te facilita y acompaña desde la etapa de búsqueda de la vivienda personalizada, pasando por la compra del inmueble hasta la legalización del inmueble, tanto para los clientes como los no clientes. Aquí puedes entrar y probarlo tú mismo.

¿Qué se tiene?

Las organizaciones buscan tener mejor calidad de los datos para ofrecerles a su público opciones personalizadas o que se ajusten a sus necesidades, sobre todo en negocios tan particulares como buscar vivienda en la que entran varios detalles en la elección de los clientes y que hoy en día no se tiene información al respecto sobre como recomendar viviendas de acuerdo a las afinidades y composición familiar de los usuarios, lo que para un científico de datos representa un problema, ¿cómo construir un modelo de Machine Learning (ML) sin datos?

por esto se desarrolló un sistema de recomendación en tiempo real basado en cinco preguntas sobre temas fundamentales de interés y difíciles de obtener desde los datos hacia cualquier persona:

  1. Zona geográfica de interés.
  2. Rango de precio de búsqueda.
  3. Presupuesto para cuota inicial.
  4. Gustos y afinidades.
  5. La composición familiar del usuario.

De esta forma el sistema de recomendación se basa en como integrar las respuestas de estas cinco preguntas a un conjunto de inmuebles que satisfaga de la mejor forma las respuestas de cada usuario.

Preguntas 1 y 2: Sistema de recomendación
Preguntas 3, 4 y 5: Sistema de recomendación

Al dar respuesta a estas cinco preguntas y con la ayuda de un sistema de procesamiento de información y un modelo de ML basado en redes neuronales, cada usuario obtiene un conjunto de inmuebles recomendados según sus características, como se muestra a continuación:

Resultado del sistema de recomendación

¿Cómo se hizo?

La forma en cómo se manipulan las respuestas a estas cinco preguntas es clave para obtener una buena recomendación a los usuarios, por esto las tres primeras preguntas se tratan como un conjunto de filtros sobre la base total de inmuebles en la oferta existente, las dos últimas preguntas se tratarán como variables de clasificación que permitirán darle un orden a la base de ofertas resultante después de aplicar el filtro correspondiente mediante las tres primeras preguntas, dando como resultado para cada cliente una lista de recomendaciones donde en primer lugar aparecerá la oferta más recomendada de compra. ahora queda la incógnita de ¿cómo se utilizaron las dos preguntas de clasificación (pregunta 4 y 5) para dar un orden que genere un mayor factor de enganche a los inmuebles ofrecidos?

Pregunta de gustos y afinidades

Dentro de esta pregunta el usuario puede optar por seleccionar cada una de ocho posibles categorías, donde cada variable es dicótoma:

Generando un vector binario del tipo:

adicional cada inmueble seleccionado tiene un vector de características previamente calculado que califica la influencia de cada categoría en cada inmueble:

Al final cada inmueble tendrá un score de gusto que permitirá clasificar los inmuebles de acuerdo a los gustos y afinidades de cada usuario:

Pregunta de composición familiar

La composición familiar es una de las variables que tiene mayor preponderancia a la hora de la búsqueda de una vivienda según grandes portales inmobiliarios y por supuesto es la variable de mayor influencia sobre el tipo de configuración del inmueble (tamaño del inmueble, número de habitaciones y de baños, etc) conllevando a que el tratamiento de esta respuesta sea ideal para el éxito del sistema de recomendación propuesto. Sin embargo, dada la importancia de esta variable y la ausencia de información de parte del banco que contenga una relación entre el número de personas a vivir en un inmueble y las características de un inmueble, se optó por simular una base de datos de modelado que permitiera el ajuste de una red neuronal a partir de la elicitación de una distribución a priori basada en la distribución beta de acuerdo con el conocimiento experto de varias personas del área inmobiliaria.

Una elicitación es el proceso de hallar una distribución de probabilidad de una variable aleatoria donde dichas probabilidades son basadas en el conocimiento de uno o varios expertos acerca de un punto de interés (Finerri 1937). Para la extracción de este conocimiento se diseña un cuestionario de elicitación tomando consideraciones desde el campo de estudio, en este caso el campo inmobiliario.

A continuación, se dará la explicación del algoritmo aplicado para la obtención de una base simulada que dará pie a la estimación de los parámetros de la red neuronal.

Algoritmo de simulación bayesiana implementado:

  1. Se deben fijar los niveles de las covariables de forma adecuada donde:

son puntos de diseño que se eligen en consenso con el experto en este caso, evaluadores de viviendas y asesores comerciales inmobiliarios. Donde:

en la siguiente tabla se describe los puntos de diseño seleccionados para las variables

Cada uno de los puntos descritos en la tabla 1 es combinado con los valores de la variable x_i1 = 1, 2, 3, 4, 5; obteniendo un total de 35 (k=35) puntos de diseño.

La variable respuesta está definida como:

2. Para cada punto de diseño se procede a:

  • Se fija un n y se pide al experto dar el número personas con alguna composición familiar xi1 que comprarían en una muestra hipotética de tamaño n, dígase Y_0, calcule:
  • Para el mismo n se pide al experto dar el número mínimo de éxitos que él esperaría aceptable, Y_I, calcule:
  • Para el mismo n se pide al experto dar el número máximo de éxitos que él esperaría aceptable, Y_S, calcule:

Este paso se hizo con un tamaño n de 100 y una muestra de 16 expertos para cada punto de diseño.

Ejemplo de parte de elicitación realizada

3. A los valores elicitados en el punto dos, se ajusta una distribución beta, debido a que nuestra variable de interés es una variable proporcional. Estima los parámetros α y β de dicha distribución, se define que:

de esta forma los valores de los parámetros α y β de la distribución beta se obtienen de minimizar la siguiente función:

Ejemplo de distribución beta ajustada (1 de 35)

4. Calcule el N equivalente, esto permite cuantificar el conocimiento del experto en términos de tamaño muestral, este tamaño representa realmente el nivel de conocimiento que los expertos tienen en la clasificación adecuada de inmuebles a una composición familiar determinada.

5. Para cada nivel se repiten los siguientes pasos m veces:

  • Genere un valor de la beta con cada uno de los parámetros hallados en el punto tres.
Vector de tamaño k, en nuestro caso k = 35
  • Genere una muestra de valores y a partir de la distribución conjugada de la beta, la distribución binomial.

En este paso se obtiene una matriz de tamaño (n_eq * k)x5, donde n_eq es el N equivalente hallado en el punto cuatro y X_k es una variable que representa los niveles definidos en el punto uno de tamaño cuatro.

En nuestro caso el algoritmo fue construido en el sistema computacional R y obtuvimos una base de datos con un total de 770 mil registros entre todas las combinaciones de puntos de diseño y composiciones familiares con su respectiva variable respuesta.

Ejemplo de base de modelación resultante

El código implementado de este algoritmo se aloja en el siguiente repositorio de GitHub.

Red neuronal ajustada:

A partir de esta base de datos generada, se procedió a entrenar una red neuronal por medio del paquete Keras en el sistema computacional Python con cuatro neuronas de entrada y una capa oculta de seis neuronas con función de activación sigmoide, obteniendo un AUC = 80% en base de validación y prueba.

Puesta en producción

Al tener un modelo donde a partir de las características principales del inmueble (área, número de habitaciones, número de baños) y la respuesta a la pregunta cinco (número integrantes a vivir en el inmueble) es posible dar un score o probabilidad de gusto sobre cada inmueble en oferta de acuerdo con cada cliente.

donde f(.)es el modelo de red neuronal entrenado.

Dado las ecuaciones definidas previamente podemos obtener un score final de clasificación que definirá el orden de recomendación de las ofertas que cumplen las tres primeras preguntas al cliente.

La puesta en producción se realizó a través de una API alojada en AWS donde la información será actualizada con una frecuencia establecida, a continuación, se muestran la arquitectura de software mostrando los componentes utilizados para el fácil consumo del modelo y de los datos de forma continua.

Muchas gracias por leer.

Referencias

  • Correa, J. & Barrera, C. (2021), ‘Elicitation of the parameters of multiple linear models’, Revista Colombiana de Estadística — Applied Statistics 44(1), 159–170.
  • Finerri, B. D. (1937), ‘La prevision: ses lois logigues, ses sources subjectives’, Annal es de I’Institut Henri Poincard 7, 1–68.
  • Tangarife, J. & Correa, J. (2017), ‘Elicitación de una distribución a priori para el modelo logístico’, Comunicaciones en Estadística 10(2), 225–246.

--

--