A partir de los datos de algunas plataformas de streaming se crea un modelo de recomendación de usando técnicas de machine learning.
En este repositorio encontrarás muchas herramientas que te serán familiares, te explico con más detalle la forma en que se desarrolla el proyecto en el siguiente video.
Comienzo por un proceso de Extract, Transform, and Load (ETL) para integrar toda la información en una base de datos que se utilizará en las siguientes etapas de este proyecto.
Una vez que se tiene asegurada la calidad de los datos, tenía muchas preguntas, como por ejemplo:
- ¿De todas las plataforma cual será la película más larga o de mayor duración? (get_max_duration)
- ¿Qué películas tienen una buena calificacion? (get_score_count)
- ¿Cuántas películas hay? ya que viene mezclada tanto películas como tvshows.(get_count_platform)
- ¿Qué actriz, actor o actores, aparecen en determinada plataforma? (get_actor)
Y que mejor momento que este para crear una API sencilla, y poder compartirla con todos.
La API fue construida con ayuda de FastAPI, he hice un deploy en Deta Space. Para poder acceder a la API,tienes que instalarla, da click en la imagen.
Una vez que ingreses agrega ("/docs") a la direccion url:
Al ingresar podrás ver un menu con consultas, elige alguna de ellas, para probarla.
El EDA nos permite familiarizarnos aún más con los daos, podemos conocer si hay errores, duplicados, valores faltantes, relaciones, entre otros. Uno de los problemas que me enfrenté al usar un dataset tan grande (1.5GB) es que mi computadora no tenia la suficiente capacidad, por lo que tuve que recurrir a tomar solo una muestra y así explorar las librerias especiales para el EDA, como son *pandas profiling, sweetviz, autoviz. Los reportes html que se generan puedes encontrarlos en esta carpeta.
Una vez que tuve el EDA me encontré con nuevas interogantes como son:
- Numero de peliculas que ha calificado cada usuario
- Distribución de las calificaciones
- Película que más calificaciones tiene
- Película que menos calificaciones tiene
- Película más vista
Me pareció importante mencionar estos hallazgos y te invito a que los revises.
Para realizar una recomendación de una película, utilice un filtro colaborativo basado en SVD (Descomposción en Valores singulares), que sirve para reducir la dimensionalidad que para el caso de tanto volumen de datos, acorta los tiempos de procesamiento y la librerría Surprise que ayuda a aplicar los algoritmos de recomendadion.
Este enfoque colaborativo se basa en la idea de que los usuarios con gustos similares calificarán de manera similar las mismas películas.
En el notebook anterior al final encontrarás el código que utilicé para cargar el modelo de ML utilicé Gradio y lo deployé por medio de Hugging Face.
Antes de hacer una prueba revisemos rápidamente algunos identificadores de películas.
Te muestro como hacer una prueba con los datos más básicos:
- Plataformas
- amazon_prime_titles.csv
- disney_plus_titles.csv
- hulu_titles.csv
- netflix_titles.csv
- Ratings
- 1.csv
- 2.csv
- 3.csv
- 4.csv
- 5.csv
- 6.csv
- 7.csv
- 8.csv
Gracias por interesarte en mi proyecto y si tienes alguna duda no dudes en contactarte conmigo.
Angélica García Díaz ---- LinkedIn , mail: angelicagarciad@gmail.com
😇