Sistemas híbridos e métricas de avaliação
Combinação de filtragem colaborativa e baseada em conteúdo, RMSE, MAE, Precision@K e Recall@K.
Sistemas híbridos e métricas de avaliação é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 4 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 sistemas híbridos?
A filtragem colaborativa tem dificuldade com o início a frio; a filtragem baseada em conteúdo se especializa demais. Um sistema híbrido combina os dois para que cada método compense as limitações do outro, geralmente superando ambos quando usados isoladamente.
Combinação ponderada
O híbrido mais simples combina pontuações com pesos cuja soma é 1. Por exemplo, 0.6 * CF + 0.4 * CB dá mais importância aos sinais colaborativos, mas mantém o conteúdo como alternativa e fonte de diversificação.
final_score = 0.6 * cf_score + 0.4 * cb_scoreAjustando os pesos
A divisão 0.6 / 0.4 é apenas um ponto de partida. Ajuste os pesos em um conjunto de validação: quando os usuários têm um histórico amplo, aumente o peso de CF; para itens novos, aumente o peso de CB. Você pode até alternar os pesos por usuário.
Outras estratégias híbridas
- Ponderada: combina pontuações (como mostrado acima).
- Alternância: escolhe CF ou CB dependendo da disponibilidade de dados.
- Combinação de características: fornece os dois sinais a um único modelo.
A combinação ponderada é a mais comum e a mais fácil de interpretar.
Avaliação: dois tipos de perguntas
A avaliação se divide em duas perguntas:
- Previsão de avaliações: quão próximas estão as avaliações previstas? Use RMSE/MAE.
- Qualidade da classificação: os itens corretos aparecem perto do topo? Use Precision@K, Recall@K, NDCG@K.
RMSE para previsão de avaliações
RMSE mede o erro quadrático médio entre as avaliações previstas e as reais e, em seguida, calcula sua raiz quadrada. Ele penaliza fortemente grandes desvios e é a métrica padrão de precisão das avaliações.
import numpy as np
def rmse(pred, actual):
return np.sqrt(np.mean((np.array(pred) - np.array(actual)) ** 2))Precisão@K
Precisão@K = (itens relevantes entre os K primeiros) / K. Ela responde à pergunta: dos K itens que recomendei, qual fração o usuário realmente apreciou? Quanto maior, menos posições são desperdiçadas.
def precision_at_k(recommended, relevant, k):
top_k = recommended[:k]
hits = len(set(top_k) & set(relevant))
return hits / kRevocação@K
Revocação@K = (itens relevantes entre os K primeiros) / (total de itens relevantes). Ela responde à pergunta: de tudo que o usuário apreciaria, qual fração apresentei entre os K primeiros?
def recall_at_k(recommended, relevant, k):
top_k = recommended[:k]
hits = len(set(top_k) & set(relevant))
return hits / len(relevant) if relevant else 0.0Compromisso entre precisão e revocação
A precisão favorece acertar o que você apresenta; a revocação favorece abranger tudo que é relevante. Os sistemas de recomendação geralmente dão prioridade à Precisão@K, porque os usuários veem apenas uma lista curta e, portanto, as primeiras posições são as mais importantes.
NDCG@K para qualidade da ordenação
NDCG@K (ganho cumulativo descontado normalizado) recompensa a colocação de itens altamente relevantes perto do topo. Um item relevante na posição 1 conta mais do que o mesmo item na posição 10, porque os ganhos são descontados de acordo com a posição.
Como funciona o NDCG
O DCG soma a relevância de cada item dividida pelo log de sua posição. O NDCG divide o DCG pelo DCG ideal (ordenação perfeita), gerando uma pontuação de 0 a 1, em que 1 representa uma lista perfeitamente ordenada.
import numpy as np
def dcg(rels):
return sum(r / np.log2(i + 2) for i, r in enumerate(rels))
def ndcg_at_k(rels, k):
ideal = sorted(rels, reverse=True)
return dcg(rels[:k]) / dcg(ideal[:k]) if dcg(ideal[:k]) else 0.0Verificação rápida
Teste seus conhecimentos sobre métricas de avaliação.
Recapitulação
Você criou um sistema de recomendação híbrido (por exemplo, 0.6 * CF + 0.4 * CB) e aprendeu seu conjunto de ferramentas de avaliação: RMSE para a precisão das avaliações, Precisão@K e Revocação@K para recuperação e NDCG@K para qualidade da ordenação. Com isso, termina o curso de Sistemas de Recomendação. Próximo curso: Fundamentos de MLOps.
Perguntas Frequentes
A aula “Sistemas híbridos e métricas de avaliação” é grátis?
Sim — o texto completo de “Sistemas híbridos e métricas de avaliação” é 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 “Sistemas híbridos e métricas de avaliação”?
Combinação de filtragem colaborativa e baseada em conteúdo, RMSE, MAE, Precision@K e Recall@K. 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 4 de 4.
Quanto tempo leva a aula “Sistemas híbridos e métricas de avaliação”?
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
- Filtragem colaborativa: baseada em usuários e itens
- Fatoração de matrizes com SVD
- Filtragem baseada em conteúdo
- Sistemas híbridos e métricas de avaliação