Proyecto de Data Science. TagMyWatch, encuentra tu reloj

Aurora
Aurora
Proyecto de Data Science TagMyWatch - ID Bootcamps

TagMyWatch es el proyecto de fin de Bootcamp de Data Science y Machine Learning que desarrollaron Mario Vegas Zurdo, Carlos Cedrón Castro, Cristian Dasi Esteve. Se trata de un proyecto enfocado en el mercado de los relojes de lujo que permite identificar y clasificar imágenes de diferentes relojes identificando incluso su valor pensado dentro del mercado de segunda mano. Puedes escuchar y ver la presentación del proyecto a través de este vídeo.

Comenzando por el “Business Understanding” para poder contextualizar la elección de este tema. El mercado de compraventa de relojes es uno de los más punteros en cuanto a la cantidad de dinero que mueve y se prevé que en los próximos años las inversiones seguirán en aumento alcanzando los 36.000 millones de Euros.

Al plantear el proyecto, Carlos, Mario y Cristian observaron que podían identificar claramente tres perfiles de usuario dentro del sector de compraventa de relojes de lujo de segunda mano:

  • Usuarios que buscan un precio más competitivo que el que puede ofrecer el mercado de primera mano.
  • Usuarios que quieren vender sus relojes por diferentes motivos (herencia, falta de uso, etc.)
  • Usuarios que buscan invertir en este mercado.

¿Cómo se desarrolló el proyecto?

Para poder desarrollar TagMyWatch se siguió el recorrido del “Data Science Lifecycle”, ya hemos hablado del primer paso, el “Business Understanding”. El ciclo completo se compondría de:

  1. Business Understanding
  2. Data Mining
  3. Data Cleaning
  4. Data Exploration
  5. Feature Engineering
  6. Predictive Modeling
  7. Data Visualization
Data Science Lifecycle - tagmywatch

Funcionalidades objetivo

 

TagMyWatch y todo su desarrollo tienen claro dos funcionalidades objetivo que desencadenan todo el trabajo de desarrollo del proyecto, estas funcionalidades son:

 

  • El desarrollo de un modelo que sea capaz de detectar la marca de un reloj a partir de una foto o una imagen que sea facilitada por el usuario.
  • La implementación de un modelo predictivo que, a partir de ciertas características del reloj proporcionadas por el usuario, esté adaptado para arrojar con la mayor exactitud posible el precio de ese reloj en el mercado de segunda mano.

 

Data Mining

 

Tiene sentido pensar que lo primero que tenemos que hacer para comenzar un proyecto de Data Science, si dejamos por otro lado la planificación, es encontrar de dónde sacar los datos con los que vamos a trabajar. 

 

La mayoría de los datos fueron extraídos de la web Chrono24.com que es referente en la compraventa de relojes de segunda mano. Lo que hicieron fue hacer web scraping dentro de la web obteniendo más de 1.500 imágenes de los modelos de relojes seleccionados para la clasificación, que son los modelos más icónicos de las diferentes marcas. Estos modelos fueron:

 

  • Rolex Submariner Date
  • Cartier Santos 100
  • Omega Speedmaster Moonwatch
  • Patek Philippe Nautilus
  • Hublot Big Bang

 

Además, sacaron más de 15.000 registros de relojes y sus características de 10 de las marcas más importantes para analizar su precio y poder predecirlo. Estas marcas fueron:

  • Rolex
  • Cartier
  • Omega
  • Patek Philippe
  • Hublot
  • Seiko
  • Tissot
  • Richard Mille
  • Casio

Data Cleaning

Como hemos comentado, para poder extraer los datos se hizo a través de web scraping, el caso es que Chrono24.com, es una página muy segura que protege bien su información, lo que complicó un poco la tarea de extracción. Antes de pasar a los modelos, lo que hicieron fue automatizar algunas funciones de limpieza de datos que agilizaría y facilitaría mucho los siguientes pasos.

Algunas de estas tareas fueron:

  • Eliminación de caracteres extraños y datos vacíos
  • Cambios de formato de las columnas
  • Creación de nuevas columnas
  • Imputación de valores nulos

Data Exploration

Dentro de la exploración de los datos, Carlos, Mario y Cristian, tuvieron que trabajarlos para ver qué variables tenían sentido utilizar para obtener los resultados que querían. 

Una de los cruces principales fue relacionar las marcas con los precios, donde, de entre las 10 marcas seleccionadas al inicio, se encontraron una gran diferencia entre marcas como Tissot, Seiko, Casio o Hamilton con marcas como Omega, Hublot, Rolex o Cartier. Además, si estas últimas marcas las comparamos con Richard Mille o Patek Philippe que pueden costar hasta 300.000€, la diferencia ya es incomparable.

Además de la marca y el precio, también exploraron variables como el material de la caja, la pulsera y el cierre, el perímetro del reloj (muy importante para la parte de identificación), el estado del reloj o las joyas que tiene dentro del calibre.

Modelado predictivo

Después de la limpieza y la exploración de los datos, tenemos todo listo para empezar a trabajar con ellos. Por un lado recordemos que está el reto de poder clasificar las imágenes para averiguar el modelo del reloj y por otro lado poder adivinar el precio. Para la clasificación se utilizó una Red Neuronal y para el precio un modelo de regresión que tiene en cuenta muchas variables categóricas y numéricas.

Para la red neuronal, utilizaron el motor TensorFlow creando diferentes capas, la fueron adaptando, ya que en un inicio crearon demasiadas capas para la muestra que tenían. También pasaron todas las imágenes a blanco y negro ya que era más sencillo para identificar lo modelos y que no se dispersase por los diferentes colores dentro de los mismos modelos, y completaron la red neuronal con redes neuronales preentrenada para mejorar el acierto. Con todos estos cambios consiguieron un acierto del 86,4%.

Respecto al modelo de regresión, que es el que se va a encargar de adivinar el precio del reloj, el primer problema que encontraron fueron los precios extremos, que oscilaban entre los 100€ a los 300.000€ o incluso 6M de euros en modelos de super lujo. Finalmente, para poder acertar más, tuvieron que acotar estos extremos hasta un precio de 100.000€.

Por otro lado, se habían sacado multitud de variables, pero, necesitaban seleccionar las que fueran realmente relevantes para la implementación del modelo y por tanto que hicieran que el modelo acertase más en sus predicciones. Gracias a CatBoost pudieron evaluar la importancia de las variables. Una vez elegidas las variables más relevantes, se pudo poner en marcha el modelo con mejores resultados, para elegir el modelo que más se ajustaba, se tuvo muy en cuenta que la predicción arrojada no hiciera perder dinero al usuario, es decir, que no diera resultados infraestimados. El ganador fue XGBoost.

Deployment o despliegue

Para crear la interfaz, es decir, la parte visual del proyecto, utilizaron la biblioteca de Python gradio para poder mostrar tanto la red neuronal como el modelo predictivo. De esta forma consiguieron armar una aplicación desde la cual probar todo el proyecto.

Sin duda se trata de un gran proyecto que puede perfeccionarse y ampliarse para hacerlo más preciso, cabe destacar el enorme trabajo de Mario Vegas Zurdo, Carlos Cedrón Castro, Cristian Dasi Esteve.

Si tú también estás pensando en desarrollar proyectos como TagMyWatch echa un vistazo a nuestro Bootcamp en Data Science y Machine Learning. ¿Todavía tienes dudas o no sabes cómo entrar al sector IT? Llámanos al 673 903 000, escribe a nuestra Asesora Académica Vanessa Márquez al email vanessa@idbootcamps.com o agenda directamente una llamada con ella.

Compartir
Share on facebook
Share on twitter
Share on linkedin

Entradas Relacionadas