0Pricing
Learn AI with Python · Leçon

Factorisation matricielle avec SVD

Matrice utilisateurs-éléments, décomposition SVD, facteurs latents, implémentation avec la bibliothèque Surprise.

Factorisation matricielle avec SVD est une leçon Learn AI with Python gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Learn AI with Python, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn AI with Python comprend 4 leçons au total.

Pourquoi la factorisation matricielle ?

La matrice utilisateurs-éléments est immense et principalement vide. La factorisation matricielle la compresse en deux matrices plus petites de facteurs latents, l’une pour les utilisateurs et l’autre pour les éléments, dont le produit reconstruit et complète les notes. Cette méthode gère beaucoup mieux le caractère creux des données que les méthodes fondées sur les voisins.

Intuition des facteurs latents

Chaque utilisateur et chaque élément est décrit par un court vecteur de caractéristiques cachées (par exemple, le degré d’action ou de comédie pour les films). Une note prédite est le produit scalaire d’un vecteur utilisateur et d’un vecteur élément, appris uniquement à partir des données.

SVD pour les recommandations

Les modèles de type SVD apprennent ces facteurs en minimisant l’erreur de prédiction sur les notes connues, tout en ajoutant une régularisation. La bibliothèque surprise fournit un SVD prêt à l’emploi, optimisé pour la recommandation et rendu célèbre par le prix Netflix.

La bibliothèque Surprise

Importez les éléments dont vous avez besoin : l’algorithme, l’enveloppe du jeu de données et le lecteur qui décrit le format de vos données.

from surprise import SVD, Dataset, Reader
from surprise.model_selection import cross_validate

Lecteur et échelle de notation

Le lecteur indique à Surprise la plage de notes valide grâce à l’échelle de notation. Faites-la correspondre à vos données (par exemple, de 1 à 5 étoiles), sinon les prédictions seront mal calibrées.

reader = Reader(rating_scale=(1, 5))

Charger un DataFrame

Chargez un DataFrame comportant exactement trois colonnes, dans cet ordre : utilisateur, élément, note.

data = Dataset.load_from_df(
    df[["user_id", "item_id", "rating"]],
    reader
)

Validation croisée

cross_validate évalue le modèle sur plusieurs partitions et fournit des métriques d’erreur afin que vous puissiez juger honnêtement sa précision sur des données mises de côté.

results = cross_validate(
    SVD(), data,
    measures=["RMSE", "MAE"],
    cv=5,
    verbose=True
)

RMSE et MAE

  • RMSE (racine de l’erreur quadratique moyenne) pénalise fortement les grandes erreurs.
  • MAE (erreur absolue moyenne) représente l’écart absolu moyen, plus facile à interpréter.

Une valeur plus faible est préférable dans les deux cas ; le RMSE est la métrique de référence pour la prédiction de notes.

Entraîner sur l’ensemble des données

Après la validation, entraînez le modèle sur l’intégralité du jeu de données avant de fournir des prédictions.

trainset = data.build_full_trainset()
algo = SVD()
algo.fit(trainset)

Effectuer des prédictions

algo.predict(uid, iid) renvoie un objet de prédiction dont le champ .est contient la note estimée pour cette paire utilisateur-élément.

pred = algo.predict(uid="user_42", iid="item_99")
print(pred.est)  # estimated rating

Régler les hyperparamètres

Les principaux paramètres de SVD sont n_factors (dimension latente), n_epochs, lr_all (taux d’apprentissage) et reg_all (régularisation). Utilisez GridSearchCV pour trouver la meilleure combinaison selon le RMSE.

from surprise.model_selection import GridSearchCV

grid = {"n_factors": [50, 100], "reg_all": [0.02, 0.1]}
gs = GridSearchCV(SVD, grid, measures=["rmse"], cv=3)
gs.fit(data)
print(gs.best_params["rmse"])

Vérification rapide

Testez vos connaissances sur la factorisation matricielle.

Récapitulatif

Vous avez appris la factorisation matricielle avec SVD : des vecteurs latents d’utilisateurs et d’éléments dont le produit scalaire prédit les notes. Avec surprise, vous avez défini l’échelle de notation, chargé les données, exécuté cross_validate avec RMSE/MAE, entraîné le modèle et appelé algo.predict(uid, iid). Ensuite : le filtrage fondé sur le contenu.

Questions Fréquemment Posées

La leçon « Factorisation matricielle avec SVD » est-elle gratuite ?

Oui — le texte complet de « Factorisation matricielle avec SVD » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Learn AI with Python, passe à CoddyKit PRO. Le cours Learn AI with Python comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Factorisation matricielle avec SVD » ?

Matrice utilisateurs-éléments, décomposition SVD, facteurs latents, implémentation avec la bibliothèque Surprise. Tu pratiques Learn AI with Python avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Learn AI with Python ?

Aucune expérience préalable n'est requise. Learn AI with Python sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Factorisation matricielle avec SVD » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Learn AI with Python ?

Oui. Chaque leçon Learn AI with Python inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Filtrage collaboratif : basé sur les utilisateurs et les éléments
  2. Factorisation matricielle avec SVD
  3. Filtrage fondé sur le contenu
  4. Systèmes hybrides et métriques d’évaluation
← Retour à Learn AI with Python