

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Avaliar um recomendador de domínio do Amazon Personalize
<a name="evaluating-recommenders"></a>

 Você pode avaliar o desempenho de seu recomendador por meio de métricas offline e online. As *métricas online* são os resultados empíricos que você observa nas interações de seus usuários com recomendações em tempo real. Por exemplo, você pode registrar a taxa de cliques de seus usuários enquanto eles navegam em seu catálogo. Você é responsável por gerar e registrar qualquer métrica on-line. 

 As *métricas offline* são as métricas que o Amazon Personalize gera quando você cria um recomendador. É possível usar essas métricas offline para avaliar o desempenho dos modelos do seu recomendador. Você pode ver os efeitos da modificação da configuração de um recomendador e comparar os resultados dos recomendadores treinados com diferentes casos de uso e os *mesmos dados* no mesmo grupo de conjuntos de dados.

Evite comparar métricas de recomendadores treinados distintos com dados diferentes. A diferença nas métricas pode estar na diferença dos dados, não no desempenho do modelo. Por exemplo, você pode ter um grupo de conjuntos de dados com dados de eventos `purchase` esparsos para cada usuário e outro com dados de eventos `view` robustos. Com base em métricas como `precision at K`, o recomendador treinado nos dados do evento de visualização pode apresentar incorretamente um desempenho melhor devido ao maior número de interações. 

 Para obter métricas de desempenho, o Amazon Personalize divide os dados de interações de entrada em um conjunto de treinamento e um conjunto de testes. O conjunto de treinamento consiste em 90% dos seus usuários e seus dados de interações. O conjunto de testes consiste nos 10% restantes dos usuários e seus dados de interações. 

 Em seguida, o Amazon Personalize cria o recomendador usando o conjunto de treinamento. Após a conclusão do treinamento, o Amazon Personalize fornece ao novo recomendador os 90% mais antigos dos dados de cada usuário do conjunto de testes como entrada. Em seguida, o Amazon Personalize calcula as métricas comparando as recomendações que o recomendador gera com as interações reais nos 10% mais recentes dos dados de cada usuário do conjunto de testes. 

**Topics**
+ [

## Recuperação de métricas
](#retrieving-recommender-metrics)
+ [

## Definições de métrica
](#metric-definitions-recommenders)
+ [

## Exemplo
](#working-with-recommender-metrics-example)
+ [

## Atributos adicionais
](#additional-metrics-resources-recommenders)

## Recuperação de métricas
<a name="retrieving-recommender-metrics"></a>

Depois que seu recomendador estiver ativo, você poderá visualizar as métricas do recomendador no console do Amazon Personalize ou recuperar métricas chamando a operação [DescribeRecommender](API_DescribeRecommender.md).

**Topics**
+ [

### Visualizar métricas (console)
](#retrieving-recommender-metrics-console)
+ [

### Recuperação de métricas (AWS CLI)
](#retrieving-recommender-metrics-cli)
+ [

### Recuperação de métricas (AWS SDKs)
](#retrieving-recommender-metrics-sdk)

### Visualizar métricas (console)
<a name="retrieving-recommender-metrics-console"></a>

Para visualizar as métricas do recomendador no console, você navega até a página de detalhes de seu recomendador.

1. Abra o console Amazon Personalize em [https://console.aws.amazon.com/personalize/casa](https://console.aws.amazon.com/personalize/home) e faça login na sua conta.

1. Na página **Grupos do conjunto de dados**, escolha seu grupo de conjuntos de dados do domínio. 

1. No painel de navegação, selecione **Recomendadores**. 

1. Na lista de recomendadores, escolha um para ver suas métricas.

### Recuperação de métricas (AWS CLI)
<a name="retrieving-recommender-metrics-cli"></a>

O código a seguir mostra como obter métricas para um recomendador com o AWS CLI.

```
aws personalize describe-recommender \
--recommender-arn recommender arn
```

Veja a seguir um exemplo da saída de métricas de um recomendador criado para o caso de uso *Principais escolhas para você* para o domínio VIDEO\$1ON\$1DEMAND.

```
{
    "recommender": {
        "recommenderArn": "arn:aws:personalize:region:acct-id:recommender/recommenderName",
        "datasetGroupArn": "arn:aws:personalize:region:acct-id:dataset-group/dsGroupName",
        "name": "name123",
        "recipeArn": "arn:aws:personalize:::recipe/aws-vod-top-picks",
        "modelMetrics": {
            "coverage": 0.27,
            "mean_reciprocal_rank_at_25": 0.0379,
            "normalized_discounted_cumulative_gain_at_5": 0.0405,
            "normalized_discounted_cumulative_gain_at_10": 0.0513,
            "normalized_discounted_cumulative_gain_at_25": 0.0828,
            "precision_at_5": 0.0136,
            "precision_at_10": 0.0102,
            "precision_at_25": 0.0091,
        }
        "recommenderConfig": {},
        "creationDateTime": "2022-05-06T10:11:24.589000-07:00",
        "lastUpdatedDateTime": "2022-05-06T10:34:33.270000-07:00",
        "status": "ACTIVE",
    }
}
```

### Recuperação de métricas (AWS SDKs)
<a name="retrieving-recommender-metrics-sdk"></a>

O código a seguir mostra como obter métricas para um recomendador com o SDK para Python (Boto3).

```
import boto3

personalize = boto3.client('personalize')

response = personalize.describe_recommender(
    recommenderArn = 'recommender_arn'
)
print(response['recommender']['modelMetrics'])
```

Veja a seguir um exemplo da saída de métricas de um recomendador criado para o caso de uso *Principais escolhas para você* para o domínio VIDEO\$1ON\$1DEMAND.

```
{
    "recommender": {
        "recommenderArn": "arn:aws:personalize:region:acct-id:recommender/recommenderName",
        "datasetGroupArn": "arn:aws:personalize:region:acct-id:dataset-group/dsGroupName",
        "name": "name123",
        "recipeArn": "arn:aws:personalize:::recipe/aws-vod-top-picks",
        "modelMetrics": {
            "coverage": 0.27,
            "mean_reciprocal_rank_at_25": 0.0379,
            "normalized_discounted_cumulative_gain_at_5": 0.0405,
            "normalized_discounted_cumulative_gain_at_10": 0.0513,
            "normalized_discounted_cumulative_gain_at_25": 0.0828,
            "precision_at_5": 0.0136,
            "precision_at_10": 0.0102,
            "precision_at_25": 0.0091,
        }
        "recommenderConfig": {},
        "creationDateTime": "2022-05-06T10:11:24.589000-07:00",
        "lastUpdatedDateTime": "2022-05-06T10:34:33.270000-07:00",
        "status": "ACTIVE",
    }
}
```

## Definições de métrica
<a name="metric-definitions-recommenders"></a>

As métricas que o Amazon Personalize gera para o recomendador são descritas abaixo usando os seguintes termos:
+ A *recomendação relevante* é uma recomendação para um item com o qual o usuário realmente interagiu. Esses itens são dos 10% mais recentes dos dados de interações de cada usuário do conjunto de testes. 
+ *Classificação* refere-se à posição de um item recomendado na lista de recomendações. Posição 1 (a primeira na lista) é considerada a mais relevante para o usuário.

Para cada métrica, números mais altos (próximos a 1) são melhores. Para se aprofundar, consulte os atributos listados em [Atributos adicionais](#additional-metrics-resources-recommenders).

**cobertura**  
 O valor da *cobertura* informa a proporção de itens exclusivos que o Amazon Personalize pode recomendar em relação ao número total de itens exclusivos nos conjuntos de dados Interações e Itens. Uma pontuação de cobertura mais alta significa que o Amazon Personalize recomenda mais dos seus itens e não apenas os mesmos itens repetidamente para usuários diferentes. Os casos de uso que apresentam a exploração de itens, como *Principais escolhas para você* (VIDEO\$1ON\$1DEMAND) e *Recomendados para você* (ECOMMERCE), têm maior cobertura do que aqueles que não apresentam. 

**classificação recíproca média 25**  
Essa métrica fala sobre a capacidade de um modelo de gerar uma recomendação relevante na posição mais alta. Você pode escolher um modelo com uma *classificação recíproca média 25* alta se estiver gerando resultados de pesquisa relevantes para um usuário e não esperar que o usuário escolha um item mais abaixo na lista. Por exemplo, os usuários costumam escolher a primeira fórmula culinária nos resultados da pesquisa.   
 O Amazon Personalize calcula essa métrica usando a pontuação média de classificação recíproca para solicitações de recomendações. Cada pontuação de classificação recíproca é calculada da seguinte forma: `1 / the rank of the highest item interacted with by the user`, onde o total de classificações possíveis é 25. Outros itens de classificação inferior com os quais o usuário interage são ignorados. Se o usuário escolheu o primeiro item, a pontuação é 1. Se ele não escolher nenhum item, a pontuação é 0.   
 Por exemplo, você pode mostrar 25 recomendações para três usuários diferentes:   
+ Se o Usuário 1 clicar no item na classificação *4* e no item na classificação *10*, sua pontuação de classificação recíproca será *1/4*.
+ Se o Usuário 2 clicar em um item na classificação *2*, um item na classificação *4* e um item na classificação *12*, sua pontuação de classificação recíproca será 1/2.
+ Se o Usuário 3 clicar em um único item na classificação *6*, sua pontuação de classificação recíproca será 1/6.
 A classificação recíproca média de todas as solicitações de recomendações (neste caso, 3) é calculada como `(1/4 + 1/2 + 1/6) / 3 = .3056`.   


**ganho cumulativo descontado normalizado (NDCG) em K (5, 10 e 25)**  
Essa métrica informa quão bem seu modelo classifica as recomendações, onde K é um tamanho de amostra de 5, 10 ou 25 recomendações. Essa métrica é útil se você estiver mais interessado na classificação das recomendações além do item com a classificação mais alta (para isso, consulte `mean reciprocal rank at 25`). Por exemplo, a pontuação para `NDCG at 10` seria útil se você tivesse um aplicativo que exibisse até 10 filmes em um carrossel por vez.   
O Amazon Personalize calcula o NDCG atribuindo peso às recomendações com base na posição de classificação de cada usuário no conjunto de testes. Cada recomendação é descontada (recebe um peso menor) por um fator que depende da posição dela. A métrica final é a média de todos os usuários no conjunto de testes. O ganho cumulativo com desconto normalizado em K pressupõe que as recomendações que estão abaixo na lista são menos relevantes do que as recomendações acima na lista.  
O Amazon Personalize usa um fator de peso de `1/log(1 + position)`, onde a primeira posição da lista é `1`.

**precisão em K**  
Essa métrica informa o nível de relevância das recomendações do seu modelo com base em um tamanho de amostra de K recomendações (5, 10 ou 25).   
 O Amazon Personalize calcula essa métrica com base no número de recomendações relevantes das K principais recomendações para cada usuário no conjunto de testes, dividido por K, onde K é 5, 10 ou 25. A métrica final é a média de todos os usuários no conjunto de testes.  
Por exemplo, se você recomendar 10 itens para um usuário, e o usuário interagir com 3 deles, a precisão em K é de 3 itens previstos corretamente divididos pelo total de 10 itens recomendados: `3 / 10 = .30`.   
Essa métrica recompensa as recomendações precisas de itens relevantes. Quanto mais próxima a pontuação for de um, mais preciso será o modelo. 

## Exemplo
<a name="working-with-recommender-metrics-example"></a>

Veja a seguir um exemplo simples em que um recomendador produz uma lista de recomendações para um usuário específico. A segunda e a quinta recomendação correspondem a registros nos dados de teste para esse usuário. Essas são as recomendações relevantes. Se `K` estiver definido como `5`, as seguintes métricas serão geradas para o usuário.

**reciprocal\$1rank**  
Cálculo: 1/2  
Resultado: 0,5000

**normalized\$1discounted\$1cumulative\$1gain\$1at\$15**  
Cálculo: (1/log(1 \$1 2) \$1 1/log(1 \$1 5)) / (1/log(1 \$1 1) \$1 1/log(1 \$1 2))  
Resultado: 0,6241

**precision\$1at\$15**  
Cálculo: 2/5  
Resultado: 0,4000

## Atributos adicionais
<a name="additional-metrics-resources-recommenders"></a>

Para se aprofundar nos diferentes tipos de métricas para sistemas de recomendação, consulte os seguintes atributos externos:
+ [MRR vs MAP vs NDCG: métricas de avaliação com base na classificação e quando usá-las](https://medium.com/swlh/rank-aware-recsys-evaluation-metrics-5191bba16832/)
+  [Ganho cumulativo descontado: as métricas de classificação que você deve conhecer](https://medium.com/@maeliza.seymour/discounted-cumulative-gain-the-ranking-metrics-you-should-know-about-e1d1623f8cd9) 
+  [Recuperação e precisão em k para sistemas de recomendação](https://medium.com/@bond.kirill.alexandrovich/precision-and-recall-in-recommender-systems-and-some-metrics-stuff-ca2ad385c5f8) 
+  [Métricas de avaliação de classificação para sistemas de recomendação](https://towardsdatascience.com/ranking-evaluation-metrics-for-recommender-systems-263d0a66ef54) 