Python >> Tutoriel Python >  >> Python Tag >> Pandas

Un système de recommandation simple utilisant la méthode Pandas corrwith()

Qu'est-ce qu'un système de recommandation ?

Si vous utilisez Netflix ou Amazon, vous avez déjà vu les résultats des systèmes de recommandation - des recommandations de films ou d'articles qui correspondent à vos goûts ou à vos besoins. Ainsi, à la base, un système de recommandation est un algorithme statistique qui calcule les similitudes en fonction des choix ou des fonctionnalités précédents et recommande aux utilisateurs le film à regarder ou ce qu'ils pourraient avoir besoin d'acheter.

Comment fonctionne un système de recommandation ?

Supposons que les personnes A et B aiment un film M1 et que la personne A aime aussi le film M2. Maintenant, nous pouvons conclure que la personne B aimera également le film M2 avec une forte probabilité. Eh bien, ce sont très peu de données et probablement une prédiction plutôt imprécise. Pourtant, cela illustre le fonctionnement du filtrage collaboratif. Dans une application réelle, nous aurions besoin de beaucoup plus de données pour faire de bonnes recommandations. Les algorithmes de recommandation basés sur ce concept sont appelés filtrage collaboratif .

Un autre moyen populaire de recommander des articles est ce qu'on appelle le filtrage basé sur le contenu. . Le filtrage basé sur le contenu calcule les recommandations en fonction des similitudes d'éléments ou de films. Dans le cas des films, nous pourrions examiner différentes caractéristiques comme :le genre, les acteurs, … pour calculer la similarité.
Si un utilisateur a aimé un film donné, la probabilité est élevée que l'utilisateur aime également des films similaires. Ainsi, il est logique de recommander des films présentant une grande similitude avec ceux que l'utilisateur a aimés.

Mise en place d'un système de recommandation

Si vous souhaitez mieux comprendre le code ci-dessous, assurez-vous de vous inscrire à notre cours gratuit par e-mail "Introduction aux pandas et à la science des données" sur notre Email Academy. Tout au long du cours, nous développons un système de recommandation de films. À la base, il y a la méthode corrwith() de la bibliothèque Pandas.

Voici la mise en œuvre finale de notre système de recommandation :

Comment utiliser la méthode Pandas corrwith() ?

L'objet Pandas DataFrame propose la méthode corrwith() qui calcule les corrélations par paires entre DataFrames ou un DataFrame et une série. Avec l'axe des paramètres, vous pouvez soit calculer des corrélations le long des lignes ou des colonnes. Voici la signature complète, les paramètres bleus sont facultatifs et ont des valeurs par défaut.

Les arguments en détail :
1.) autre :une série ou un DataFrame avec lequel calculer la corrélation.
2.) axe :passez 0 ou « index » pour calculer les corrélations par colonne, 1 ou « colonnes » pour les lignes.
3.) drop :supprimer les indices manquants du résultat.
4.) method :L'algorithme utilisé pour calculer la corrélation. Vous pouvez choisir entre :« pearson », « kendall » ou « spearman » ou implémenter votre propre algorithme. Donc, soit vous passez une des trois cordes soit une callable.

Voici un exemple pratique :

import pandas as pd

ratings = {
'Spider Man':[3.5, 1.0, 4.5, 5.0],
'James Bond':[1.0, 2.5, 5.0, 4.0],
'Titanic':[5.0, 4.5, 1.0, 2.0]
}

new_movie_ratings = pd.Series([2.0, 2.5, 5.0, 3.5])
all_ratings = pd.DataFrame(ratings)

print(all_ratings.corrwith(new_movie_ratings))

À partir d'un dictionnaire donné de listes (ratings), nous créons un DataFrame. Ce DataFrame a trois colonnes et quatre lignes. Chaque colonne contient les notes de films des quatre utilisateurs.
La série new_movie_ratings contient les notes d'un nouveau film des quatre utilisateurs.
Utilisation de la méthode corrwith() sur le DataFrame on obtient la corrélation entre les nouvelles notations et les anciennes.
La sortie de l'extrait ci-dessus est :

Spider Man    0.566394
James Bond    0.953910
Titanic      -0.962312

Comme vous pouvez le voir, le nouveau film a la plus forte corrélation avec le film de James Bond. Cela signifie qu'un système de recommandation qui fonctionne uniquement sur la base des notes devrait recommander le film James Bond aux utilisateurs qui ont aimé le nouveau film.
Pourtant, qu'est-ce que la corrélation ?

Qu'est-ce que la corrélation ?

La corrélation décrit la relation statistique entre deux entités. C'est-à-dire que c'est la façon dont deux variables évoluent l'une par rapport à l'autre. La corrélation est donnée sous la forme d'une valeur comprise entre -1 et +1. Cependant, corrélation n'est pas causalité !

Il existe trois types de corrélation :

  • Corrélation positive :
    Une corrélation positive est une valeur comprise dans la plage 0,0
  • Corrélation négative :
    Une corrélation négative est une valeur comprise dans la plage 0,0> c>=-1,0. Une corrélation négative signifie que deux variables ont le comportement opposé. Ainsi, si le premier monte, le second descend.
  • Aucune ou aucune corrélation :
    Une corrélation de zéro signifie qu'il n'y a pas de relation entre les deux variables. Si la première variable monte, la seconde peut faire autre chose.

Plus de méthodes Pandas DataFrame

N'hésitez pas à en savoir plus sur les méthodes Pandas DataFrame précédentes et suivantes (par ordre alphabétique) ici :

Consultez également l'aperçu complet de la feuille de triche de toutes les méthodes Pandas DataFrame.