

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á.

# Interpretar resultados
<a name="model-monitor-interpreting-results"></a>

Depois de executar um trabalho de processamento de linha de base e obter estatísticas e restrições para o seu conjunto de dados, você poderá executar trabalhos de monitoramento que calculam estatísticas e listam as violações encontradas em relação às restrições de linha de base. CloudWatch As métricas da Amazon também são relatadas em sua conta por padrão. Para obter informações sobre a visualização dos resultados do monitoramento no Amazon SageMaker Studio, consulte[Visualize resultados para endpoints em tempo real no Amazon Studio SageMaker](model-monitor-interpreting-visualize-results.md).

## Execuções de lista
<a name="model-monitor-interpreting-results-list-executions"></a>

A programação inicia trabalhos de monitoramento nos intervalos especificados. O código a seguir lista as cinco últimas execuções. Se você estiver executando esse código depois de criar a programação por hora, as execuções poderão estar vazias e você poderá ter que esperar até cruzar o limite de horas (em UTC) para ver as execuções serem iniciadas. O código a seguir inclui a lógica de espera.

```
mon_executions = my_default_monitor.list_executions()
print("We created a hourly schedule above and it will kick off executions ON the hour (plus 0 - 20 min buffer.\nWe will have to wait till we hit the hour...")

while len(mon_executions) == 0:
    print("Waiting for the 1st execution to happen...")
    time.sleep(60)
    mon_executions = my_default_monitor.list_executions()
```

## Inspecionar uma execução específica
<a name="model-monitor-interpreting-results-inspect-specific-execution"></a>

 

Na etapa anterior, você selecionou a execução programada concluída ou com falha mais recente. É possível explorar o que deu certo ou errado. Os estados finais são:
+ `Completed`: A execução do monitoramento foi concluída e nenhum problema foi encontrado no relatório de violações.
+ `CompletedWithViolations`: A execução foi concluída, mas foram detectadas violações de restrição.
+ `Failed`: A execução de monitoramento falhou, possivelmente devido a erro do cliente (por exemplo, problemas de função) ou problemas de infraestrutura. Para identificar a causa, consulte `FailureReason` e `ExitMessage`.

```
latest_execution = mon_executions[-1] # latest execution's index is -1, previous is -2 and so on..
time.sleep(60)
latest_execution.wait(logs=False)

print("Latest execution status: {}".format(latest_execution.describe()['ProcessingJobStatus']))
print("Latest execution result: {}".format(latest_execution.describe()['ExitMessage']))

latest_job = latest_execution.describe()
if (latest_job['ProcessingJobStatus'] != 'Completed'):
        print("====STOP==== \n No completed executions to inspect further. Please wait till an execution completes or investigate previously reported failures.")
```

```
report_uri=latest_execution.output.destination
print('Report Uri: {}'.format(report_uri))
```

## Relatórios gerados por listas
<a name="model-monitor-interpreting-results-list-generated-reports"></a>

Use o código a seguir para listar os relatórios gerados. 

```
from urllib.parse import urlparse
s3uri = urlparse(report_uri)
report_bucket = s3uri.netloc
report_key = s3uri.path.lstrip('/')
print('Report bucket: {}'.format(report_bucket))
print('Report key: {}'.format(report_key))

s3_client = boto3.Session().client('s3')
result = s3_client.list_objects(Bucket=report_bucket, Prefix=report_key)
report_files = [report_file.get("Key") for report_file in result.get('Contents')]
print("Found Report Files:")
print("\n ".join(report_files))
```

## Relatório de violações
<a name="model-monitor-interpreting-results-violations-report"></a>

Se houver violações comparadas à linha de base, elas serão geradas no relatório de violações. Use o código a seguir para listar as violações.

```
violations = my_default_monitor.latest_monitoring_constraint_violations()
pd.set_option('display.max_colwidth', -1)
constraints_df = pd.io.json.json_normalize(violations.body_dict["violations"])
constraints_df.head(10)
```

Isso se aplica somente a conjuntos de dados que contêm dados tabulares. Os arquivos de esquema a seguir especificam as estatísticas calculadas e as violações monitoradas.

Arquivos de saída para conjuntos de dados tabulares


| Nome do arquivo | Description | 
| --- | --- | 
| statistics.json |  Contém estatísticas colunares para cada atributo no conjunto de dados que é analisado. Consulte o esquema desse arquivo no próximo tópico.  Esse arquivo é criado somente para monitoramento da qualidade dos dados.   | 
| constraint\$1violations.json |  Contém uma lista de violações encontradas nesse conjunto atual de dados em comparação com o arquivo de estatísticas e restrições de linha de base especificado nos caminhos `baseline_constaints` e `baseline_statistics`.  | 

Por padrão, [Contêiner pré-construído Amazon SageMaker Model Monitor](model-monitor-pre-built-container.md) salva um conjunto de CloudWatch métricas da Amazon para cada recurso. 

O código do contêiner pode emitir CloudWatch métricas neste local:`/opt/ml/output/metrics/cloudwatch`. 