Skip to content

From an ETL to streaming platform data to the implementation of a recommendation system using Machine Learning.

License

Notifications You must be signed in to change notification settings

hikikae/From-ETL-to-Machine-Learning

Repository files navigation

From ETL to Machine Learning Recomendation

A partir de los datos de algunas plataformas de streaming se crea un modelo de recomendación de usando técnicas de machine learning.


Introduction

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.

Table of Contents

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.

Querys

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.

API

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.

EDA

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.

Gradio y Hugging Face

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

Agradecimiento y Contacto

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

😇

About

From an ETL to streaming platform data to the implementation of a recommendation system using Machine Learning.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published