Skip to content

tDelbarco/PI_ML_OPS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PROYECTO INDIVIDUAL Nº1

Machine Learning Operations (MLOps)

Índice de Navegación

hola bienvenido a mi proyecto

el proyecto

en este proyecto que tiene como tematica steam() debere tomar tanto el papel de data enginer y data scientist. asi teniendo que realizar el proceso de extraccion, transformacion y carga de los datos(ETL) , analisis exploratorio de datos(EDA) , y generar un modelo de aprendizaje automatico para la recomendacion de juegos para este proyecto se me pide un MVP(minimo producto viable) generar una API que pueda ser consumida segun los criterios de API REST o RESTful desde cualquier dispositivo conectado a internet y que cuente con varias consultas.

las herramientas que utilize fueron las siguientes

Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge

LINK de la api deployada en render

https://pi-ml-ops-c1ks.onrender.com/docs#/


estructura de mi proyecto

en esta seccion hago un resumen de las carpetas y archivos (sus propositos) en este repositorio de github:

|-- PI_ML_Ops/                # Carpeta raíz del repositorio de GitHub

    	|-- Datasets/             # Almacena los archivos JSON comprimidos con los datos(tambien posee cualquier otro archivo resultante a partir de estos que no sea directamente utilizado por la api)
 
    	  	      |-- steam_games.json.gz
    
  		      |-- user_reviews.json.gz
    		
  		      |-- user_items.json.gz
		
  	|-- app/                  # Contiene los archivos esenciales para la API
    	
  		      |-- main.py           # Archivo principal de la aplicación FastAPI
    		
  		      |-- funciones/        # Módulo con funciones auxiliares para la API
        		
       			    |-- funciones.py  # Funciones de manipulación y procesamiento de datos
        			
       			    |-- modelo.py      # Implementación del modelo de machine learning
    		
  		      |-- df_sentimientos.parquet  # Archivo de datos parquet utilizado para la respuesta de la api a la consulta de (sentiment_analysis)

  		      |-- df_recommend.parquet    # Archivo de datos parquet utilizado para la respuesta de la api a las consultas de (UsersRecommend y UsersWorstDeveloper)

  		      |-- df_genero.parquet       # Archivo de datos parquet utilizado para la respuesta de la api a las consultas de (PlayTimeGenre y UserForGenre)

  		      |-- df_modelo.parquet       # Archivo de datos parquet utilizado para la respuesta de la api a la recommendacion de juegos (recomendacion_juego)

  		      |-- requirements.txt        # Archivo de dependencias del proyecto (este posee todas las librerias necesarias para ejecutar la api)
		
  	|-- venv/                 # Entorno virtual para pruebas locales(tambien fue utilizado para generar el requirements.txt)
		
  	|-- ETL_&_EDA/                  # Carpeta que contiene el proceso de manipulación de datos
    	
        		|-- ETL.ipynb        # Jupyter Notebook para el proceso ETL(extraccion, transformacion y carga de datos)
    	
 	        	|-- EDA.ipynb        # Jupyter Notebook para el Análisis Exploratorio de Datos
    	
 	            	|-- ETL_functions.ipynb  # Jupyter Notebook con funciones específicas para el ETL

Consultas / Funciones

  • PlayTimeGenre recibe un genero de juego(texto) y devuelve el año con más horas jugadas para el género especificado. Ejemplo de retorno: {"Año de lanzamiento con más horas jugadas para Género X" : 2013}
  • UsersRecommend recibe un año(numero) y devuelve el top 3 de juegos MÁS recomendados por usuarios para el año dado (mayor cantidad de recomendaciones y comentarios neutrales y positivos). Ejemplo de retorno: [{"Puesto 1" : X}, {"Puesto 2" : Y},{"Puesto 3" : Z}]

  • UsersWorstDeveloper recibe un año(numero) y devuelve el top 3 de desarrolladoras con mayor cantidad de comentarios negativos y NO recomendaciones Ejemplo de retorno: [{"Puesto 1" : X}, {"Puesto 2" : Y},{"Puesto 3" : Z}]

  • sentiment_analysis recibe una empresa desarrolladora(texto) y devuelve un diccionario con el nombre de la desarrolladora como llave y una lista con la cantidad total de comentarios negativos ,neutrales y positivos. Ejemplo de retorno: {'Valve' : [Negative = 182, Neutral = 120, Positive = 278]}

  • recomendacion_juego recibe el id de un juego(numero) y devuelve una lista con 5 juegos recomendados similares al ingresado.


instrucciones para deployear la api de forma local

en caso de querer ejecutar esta api de forma local una vez forkeado el repositorio(windows):

se debe abrir una consola de comandos en la ruta dentro de la carpeta PI_ML_OPS:

./venv/Scripts/Activate

con esto debera salir(venv) al principio de la ruta esto significa que el entorno virtual se encuentra activo

ahora debemos entrar dentro de la carpeta app que es aquella que tiene la api en si

cd app

una vez dentro de el directorio app

uvicorn main:app --reload

con esto ya tendriamos nuestra api corriendo de forma local en el el puerto 8000 y podemos acceder a ella a travez de localhost:8000

en caso de detener el funcionamiento de la api

ctrl + c

en caso de querer desactivar el entorno virtual

deactivate

mi contacto

mi perfil de github
mi perfil de linkedin

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors