Otimizar um modelo usando a estrutura de insights do modelo

A Estrutura de insights do modelo fornece ao cientista de dados ferramentas em Data Science Workspace para fazer escolhas rápidas e informadas para modelos ideais de aprendizado de máquina com base em experimentos. A estrutura melhorará a velocidade e a eficácia do fluxo de trabalho de aprendizado de máquina, bem como a facilidade de uso para cientistas de dados. Isso é feito fornecendo um modelo padrão para cada tipo de algoritmo de aprendizado de máquina para auxiliar no ajuste do modelo. O resultado final permite que cientistas de dados e cientistas de dados cidadãos tomem melhores decisões de otimização de modelos para seus clientes finais.

O que são métricas?

Depois de implementar e treinar um modelo, o próximo passo que um cientista de dados faria é descobrir o desempenho do modelo. Várias métricas são usadas para descobrir a eficácia de um modelo em comparação com outras. Alguns exemplos de métricas usadas incluem:

  • Precisão da classificação
  • Área sob curva
  • Matriz de confusão
  • Relatório de classificação

Configuração do código da receita

Atualmente, a Estrutura de insights do modelo oferece suporte aos seguintes tempos de execução:

O código de amostra das receitas pode ser encontrado no repositório experience-platform-dsw-reference em recipes. Arquivos específicos deste repositório serão referenciados neste tutorial.

Escala

Há duas maneiras de trazer métricas para as receitas. Uma é usar as métricas de avaliação padrão fornecidas pelo SDK e a outra é gravar métricas de avaliação personalizadas.

Métricas de avaliação padrão para Scala

As avaliações padrão são calculadas como parte dos algoritmos de classificação. Estes são alguns valores padrão para avaliadores que estão implementados no momento:

| Classe do Avaliador | evaluation.class |

DefaultBinaryClassificationEvaluator
DefaultMultiClassificationEvaluator
RecommendationsEvaluator

O avaliador pode ser definido na fórmula no arquivo application.properties na pasta recipe. O código de amostra que habilita o DefaultBinaryClassificationEvaluator é mostrado abaixo:

evaluation.class=com.adobe.platform.ml.impl.DefaultBinaryClassificationEvaluator
evaluation.labelColumn=label
evaluation.predictionColumn=prediction
training.evaluate=true

Após habilitar uma classe de avaliador, várias métricas serão calculadas durante o treinamento por padrão. As métricas padrão podem ser declaradas explicitamente, adicionando a seguinte linha em seu application.properties.

evaluation.metrics.com=com.adobe.platform.ml.impl.Constants.DEFAULT
OBSERVAÇÃO

Se a métrica não estiver definida, as métricas padrão estarão ativas.

Uma métrica específica pode ser ativada alterando o valor de evaluation.metrics.com. No exemplo a seguir, a métrica de pontuação F é ativada.

evaluation.metrics=com.adobe.platform.ml.impl.Constants.FSCORE

A tabela a seguir indica as métricas padrão para cada classe. Um usuário também pode usar os valores na coluna evaluation.metric para ativar uma métrica específica.

| evaluator.class | Métricas padrão | evaluation.metric |
— | — |

| DefaultBinaryClassificationEvaluator | -Precision
-Recall
-Confusion Matrix
-F-Score
-Precisão
-Receiver Operating Characteres
-Área Sob as Características Operacionais do Receptor | -PRECISION
-RECALL
-CONFUSION_MATRIX
-FSCORE
-ACCURACY
-ROC
-AUROC |
| DefaultMultiClassificationEvaluator | -Precision
-Recall
-Confusion Matrix
-F-Score
-Precisão
-Receiver Operating Characteres
-Área Sob as Características Operacionais do Receptor | -PRECISION
-RECALL
-CONFUSION_MATRIX
-FSCORE
-ACCURACY
-ROC
-AUROC |
| RecommendationsEvaluator | -Precisão média (MAP)
-Ganho cumulativo descontado normalizado
-Classificação recíproca média
-Métrica K | -MEAN_AVERAGE_PRECISION
-NDCG
-MRR
-METRIC_K |

Métricas de avaliação personalizadas para Scala

O avaliador personalizado pode ser fornecido estendendo a interface de MLEvaluator.scala em seu arquivo Evaluator.scala. No exemplo do arquivo Evaluator.escala, definimos funções split() e evaluate() personalizadas. Nossa função split() divide nossos dados aleatoriamente com uma proporção de 8:2 e nossa função evaluate() define e retorna 3 métricas: MAPE, MAE e RMSE.

IMPORTANTE

Para a classe MLMetric, não use "measures" para valueType ao criar um novo MLMetric; caso contrário, a métrica não será preenchida na tabela de métricas de avaliação personalizadas.

Faça isso: metrics.add(new MLMetric("MAPE", mape, "double"))
Não é isso: metrics.add(new MLMetric("MAPE", mape, "measures"))

Uma vez definido na receita, a próxima etapa é habilitá-la nas receitas. Isso é feito no arquivo application.properties na pasta resources do projeto. Aqui, evaluation.class está definido para a classe Evaluator definida em Evaluator.scala

evaluation.class=com.adobe.platform.ml.Evaluator

No Data Science Workspace, o usuário poderá ver os insights na guia "Métricas de Avaliação" na página de experimento.

Python/Tensorflow

A partir de agora, não há métricas de avaliação padrão para Python ou Tensorflow. Assim, para obter as métricas de avaliação para Python ou Tensorflow, será necessário criar uma métrica de avaliação personalizada. Isso pode ser feito implementando a classe Evaluator .

Métricas de avaliação personalizadas para Python

Para métricas de avaliação personalizadas, há dois métodos principais que precisam ser implementados para o avaliador: split() e evaluate().

Para Python, esses métodos seriam definidos em avaliator.py para a classe Evaluator. Siga o link valuator.py para obter um exemplo do Evaluator.

A criação de métricas de avaliação em Python requer que o usuário implemente os métodos evaluate() e split().

O método evaluate() retorna o objeto de métrica que contém uma matriz de objetos de métrica com propriedades name, value e valueType.

O objetivo do método split() é inserir dados e produzir um conjunto de dados de treinamento e teste. Em nosso exemplo, o método split() insere dados usando o SDK DataSetReader e, em seguida, limpa os dados removendo colunas não relacionadas. A partir daí, recursos adicionais são criados a partir de recursos brutos existentes nos dados.

O método split() deve retornar um quadro de dados de formação e de ensaio que é depois utilizado pelos métodos pipeline() para treinar e testar o modelo ML.

Métricas de avaliação personalizadas para Tensorflow

Para Tensorflow, semelhante a Python, os métodos evaluate() e split() na classe Evaluator precisarão ser implementados. Para evaluate(), as métricas devem ser retornadas enquanto split() retorna o trem e os conjuntos de dados de teste.

from ml.runtime.python.Interfaces.AbstractEvaluator import AbstractEvaluator

class Evaluator(AbstractEvaluator):
    def __init__(self):
       print ("initiate")

    def evaluate(self, data=[], model={}, config={}):

        return metrics

    def split(self, config={}):

       return 'train', 'test'

R

A partir de agora, não há métricas de avaliação padrão para R. Assim, para obter as métricas de avaliação para R, você precisará definir a classe applicationEvaluator como parte da receita.

Métricas de avaliação personalizadas para R

O principal objetivo do applicationEvaluator é retornar um objeto JSON contendo pares de valores chave de métricas.

Este applicationEvaluator.R pode ser usado como exemplo. Neste exemplo, o applicationEvaluator é dividido em três seções familiares:

  • Carregar dados
  • Preparação de dados/engenharia de recursos
  • Recuperar modelo salvo e avaliar

Os dados são carregados pela primeira vez em um conjunto de dados de uma fonte, conforme definido em retail.config.json. A partir daí, os dados são limpos e projetados para se encaixarem no modelo de aprendizado de máquina. Por fim, o modelo é usado para fazer uma previsão usando nosso conjunto de dados e dos valores previstos e valores reais, as métricas são calculadas. Nesse caso, MAPE, MAE e RMSE são definidos e retornados no objeto metrics .

Uso de métricas e gráficos de visualização pré-criados

O Sensei Model Insights Framework oferecerá suporte a um modelo padrão para cada tipo de algoritmo de aprendizado de máquina. A tabela abaixo mostra as classes comuns de algoritmo de aprendizagem de máquina de alto nível e as métricas e visualizações de avaliação correspondentes.

| Tipo de algoritmo ML | Métricas de avaliação | Visualizações |
— | — |

| Regressão | - RMSE
- MAPE
- MASE
- MAE | Curva de sobreposição de valores previstos e reais |
| Classificação binária | - Matriz de conversão
- Precisão-recuperação
- Precisão
- Pontuação F (especificamente F1,F2)
- AUC
- ROC | Curva de ROC e matriz de confusão |
| Classificação multiclasse | -Matriz de conversão
- Para cada classe:
- precisão de chamada
- pontuação F (especificamente F1, F2) | Curva de ROC e matriz de confusão |
| Clustering (sem verdade básica) | - NMI (pontuação normalizada de informações mútuas), AMI (pontuação de informações mútuas ajustada)
- RI (índice Rand ajustado), ARI (índice Rand ajustado)
- pontuação de homogeneidade, pontuação de integridade e V-measure
- FMI (índice Fowlkes-Mallow)
- Pureza
- Índice de cartão Jacob | Gráfico de clusters mostrando clusters e centróides com tamanhos de cluster relativos que refletem pontos de dados que estão no cluster |
| Clustering (sem verdade básica) | - Inertia
- Coeficiente de silhueta
- CHI (índice Calinski-Harabaz)
- DBI (índice Davies-Bouldin)
- Índice Dunn | Gráfico de clusters mostrando clusters e centróides com tamanhos de cluster relativos que refletem pontos de dados que estão no cluster |
| Recomendação | -Precisão média (MAP)
-Ganho cumulativo descontado normalizado
-Classificação recíproca média
-Métrica K | TBD |
| Casos de uso do TensorFlow | Análise de Modelo de Fluxo de Tensor (TFMA) | Comparação/visualização detalhada do modelo de rede neural |
| Mecanismo de captura de erros/outros | Lógica de métrica personalizada (e gráficos de avaliação correspondentes) definida pelo autor do modelo. Tratamento de erros significativos em caso de incompatibilidade de modelos | Tabela com pares de valores chave para métricas de avaliação |

Nesta página

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now