0Pricing
Learn AI with Python · Aula

Fatoração de matrizes com SVD

Matriz usuário-item, decomposição SVD, fatores latentes e implementação com a biblioteca Surprise.

Fatoração de matrizes com SVD é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.

Por que usar fatoração de matrizes?

A matriz usuário-item é enorme e está quase toda vazia. A fatoração de matrizes a comprime em duas matrizes menores de fatores latentes, uma para usuários e outra para itens, cujo produto reconstrói (e preenche) as avaliações. Isso lida com a esparsidade muito melhor do que os métodos baseados em vizinhos.

Intuição sobre fatores latentes

Cada usuário e item é descrito por um vetor curto de características ocultas (por exemplo, grau de ação ou de comédia no caso de filmes). Uma avaliação prevista é o produto escalar de um vetor de usuário e um vetor de item, aprendidos exclusivamente a partir dos dados.

SVD em recomendações

Modelos no estilo de SVD aprendem esses fatores minimizando o erro de previsão nas avaliações conhecidas, além de aplicar regularização. A biblioteca surprise fornece um SVD pronto para uso e otimizado para recomendações, popularizado pelo Prêmio Netflix.

A biblioteca Surprise

Importe os componentes necessários: o algoritmo, o adaptador do conjunto de dados e o leitor que descreve o formato dos seus dados.

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

Reader e rating_scale

O Reader informa ao Surprise o intervalo válido de avaliações por meio de rating_scale. Ajuste-o aos seus dados (por exemplo, de 1 a 5 estrelas) ou as previsões ficarão descalibradas.

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

Carregando um DataFrame

Carregue um DataFrame com exatamente três colunas, nesta ordem: usuário, item, avaliação.

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

Validação cruzada

cross_validate avalia o modelo em várias partições, informando métricas de erro para que você possa julgar a precisão com honestidade em dados reservados.

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

RMSE e MAE

  • RMSE (raiz do erro quadrático médio) penaliza fortemente erros grandes.
  • MAE (erro absoluto médio) é o erro absoluto médio, mais fácil de interpretar.

Quanto menores, melhor; RMSE é a principal métrica padrão para a previsão de avaliações.

Treinamento com o conjunto completo

Após a validação, treine com todo o conjunto de dados antes de disponibilizar as previsões.

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

Fazendo previsões

algo.predict(uid, iid) retorna um objeto de previsão cujo campo .est contém a avaliação estimada para esse par de usuário e item.

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

Ajustando hiperparâmetros

Os principais parâmetros ajustáveis do SVD são n_factors (dimensão latente), n_epochs, lr_all (taxa de aprendizado) e reg_all (regularização). Use GridSearchCV para encontrar a melhor combinação segundo o 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ção rápida

Faça um teste dos seus conhecimentos sobre fatoração de matrizes.

Recapitulação

Você aprendeu fatoração de matrizes por meio de SVD: vetores latentes de usuários e itens cujo produto escalar prevê avaliações. Usando surprise, você definiu rating_scale, carregou os dados, executou cross_validate com RMSE/MAE, aplicou fit e chamou algo.predict(uid, iid). Próximo tópico: filtragem baseada em conteúdo.

Perguntas Frequentes

A aula “Fatoração de matrizes com SVD” é grátis?

Sim — o texto completo de “Fatoração de matrizes com SVD” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.

O que vou aprender em “Fatoração de matrizes com SVD”?

Matriz usuário-item, decomposição SVD, fatores latentes e implementação com a biblioteca Surprise. Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Learn AI with Python?

Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Fatoração de matrizes com SVD”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Learn AI with Python?

Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Filtragem colaborativa: baseada em usuários e itens
  2. Fatoração de matrizes com SVD
  3. Filtragem baseada em conteúdo
  4. Sistemas híbridos e métricas de avaliação
← Voltar para Learn AI with Python