Calculadora Inmobiliaria LP — Una aplicación de Machine Learning

Carlos Mendieta
Data Science Bolivia
5 min readFeb 18, 2020

Desde el comienzo de la existencia el lugar donde vivir fue una necesidad para el ser humano, que en una mayoría de los casos no logra ser satisfecha del todo, ya sea por el precio de los lugares o simplemente debido a una falta de información.

Hoy en día en La Paz, ciudad de Bolivia, como en muchos otros lugares la compra y venta de departamentos es una de las principales formas de llegar, justamente, a satisfacer esa necesidad.

A continuación, por ejemplo, podemos observar algunos datos que fueron publicados en el año 2018 acerca de la demanda inmobiliaria en el eje troncal del país, observando que mas de la mitad de personas en La Paz no tenían casa propia.

Es por eso que para ‘democratizar la información’ y permitir que cada vez mas personas puedan conocer un precio real de estos departamentos, desarrollamos el presente proyecto que se enfocaría en calcular el precio aproximado de un departamento de determinadas zonas en la ciudad de La Paz.

A continuación, mostraremos los resultados de este proyecto que además fue realizado a modo de conclusión del curso enfocado en Machine Learning (Aprendizaje supervisado) dictado por miembros de Saturdays.AI en La Paz y Data Science Bolivia

1.- Obtención de datos

Los datos que obtuvimos son procedentes de páginas web propias de startups que se especializan en la búsqueda y publicación de información de venta, alquiler y anticrético de todo tipo de inmuebles. En este caso de dos páginas en específico como lo son Ultracasas e Infocasas

De estas páginas obtuvimos más precisamente algunos parámetros específicos:

  • Superficie en metros cuadrados.
  • El número de dormitorios.
  • El número de baños
  • La existencia o no de cocina
  • El acceso o no de garaje y lavandería
  • El precio
  • La zona

En cuanto a este último parámetro se analizó las zonas que tenían mayor afluencia de vendedores como de compradores de departamentos, siendo las resultantes:

  • Alto Calacoto
  • Calacoto
  • Achumani
  • Alto Obrajes
  • Cota Cota
  • Miraflores
  • Obrajes

Se obtuvieron 200 datos, de estos se dividió en un 70% para un set de entrenamiento y un 30% para un set de prueba. Estos datasets están disponibles en nuestro repositorio de Github: https://github.com/TheWeenhayek/real_state_calculator_LP

2.-Análisis y tratamiento de datos

Una vez con estos datos, se importaron desde el repositorio de Github a un notebook en este caso utilizando la herramienta Colab de Google, y el lenguaje de programación Python:

Tanto el Test Set:

url_test_set='https://raw.githubusercontent.com/TheWeenhayek/real_state_calculator_LP/master/TestVF.csv'test_set=pd.read_csv(url_test_set, sep=';')

Como el Train Set:

url_train_set='https://raw.githubusercontent.com/TheWeenhayek/real_state_calculator_LP/master/TrainVF.csv'train_set=pd.read_csv(url_train_set, sep=';')

Observando una muestra del Set de entrenamiento a continuación:

Para el análisis matemático que se le dará posteriormente es necesario codificar los parámetros que tienen un contenido en texto:

La existencia o no de garaje y de lavandería:

train_set['Garaje'].replace(['SI','NO'],[1,0],inplace=True)
train_set['Lavandera'].replace(['SI','NO'],[1,0],inplace=True)

Las 7 zonas que escogimos:

train_set['Zona'].replace(['ALTO CALACOTO','CALACOTO','ACHUMANI','ALTO OBRAJES','COTA COTA','MIRAFLORES','OBRAJES'],[6,5,4,3,2,1,0],inplace=True)

Luego de un análisis se observó que todos los departamentos tenían cocina y no más de una; entonces se decidió eliminar ese feature del conjunto de datos tomados, así como el feature referido al número de fila:

train_set=train_set.drop(['Cocina','N'],axis=1)

3.-Modelo a usar

Hasta este punto tendríamos un dataset limpio listo a ser utilizado en un modelo, la decisión de este modelo es el siguiente paso a ser analizado.

Para eso se realizaron graficas que nos muestran relaciones de los features más sobresalientes en contraste con el target, que para este proyecto fue el precio del departamento:

Relación entre el precio del departamento y el número de sus habitaciones
Relación entre el precio del departamento y el tamaño de su superficie

De estos se concluye que el modelo de Linear Regression sería el que mejor desempeño tendrá el momento de predecir el precio de un departamento. Siendo los features de crecimiento lineal y el resultado no es binario como es propio de otros modelos también conocidos.

4.- Implementación del modelo

Del Set de entrenamiento se separa la columna de precio en diferentes arrays

X=np.array(train_set.drop(["Precio"],1))Y=np.array(train_set["Precio"])

El propio Train Test se divide en 70/30 para su implementación del modelo y verificación mediante el parámetro de confianza:

X_train, X_test, Y_train, Y_test=train_test_split(X,Y,test_size=0.3)lr= LinearRegression() 
lr.fit(X_train, Y_train)
confianza=lr.score(X_test,Y_test)

Para este análisis obtuvimos una confianza de: 0.7115994305432252

4.- Análisis de resultados

En el siguiente gráfico se observa una comparación de los valores propios del dataset con otros predichos con el modelo antes enseñado:

Para un uso más adecuado se realizó una especie de interfaz en la cual el usuario sencillamente coloca números correspondiente a las características anteriormente expuestas y obtiene el valor aproximado de ese departamento con esas caracteristicas en dólares:

5.- Viendo hacia el futuro

Este proyecto fue realizado por Lency Paz, Carola Quisbert y Carlos Mendieta dentro de la curricula del curso de Machine Learning impartido por miembros de Saturdays.AI y Data Science Bolivia como una manera de aplicar lo que aprendimos durante este curso a la realidad boliviana, intentando plantear una solución a un problema que esperamos se vaya solucionando poco a poco.

Con el fin de que este nuestro proyecto vaya creciendo con el tiempo, en un futuro cercano, se recomendaría trabajar con una mayor cantidad de datos, buscando diferentes fuentes de información. Además, trabajar con datos históricos para que estos datos se puedan proyectar mediante un modelo y la calculadora pueda detectar precios en el tiempo y no solo en el momento actual.

¡Gracias por tomarte el tiempo de leer! te agradecería un montón darle un aplauso a este artículo. Asegúrate de seguir a Data Science Bolivia para estar al tanto en nuevas publicaciones relacionadas a Inteligencia Artificial, Machine Learning, Data Science y más.

--

--