Maison >développement back-end >Tutoriel Python >Système de recommandation en Python
Un système de recommandation est un outil en Python qui recommande des éléments ou du contenu aux utilisateurs en fonction de leurs préférences et de leur comportement passé. La technologie utilise des algorithmes pour prédire les préférences futures des utilisateurs afin de leur proposer le contenu le plus pertinent.
La portée de ce système est très large et il est largement utilisé dans divers secteurs tels que le commerce électronique, les services de streaming et les médias sociaux. Des produits, des films, de la musique, des livres, etc. peuvent tous être recommandés via ces systèmes. Fournir des recommandations personnalisées contribue non seulement à accroître l’engagement et la fidélité des clients, mais peut également stimuler les ventes.
L'idée derrière ces opérations est que les utilisateurs peuvent obtenir des recommandations comparables aux éléments auxquels ils ont été exposés auparavant. Ce système utilise des algorithmes pour identifier les éléments très similaires aux préférences d'un utilisateur, dans le but de créer une liste de suggestions adaptées à l'utilisateur. Dans ce paramètre, l'algorithme analyse les données liées à un élément, telles que sa qualité et les évaluations des utilisateurs, pour déterminer les recommandations à faire.
Étape 1 − Importer les bibliothèques nécessaires
Étape 2 - Charger l'ensemble de données
Étape 3 - Prétraiter les données
Étape 4 - Calculer la matrice de similarité
Étape 5 − Pour chaque utilisateur −
Sélectionnez les éléments avec lesquels ils ont interagi
Pour chaque élément sélectionné à l'étape 5a -
Récupérer les scores de similarité avec tous les autres éléments
Calculez une moyenne pondérée des scores de similarité en utilisant les notes de l'utilisateur comme pondération
Trier les éléments par ordre décroissant en fonction des scores de similarité pondérés
Recommander les N meilleurs éléments aux utilisateurs
Étape 6 - Renvoyez les recommandations de tous les utilisateurs.
import pandas as pd from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.metrics.pairwise import cosine_similarity # Load data data = pd.read_csv('movies.csv') # Compute TF-IDF vectors for each movie tfidf = TfidfVectorizer(stop_words='english') tfidf_matrix = tfidf.fit_transform(data['description']) # Compute cosine similarity between all movies cosine_sim = cosine_similarity(tfidf_matrix, tfidf_matrix) # Function to get top 10 similar movies based on input movie def get_recommendations(title): idx = data[data['title'] == title].index[0] sim_scores = list(enumerate(cosine_sim[idx])) sim_scores = sorted(sim_scores, key=lambda x: x[1], reverse=True) sim_scores = sim_scores[1:11] movie_indices = [i[0] for i in sim_scores] return data.iloc[movie_indices] # Example usage: get top 10 movies similar to 'The Godfather' get_recommendations('The Godfather')
Nous chargeons les données du film à partir d'un fichier CSV local dans une trame de données. Nous convertissons la description du film en matrice en utilisant la fonction fit_transform() et calculons la matrice de similarité cosinus.
Ensuite, nous définissons une fonction qui prend un titre de film comme paramètre et récupère l'index du titre du film dans la dataframe s'il existe.
Nous créons ensuite une liste de tuples contenant les scores de similarité entre le titre du film transmis et tous les autres titres de film. Chaque tuple est constitué d'un index et d'un score de similarité. Nous affichons ensuite la liste des titres de films en indexant la trame de données.
title \ 783 The Godfather 1512 The Godfather: Part II 1103 Casino 3509 Things to Do in Denver When 1246 Snatch 3094 Road to Perdition 2494 Scarface 1244 Following 2164 Dancer 2445 The Day of the Jackal
Au lieu de cela, ceux-ci s’appuient sur les données d’autres utilisateurs pour générer des recommandations. Un tel système compare les préférences et les comportements de différents utilisateurs, puis suggère des éléments susceptibles d'intéresser d'autres utilisateurs ayant des goûts similaires. Le filtrage collaboratif est généralement plus précis que les systèmes basés sur le contenu, car il prend en compte les opinions de nombreux utilisateurs lors de la génération de recommandations.
Étape 1 − Importez les bibliothèques nécessaires.
Étape 2 - Chargez le fichier "ratings.csv" qui fournit les évaluations des utilisateurs.
Étape 3 - Créez "user_item_matrix" pour convertir les données d'évaluation des utilisateurs en matrice
Étape 4 - Calculez la similarité des évaluations des utilisateurs en utilisant la similarité cosinus.
Étape 5 - Identifiez les utilisateurs similaires
Étape 6 - Calculez la note moyenne.
Étape 7 - Sélectionnez l'ID utilisateur cible.
Étape 8 - Imprimez l'identifiant et la note du film.
import pandas as pd from sklearn.metrics.pairwise import cosine_similarity # Load data ratings_data = pd.read_csv('ratings.csv') # Create user-item matrix user_item_matrix = pd.pivot_table(ratings_data, values='rating', index='userId', columns='movieId') # Calculate cosine similarity between users user_similarity = cosine_similarity(user_item_matrix) # Get top n similar users for each user def get_top_similar_users(similarity_matrix, user_index, n=10): similar_users = similarity_matrix[user_index].argsort()[::-1] return similar_users[1:n+1] # Get recommended items for a user based on similar users def get_recommendations(user_id, user_similarity, user_item_matrix, n=10): similar_users = get_top_similar_users(user_similarity, user_id, n) recommendations = user_item_matrix.iloc[similar_users].mean(axis=0).sort_values(ascending=False).head(n) return recommendations # Example usage user_id = 1 recommendations = get_recommendations(user_id, user_similarity, user_item_matrix) print("Top 10 recommended movies for user", user_id) print(recommendations)
Top 10 recommended movies for user 1 movieId 1196 5.000000 50 5.000000 1210 5.000000 260 5.000000 1198 5.000000 2571 5.000000 527 5.000000 1197 5.000000 2762 5.000000 858 4.961538
La tâche de création d'un système de recommandation peut apporter une grande complexité au programmeur, mais il s'agit d'un outil précieux qui peut apporter d'énormes avantages. La création d'un système de recommandation avec Python offre une variété d'options qui simplifient le processus de création et de personnalisation. Cependant, comme pour toute entreprise de codage, des problèmes potentiels peuvent survenir lors du développement de systèmes de recommandation. Être conscient de ces complications typiques et prendre des mesures pour y remédier est essentiel pour garantir le succès d’un système de recommandation.
En fin de compte, il est important de se rappeler qu’un système de recommandation peut être un atout très puissant, il vaut donc la peine d’investir le temps et les efforts nécessaires pour s’assurer qu’il est correctement construit et fonctionne de manière optimale.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!