Menu iconMenu icon
Fundamentos del Análisis de Datos con Python

Proyecto 3: Proyecto Final: Construcción de un Sistema de Recomendación

Construcción del Modelo

En el vasto y siempre cambiante campo de los sistemas de recomendación, hay numerosos enfoques que puedes explorar para mejorar las experiencias de los usuarios y generar recomendaciones personalizadas. Algunos de los métodos populares incluyen el filtrado colaborativo, el filtrado basado en contenido y los modelos híbridos que combinan las fortalezas de ambos.

Para este proyecto, nos sumergiremos en el fascinante mundo del filtrado colaborativo, utilizando las poderosas capacidades de la biblioteca scikit-surprise de Python. Al aprovechar el filtrado colaborativo, podemos emparejar eficazmente a los usuarios con gustos y preferencias similares, proporcionándoles así sugerencias personalizadas que se alineen con sus intereses únicos y preferencias.

Instalación e Importación de Bibliotecas

Primero, instale los paquetes necesarios:

pip install numpy pandas scikit-surprise

Ahora, importemos las bibliotecas:

from surprise import Reader, Dataset, SVD
from surprise.model_selection import cross_validate
import pandas as pd

Preparación de Datos para el Modelo

La biblioteca scikit-surprise proporciona métodos convenientes de carga de datos que son completamente compatibles con DataFrames de Pandas. Esta compatibilidad permite una integración perfecta y una manipulación fácil de los datos. Con estos métodos de carga de datos incorporados, los usuarios pueden cargar rápidamente sus datos en la biblioteca y comenzar su análisis sin ningún problema.

Al aprovechar el poder de los DataFrames de Pandas, la biblioteca scikit-surprise asegura que los usuarios tengan una amplia gama de capacidades de manipulación de datos a su disposición, lo que les permite explorar y analizar sus datos de manera más exhaustiva e informativa.

Carguemos nuestros datos:

# Read the dataset
df = pd.read_csv('product_interactions.csv')

# Define the reader object and parse the dataframe
reader = Reader(rating_scale=(1, 5))
data = Dataset.load_from_df(df[['user_id', 'product_id', 'rating']], reader)

Construcción del Modelo SVD

La Descomposición de Valores Singulares (SVD) es ampliamente reconocida como uno de los algoritmos más efectivos y utilizados para el filtrado colaborativo. Ha ganado una popularidad significativa y se considera un método preferido para los sistemas de recomendación debido a su capacidad para predecir con precisión las preferencias del usuario en función del comportamiento pasado.

Al descomponer la matriz de calificaciones usuario-elemento en tres matrices, SVD puede capturar factores latentes que pueden revelar patrones y relaciones ocultas entre usuarios y elementos. Este enfoque integral permite que SVD proporcione recomendaciones altamente personalizadas, lo que lo convierte en una herramienta valiosa para mejorar la experiencia del usuario y aumentar la participación del cliente.

Construyamos y evaluemos nuestro modelo SVD:

# Create an SVD model object
model = SVD()

# Cross-validate the model
cv_results = cross_validate(model, data, measures=['RMSE', 'MAE'], cv=5, verbose=True)

Esto imprimirá el Error Cuadrático Medio de Raíz (RMSE) y el Error Absoluto Medio (MAE) para nuestro modelo, promediados en una validación cruzada de 5 pliegues.

Realización de Predicciones

Finalmente, hagamos algunas recomendaciones:

# Fit the model to the dataset
trainset = data.build_full_trainset()
model.fit(trainset)

# Making predictions for a user (let's say user_id=1)
user_id = 1
preds = []

for product_id in df['product_id'].unique():
    pred_rating = model.predict(user_id, product_id).est
    preds.append((product_id, pred_rating))

# Sort predictions and pick top 5
top_5_preds = sorted(preds, key=lambda x: x[1], reverse=True)[:5]

print("Top 5 product recommendations for user 1: ", [x[0] for x in top_5_preds])

¡Y ahí lo tienes! Acabas de construir tu propio sistema de recomendación de productos.

Recuerda, este modelo es relativamente básico pero sirve como un punto de partida robusto. A medida que aprendas más sobre tus datos y requisitos, puedes ajustar el modelo o incluso probar otros algoritmos avanzados.

¿No es encantador ver cómo líneas de código pueden convertirse en sistemas inteligentes que pueden facilitar nuestras vidas? A medida que continúes tu viaje en Ingeniería de IA, este es solo uno de los muchos proyectos fascinantes que encontrarás. Si disfrutaste esto, asegúrate de consultar nuestros otros libros y el completo "Viaje en Ingeniería de IA" que incluye una variedad de temas para mejorar aún más tus habilidades.

Ahora, llevemos este proyecto a su culminación con la fase de Evaluación e Implementación. Has definido tu problema, recopilado y preprocesado datos, e incluso construido un modelo funcional. ¿Qué viene ahora? Bueno, antes de que tu sistema de recomendación esté en vivo, debes evaluar rigurosamente su rendimiento y prepararlo para su implementación. Sumérgete en ello.

Construcción del Modelo

En el vasto y siempre cambiante campo de los sistemas de recomendación, hay numerosos enfoques que puedes explorar para mejorar las experiencias de los usuarios y generar recomendaciones personalizadas. Algunos de los métodos populares incluyen el filtrado colaborativo, el filtrado basado en contenido y los modelos híbridos que combinan las fortalezas de ambos.

Para este proyecto, nos sumergiremos en el fascinante mundo del filtrado colaborativo, utilizando las poderosas capacidades de la biblioteca scikit-surprise de Python. Al aprovechar el filtrado colaborativo, podemos emparejar eficazmente a los usuarios con gustos y preferencias similares, proporcionándoles así sugerencias personalizadas que se alineen con sus intereses únicos y preferencias.

Instalación e Importación de Bibliotecas

Primero, instale los paquetes necesarios:

pip install numpy pandas scikit-surprise

Ahora, importemos las bibliotecas:

from surprise import Reader, Dataset, SVD
from surprise.model_selection import cross_validate
import pandas as pd

Preparación de Datos para el Modelo

La biblioteca scikit-surprise proporciona métodos convenientes de carga de datos que son completamente compatibles con DataFrames de Pandas. Esta compatibilidad permite una integración perfecta y una manipulación fácil de los datos. Con estos métodos de carga de datos incorporados, los usuarios pueden cargar rápidamente sus datos en la biblioteca y comenzar su análisis sin ningún problema.

Al aprovechar el poder de los DataFrames de Pandas, la biblioteca scikit-surprise asegura que los usuarios tengan una amplia gama de capacidades de manipulación de datos a su disposición, lo que les permite explorar y analizar sus datos de manera más exhaustiva e informativa.

Carguemos nuestros datos:

# Read the dataset
df = pd.read_csv('product_interactions.csv')

# Define the reader object and parse the dataframe
reader = Reader(rating_scale=(1, 5))
data = Dataset.load_from_df(df[['user_id', 'product_id', 'rating']], reader)

Construcción del Modelo SVD

La Descomposición de Valores Singulares (SVD) es ampliamente reconocida como uno de los algoritmos más efectivos y utilizados para el filtrado colaborativo. Ha ganado una popularidad significativa y se considera un método preferido para los sistemas de recomendación debido a su capacidad para predecir con precisión las preferencias del usuario en función del comportamiento pasado.

Al descomponer la matriz de calificaciones usuario-elemento en tres matrices, SVD puede capturar factores latentes que pueden revelar patrones y relaciones ocultas entre usuarios y elementos. Este enfoque integral permite que SVD proporcione recomendaciones altamente personalizadas, lo que lo convierte en una herramienta valiosa para mejorar la experiencia del usuario y aumentar la participación del cliente.

Construyamos y evaluemos nuestro modelo SVD:

# Create an SVD model object
model = SVD()

# Cross-validate the model
cv_results = cross_validate(model, data, measures=['RMSE', 'MAE'], cv=5, verbose=True)

Esto imprimirá el Error Cuadrático Medio de Raíz (RMSE) y el Error Absoluto Medio (MAE) para nuestro modelo, promediados en una validación cruzada de 5 pliegues.

Realización de Predicciones

Finalmente, hagamos algunas recomendaciones:

# Fit the model to the dataset
trainset = data.build_full_trainset()
model.fit(trainset)

# Making predictions for a user (let's say user_id=1)
user_id = 1
preds = []

for product_id in df['product_id'].unique():
    pred_rating = model.predict(user_id, product_id).est
    preds.append((product_id, pred_rating))

# Sort predictions and pick top 5
top_5_preds = sorted(preds, key=lambda x: x[1], reverse=True)[:5]

print("Top 5 product recommendations for user 1: ", [x[0] for x in top_5_preds])

¡Y ahí lo tienes! Acabas de construir tu propio sistema de recomendación de productos.

Recuerda, este modelo es relativamente básico pero sirve como un punto de partida robusto. A medida que aprendas más sobre tus datos y requisitos, puedes ajustar el modelo o incluso probar otros algoritmos avanzados.

¿No es encantador ver cómo líneas de código pueden convertirse en sistemas inteligentes que pueden facilitar nuestras vidas? A medida que continúes tu viaje en Ingeniería de IA, este es solo uno de los muchos proyectos fascinantes que encontrarás. Si disfrutaste esto, asegúrate de consultar nuestros otros libros y el completo "Viaje en Ingeniería de IA" que incluye una variedad de temas para mejorar aún más tus habilidades.

Ahora, llevemos este proyecto a su culminación con la fase de Evaluación e Implementación. Has definido tu problema, recopilado y preprocesado datos, e incluso construido un modelo funcional. ¿Qué viene ahora? Bueno, antes de que tu sistema de recomendación esté en vivo, debes evaluar rigurosamente su rendimiento y prepararlo para su implementación. Sumérgete en ello.

Construcción del Modelo

En el vasto y siempre cambiante campo de los sistemas de recomendación, hay numerosos enfoques que puedes explorar para mejorar las experiencias de los usuarios y generar recomendaciones personalizadas. Algunos de los métodos populares incluyen el filtrado colaborativo, el filtrado basado en contenido y los modelos híbridos que combinan las fortalezas de ambos.

Para este proyecto, nos sumergiremos en el fascinante mundo del filtrado colaborativo, utilizando las poderosas capacidades de la biblioteca scikit-surprise de Python. Al aprovechar el filtrado colaborativo, podemos emparejar eficazmente a los usuarios con gustos y preferencias similares, proporcionándoles así sugerencias personalizadas que se alineen con sus intereses únicos y preferencias.

Instalación e Importación de Bibliotecas

Primero, instale los paquetes necesarios:

pip install numpy pandas scikit-surprise

Ahora, importemos las bibliotecas:

from surprise import Reader, Dataset, SVD
from surprise.model_selection import cross_validate
import pandas as pd

Preparación de Datos para el Modelo

La biblioteca scikit-surprise proporciona métodos convenientes de carga de datos que son completamente compatibles con DataFrames de Pandas. Esta compatibilidad permite una integración perfecta y una manipulación fácil de los datos. Con estos métodos de carga de datos incorporados, los usuarios pueden cargar rápidamente sus datos en la biblioteca y comenzar su análisis sin ningún problema.

Al aprovechar el poder de los DataFrames de Pandas, la biblioteca scikit-surprise asegura que los usuarios tengan una amplia gama de capacidades de manipulación de datos a su disposición, lo que les permite explorar y analizar sus datos de manera más exhaustiva e informativa.

Carguemos nuestros datos:

# Read the dataset
df = pd.read_csv('product_interactions.csv')

# Define the reader object and parse the dataframe
reader = Reader(rating_scale=(1, 5))
data = Dataset.load_from_df(df[['user_id', 'product_id', 'rating']], reader)

Construcción del Modelo SVD

La Descomposición de Valores Singulares (SVD) es ampliamente reconocida como uno de los algoritmos más efectivos y utilizados para el filtrado colaborativo. Ha ganado una popularidad significativa y se considera un método preferido para los sistemas de recomendación debido a su capacidad para predecir con precisión las preferencias del usuario en función del comportamiento pasado.

Al descomponer la matriz de calificaciones usuario-elemento en tres matrices, SVD puede capturar factores latentes que pueden revelar patrones y relaciones ocultas entre usuarios y elementos. Este enfoque integral permite que SVD proporcione recomendaciones altamente personalizadas, lo que lo convierte en una herramienta valiosa para mejorar la experiencia del usuario y aumentar la participación del cliente.

Construyamos y evaluemos nuestro modelo SVD:

# Create an SVD model object
model = SVD()

# Cross-validate the model
cv_results = cross_validate(model, data, measures=['RMSE', 'MAE'], cv=5, verbose=True)

Esto imprimirá el Error Cuadrático Medio de Raíz (RMSE) y el Error Absoluto Medio (MAE) para nuestro modelo, promediados en una validación cruzada de 5 pliegues.

Realización de Predicciones

Finalmente, hagamos algunas recomendaciones:

# Fit the model to the dataset
trainset = data.build_full_trainset()
model.fit(trainset)

# Making predictions for a user (let's say user_id=1)
user_id = 1
preds = []

for product_id in df['product_id'].unique():
    pred_rating = model.predict(user_id, product_id).est
    preds.append((product_id, pred_rating))

# Sort predictions and pick top 5
top_5_preds = sorted(preds, key=lambda x: x[1], reverse=True)[:5]

print("Top 5 product recommendations for user 1: ", [x[0] for x in top_5_preds])

¡Y ahí lo tienes! Acabas de construir tu propio sistema de recomendación de productos.

Recuerda, este modelo es relativamente básico pero sirve como un punto de partida robusto. A medida que aprendas más sobre tus datos y requisitos, puedes ajustar el modelo o incluso probar otros algoritmos avanzados.

¿No es encantador ver cómo líneas de código pueden convertirse en sistemas inteligentes que pueden facilitar nuestras vidas? A medida que continúes tu viaje en Ingeniería de IA, este es solo uno de los muchos proyectos fascinantes que encontrarás. Si disfrutaste esto, asegúrate de consultar nuestros otros libros y el completo "Viaje en Ingeniería de IA" que incluye una variedad de temas para mejorar aún más tus habilidades.

Ahora, llevemos este proyecto a su culminación con la fase de Evaluación e Implementación. Has definido tu problema, recopilado y preprocesado datos, e incluso construido un modelo funcional. ¿Qué viene ahora? Bueno, antes de que tu sistema de recomendación esté en vivo, debes evaluar rigurosamente su rendimiento y prepararlo para su implementación. Sumérgete en ello.

Construcción del Modelo

En el vasto y siempre cambiante campo de los sistemas de recomendación, hay numerosos enfoques que puedes explorar para mejorar las experiencias de los usuarios y generar recomendaciones personalizadas. Algunos de los métodos populares incluyen el filtrado colaborativo, el filtrado basado en contenido y los modelos híbridos que combinan las fortalezas de ambos.

Para este proyecto, nos sumergiremos en el fascinante mundo del filtrado colaborativo, utilizando las poderosas capacidades de la biblioteca scikit-surprise de Python. Al aprovechar el filtrado colaborativo, podemos emparejar eficazmente a los usuarios con gustos y preferencias similares, proporcionándoles así sugerencias personalizadas que se alineen con sus intereses únicos y preferencias.

Instalación e Importación de Bibliotecas

Primero, instale los paquetes necesarios:

pip install numpy pandas scikit-surprise

Ahora, importemos las bibliotecas:

from surprise import Reader, Dataset, SVD
from surprise.model_selection import cross_validate
import pandas as pd

Preparación de Datos para el Modelo

La biblioteca scikit-surprise proporciona métodos convenientes de carga de datos que son completamente compatibles con DataFrames de Pandas. Esta compatibilidad permite una integración perfecta y una manipulación fácil de los datos. Con estos métodos de carga de datos incorporados, los usuarios pueden cargar rápidamente sus datos en la biblioteca y comenzar su análisis sin ningún problema.

Al aprovechar el poder de los DataFrames de Pandas, la biblioteca scikit-surprise asegura que los usuarios tengan una amplia gama de capacidades de manipulación de datos a su disposición, lo que les permite explorar y analizar sus datos de manera más exhaustiva e informativa.

Carguemos nuestros datos:

# Read the dataset
df = pd.read_csv('product_interactions.csv')

# Define the reader object and parse the dataframe
reader = Reader(rating_scale=(1, 5))
data = Dataset.load_from_df(df[['user_id', 'product_id', 'rating']], reader)

Construcción del Modelo SVD

La Descomposición de Valores Singulares (SVD) es ampliamente reconocida como uno de los algoritmos más efectivos y utilizados para el filtrado colaborativo. Ha ganado una popularidad significativa y se considera un método preferido para los sistemas de recomendación debido a su capacidad para predecir con precisión las preferencias del usuario en función del comportamiento pasado.

Al descomponer la matriz de calificaciones usuario-elemento en tres matrices, SVD puede capturar factores latentes que pueden revelar patrones y relaciones ocultas entre usuarios y elementos. Este enfoque integral permite que SVD proporcione recomendaciones altamente personalizadas, lo que lo convierte en una herramienta valiosa para mejorar la experiencia del usuario y aumentar la participación del cliente.

Construyamos y evaluemos nuestro modelo SVD:

# Create an SVD model object
model = SVD()

# Cross-validate the model
cv_results = cross_validate(model, data, measures=['RMSE', 'MAE'], cv=5, verbose=True)

Esto imprimirá el Error Cuadrático Medio de Raíz (RMSE) y el Error Absoluto Medio (MAE) para nuestro modelo, promediados en una validación cruzada de 5 pliegues.

Realización de Predicciones

Finalmente, hagamos algunas recomendaciones:

# Fit the model to the dataset
trainset = data.build_full_trainset()
model.fit(trainset)

# Making predictions for a user (let's say user_id=1)
user_id = 1
preds = []

for product_id in df['product_id'].unique():
    pred_rating = model.predict(user_id, product_id).est
    preds.append((product_id, pred_rating))

# Sort predictions and pick top 5
top_5_preds = sorted(preds, key=lambda x: x[1], reverse=True)[:5]

print("Top 5 product recommendations for user 1: ", [x[0] for x in top_5_preds])

¡Y ahí lo tienes! Acabas de construir tu propio sistema de recomendación de productos.

Recuerda, este modelo es relativamente básico pero sirve como un punto de partida robusto. A medida que aprendas más sobre tus datos y requisitos, puedes ajustar el modelo o incluso probar otros algoritmos avanzados.

¿No es encantador ver cómo líneas de código pueden convertirse en sistemas inteligentes que pueden facilitar nuestras vidas? A medida que continúes tu viaje en Ingeniería de IA, este es solo uno de los muchos proyectos fascinantes que encontrarás. Si disfrutaste esto, asegúrate de consultar nuestros otros libros y el completo "Viaje en Ingeniería de IA" que incluye una variedad de temas para mejorar aún más tus habilidades.

Ahora, llevemos este proyecto a su culminación con la fase de Evaluación e Implementación. Has definido tu problema, recopilado y preprocesado datos, e incluso construido un modelo funcional. ¿Qué viene ahora? Bueno, antes de que tu sistema de recomendación esté en vivo, debes evaluar rigurosamente su rendimiento y prepararlo para su implementación. Sumérgete en ello.