Cómo buscar buenos precios en coches de segunda mano con WebScraping, Big Data & Machine Learning
Después de hacer el Web Scraping y obtener los precios de los vehículos que me gustaban, ya podía empezar a comparar precios. Pero entonces pensé: ya que estoy automatizando este proceso, ¿por qué no desarrollar un programa que, mediante un algoritmo de regresión lineal, prediga si estoy a punto de hacer una buena o una mala compra? De esta manera, podría saber si el precio de una furgoneta, considerando su kilometraje, es razonable o excesivo. Y eso fue exactamente lo que hice.
Para lograr esto, pasé varios días investigando, ya que nunca había hecho nada relacionado con estadística ni mucho menos con Machine Learning. Finalmente, desarrollé un programa capaz de entrenar un modelo de regresión lineal. Este modelo utiliza dos parámetros, conocidos como coeficientes (Theta), para ajustar una línea que minimiza la diferencia entre los precios reales y los precios predichos. La función de coste que utilicé mide el error cuadrático medio entre los precios observados y los predichos durante el entrenamiento del modelo. Al minimizar esta función de coste, el modelo ajusta sus parámetros para hacer predicciones más precisas.
En mi caso, como ya tengo mi archivo .csv con todos los precios de las Volkswagen Caddy, decido usar la primera opción y especificar el archivo desde donde se va a nutrir. Más tarde, el programa me pedirá varias opciones de entrenamiento, como el modo visual, entre otras. Estas son características que he añadido, pero no afectan al funcionamiento del modelo.
La línea roja que puedes ver en medio de todos los datos es la que determina el valor que el modelo predice según el kilometraje que le indiquemos. Con todo esto, el modelo ya estaría entrenado. Sólo tendríamos que buscar un coche en el que esté interesado. Por ejemplo, éste en concreto:
Una vez que hemos seleccionado un coche, debemos acceder al apartado de predicción de precios en el programa donde tendremos que especificar cuántos kilómetros tiene el coche y, como podemos ver, este coche tiene un precio bastante aceptable y no es mucho más caro de lo que debería ser. Por lo que habría que mirar mas en detalle las características del mismo pero si nos guiamos solo por estos valores podría ser una buena compra.
Con toda la información que tenemos, podría ser muy interesante crear un canal de comunicación automatizado (por ejemplo Telegram) que te avise de los coches que salen con un precio inferior al promedio dado sus respectivos kilómetros. Pero eso es algo que voy a dejar para un futuro. Por el momento hasta aquí llega mi estudio sobre coches y lo que se puede hacer con los datos públicos de los mismos.
Si quieres saber más sobre este proyecto que he creado para predecir los precios de los coches utilizando un algoritmo de descenso de gradiente, te dejo aquí el enlace al proyecto en GitHub, escrito en Python. He subido todo el código documentado y bien organizado para que puedas explorarlo. Siéntete libre de curiosearlo y si te apetece colaborar en el!
Muchas gracias por leer el artículo. Si tienes alguna duda o comentario, no dudes en ponerte en contacto conmigo por la vía que prefieras.
Autor: Daniel Pavón Gómez, área CISO de Telefónica Innovación Digital
Powered by WPeMatico