Skip to content

Conversation

@sanma613
Copy link

Este Pull Request introduce una interfaz gráfica utilizando Kivy, que permite a los usuarios interactuar con el modelo de predicción de precios de viviendas de forma visual e intuitiva.

Funcionalidades implementadas

  • Se agregó un botón que permite al usuario cargar el archivo train.csv mediante un selector de archivos (FileChooserPopup).
  • Una vez cargado el archivo, se ejecuta automáticamente:
    • La división del dataset en conjuntos de entrenamiento, validación y prueba utilizando divide_dataframes.
    • La ingeniería de características con variables categóricas relevantes mediante engineer_features.
    • El entrenamiento del modelo a partir del conjunto de entrenamiento usando train_model.
  • Se añadieron campos de entrada para que el usuario pueda ingresar manualmente:
    • Área habitable (GrLivArea)
    • Año de construcción (YearBuilt)
    • Dormitorios sobre el nivel del suelo (BedroomAbvGr)
  • Al presionar el botón de predicción, se genera un estimado del precio utilizando el modelo previamente entrenado.
  • La predicción se realiza manteniendo la estructura de columnas del DataFrame original, asignando valores cero por defecto y sobrescribiendo solo las variables relevantes.

Integración con la logica existente

La interfaz se integra directamente con la lógica del proyecto:

  • Se utilizan funciones de controller.data_controller para el preprocesamiento de datos (divide_dataframes, engineer_features).
  • El modelo se entrena a través de train_model del módulo model.model_training.

Consideraciones

  • Se realizan validaciones básicas sobre las entradas del usuario para evitar errores al predecir.

@kevincifuentesdev
Copy link
Collaborator

Mejoras de la interfaz

Hay aspectos de la interfaz gráfica que se deben mejorar para que sea entendible por el usuario y funcione de la mejor manera:

1. Botón para subir los archivos

El botón se encuentra muy bien, su funcionalidad es la que se espera y sube correctamente el archivo que se le indique. Pero lo ideal no es que el usuario suba el archivo para el entrenamiento, pues el modelo debe dar el resultado basado en ese archivo y no debe permitir que los usuarios suban algún otro archivo, por lo que este botón no debe estar a disposición del usuario.

2. Living Area (GrLivArea)

Este TextInput no funciona de la manera esperada, pues primero no es intuitivo para el usuario ya que el usuario no conoce la lista de areas disponibles para hacer la consulta, por lo que se sugiere hacer un drop-down (lista desplegable) para listar las ciudades disponibles para la consulta.
Otra cosa es que el TextInput solo deja ingresar valores numéricos y no valores tipo texto.

3. Year Built (YearBuilt)

No se entiende bien para que es necesario el año de construcción para hacer la predicción,

4. Bedrooms Above Ground (BedroomAbvGr)

5. Mensajes de error

Los mensajes de error no son lo suficientemente claros para el usuario, pues no indica directamente cual es el error del usuario pues el error solo dice: Invalid input. Please check values.
Este error no es descriptivo para el usuario pues no cumple con las condiciones de código limpio para un mensaje de error.

sanma613 and others added 3 commits April 18, 2025 10:42
Moved the Kivy contributions to the bottom and edited the format of the commands
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants