El sistema de recomendación es un sistema que busca predecir o filtrar las preferencias según las elecciones del usuario. Los sistemas de recomendación se utilizan en una variedad de áreas que incluyen películas, música, noticias, libros, artículos de investigación, consultas de búsqueda, etiquetas sociales y productos en general.

Los sistemas de recomendación producen una lista de recomendaciones en cualquiera de las dos formas:

  • Filtración colaborativa: Los enfoques de filtrado colaborativo construyen un modelo a partir del comportamiento pasado del usuario (es decir, artículos comprados o buscados por el usuario), así como decisiones similares tomadas por otros usuarios. Luego, este modelo se utiliza para predecir elementos (o calificaciones de elementos) en los que el usuario puede tener interés.
  • Filtrado basado en contenido: Los enfoques de filtrado basados ​​en contenido utilizan una serie de características discretas de un elemento para recomendar elementos adicionales con propiedades similares. Los métodos de filtrado basados ​​en contenido se basan totalmente en una descripción del elemento y un perfil de las preferencias del usuario. Recomienda elementos basados ​​en las preferencias pasadas del usuario.

Desarrollemos un sistema de recomendación básico usando Python y Pandas.

Centrémonos en proporcionar un sistema de recomendación básico sugiriendo elementos que sean más similares a un elemento en particular, en este caso, películas. Simplemente dice qué películas / elementos son más similares a la elección de película del usuario.

Para descargar los archivos, haga clic en los enlaces: archivo .tsv, Movie_Id_Titles.csv.

Importe el conjunto de datos con el delimitador “” ya que el archivo es un archivo tsv (archivo separado por tabulaciones).

data = pd.merge(df, movie_titles, on='item_id')

data.head()

data.groupby('title')['rating'].mean (). sort_values ​​(ascendente=False).head()

data.groupby('title')['rating'].count (). sort_values ​​(ascendente=False).head()

ratings = pd.DataFrame(data.groupby('title')['rating'].significar())

 

calificaciones['num of ratings'] = pd.DataFrame(data.groupby('title')['rating'].contar())

 

ratings.head()

4

Importaciones de visualización:

import matplotlib.pyplot as plt

import seaborn as sns

 

sns.set_style('white')

%matplotlib inline

plt.figure(figsize =(10, 4))

 

calificaciones['num of ratings'].hist (contenedores = 70)

5

plt.figure(figsize =(10, 4))

 

calificaciones['rating'].hist (contenedores = 70)

6

moviemat = data.pivot_table(index ='user_id',

              columns ='title', values ='rating')

 

moviemat.head()

 

ratings.sort_values('num of ratings', ascending = False).head(10)

7

starwars_user_ratings = tapete de cine['Star Wars (1977)']

liarliar_user_ratings = tapete de cine['Liar Liar (1997)']

 

starwars_user_ratings.head()

8

similar_to_starwars = moviemat.corrwith(starwars_user_ratings)

similar_to_liarliar = moviemat.corrwith(liarliar_user_ratings)

 

corr_starwars = pd.DataFrame(similar_to_starwars, columns =['Correlation'])

corr_starwars.dropna(inplace = True)

 

corr_starwars.head()

corr_starwars.sort_values('Correlation', ascending = False).head(10)

corr_starwars = corr_starwars.join (valoraciones['num of ratings'])

 

corr_starwars.head()

 

corr_starwars[corr_starwars['num of ratings']>100].sort_values('Correlation', ascending = False).head()

10

corr_liarliar = pd.DataFrame(similar_to_liarliar, columns =['Correlation'])

corr_liarliar.dropna(inplace = True)

 

corr_liarliar = corr_liarliar.join (valoraciones['num of ratings'])

corr_liarliar[corr_liarliar['num of ratings']>100].sort_values('Correlation', ascending = False).head()

11


También podría gustarte

Suscríbete a nuestro boletín

Usamos cookies para brindar y mejorar nuestros servicios. Al utilizar nuestro sitio, acepta nuestra Política de cookies.


Aprende más

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *