0Pricing
Learn AI with Python · Lezione

Fattorizzazione delle matrici con SVD

Matrice utente-elemento, scomposizione SVD, fattori latenti, implementazione con la libreria Surprise

Fattorizzazione delle matrici con SVD è una lezione Learn AI with Python gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Learn AI with Python, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Learn AI with Python include 4 lezioni in totale.

Perché usare la fattorizzazione di matrici?

La matrice utente-elemento è enorme e in gran parte vuota. La fattorizzazione di matrici la comprime in due matrici più piccole di fattori latenti, una per gli utenti e una per gli elementi, il cui prodotto ricostruisce (e completa) le valutazioni. Questo gestisce la scarsità molto meglio dei metodi basati sui vicini.

Intuizione sui fattori latenti

Ogni utente ed elemento è descritto da un breve vettore di caratteristiche nascoste (per esempio, il grado di azione o di commedia per i film). Una valutazione prevista è il prodotto scalare tra un vettore utente e un vettore elemento, appreso esclusivamente dai dati.

SVD nelle raccomandazioni

I modelli in stile SVD apprendono questi fattori minimizzando l'errore di previsione sulle valutazioni note, con l'aggiunta della regolarizzazione. La libreria surprise fornisce un modello SVD pronto all'uso e ottimizzato per le raccomandazioni, reso popolare dal Netflix Prize.

La libreria Surprise

Importi i componenti necessari: l'algoritmo, il contenitore del dataset e il reader che descrive il formato dei dati.

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

Reader e rating_scale

Reader comunica a Surprise l'intervallo valido delle valutazioni tramite rating_scale. Lo imposti in base ai Suoi dati (per esempio, da 1 a 5 stelle), altrimenti le previsioni risulteranno mal calibrate.

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

Caricamento di un DataFrame

Carichi un DataFrame con esattamente tre colonne, nell'ordine: utente, elemento, valutazione.

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

Convalida incrociata

cross_validate valuta il modello su diverse suddivisioni, riportando metriche di errore che consentono di giudicare con obiettività l'accuratezza sui dati tenuti da parte.

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

RMSE e MAE

  • RMSE (radice dell'errore quadratico medio) penalizza fortemente gli errori grandi.
  • MAE (errore assoluto medio) è lo scarto assoluto medio ed è più facile da interpretare.

Per entrambe le metriche, un valore più basso è migliore; RMSE è la metrica standard principale per la previsione delle valutazioni.

Addestramento sull'intero insieme di dati

Dopo la validazione, addestri il modello sull'intero dataset prima di usarlo per fornire previsioni.

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

Esecuzione delle previsioni

algo.predict(uid, iid) restituisce un oggetto di previsione il cui campo .est contiene la valutazione stimata per quella coppia utente-elemento.

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

Ottimizzazione degli iperparametri

Le principali impostazioni di SVD sono n_factors (dimensione latente), n_epochs, lr_all (tasso di apprendimento) e reg_all (regolarizzazione). Utilizzi GridSearchCV per trovare la combinazione migliore secondo 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"])

Verifica rapida

Verifichi le Sue conoscenze sulla fattorizzazione di matrici.

Riepilogo

Ha appreso la fattorizzazione di matrici tramite SVD: vettori latenti di utenti ed elementi il cui prodotto scalare prevede le valutazioni. Con surprise ha impostato rating_scale, caricato i dati, eseguito cross_validate con RMSE/MAE, addestrato il modello e chiamato algo.predict(uid, iid). Prossimo argomento: filtraggio basato sul contenuto.

Domande Frequenti

La lezione «Fattorizzazione delle matrici con SVD» è gratuita?

Sì — il testo completo di «Fattorizzazione delle matrici con SVD» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Learn AI with Python, passa a CoddyKit PRO. Il corso Learn AI with Python include 4 lezioni in totale.

Cosa imparerò in «Fattorizzazione delle matrici con SVD»?

Matrice utente-elemento, scomposizione SVD, fattori latenti, implementazione con la libreria Surprise Eserciti Learn AI with Python con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Learn AI with Python?

Non è richiesta alcuna esperienza precedente. Learn AI with Python su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Fattorizzazione delle matrici con SVD»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Learn AI with Python?

Sì. Ogni lezione Learn AI with Python include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Filtraggio collaborativo: basato sugli utenti e sugli elementi
  2. Fattorizzazione delle matrici con SVD
  3. Filtraggio basato sul contenuto
  4. Sistemi ibridi e metriche di valutazione
← Torna a Learn AI with Python