Otimize um modelo usando o modelo Insights estrutura

NOTE
O Área de trabalho de ciência de dados não está mais disponível para compra.
Esta documentação destina-se a clientes existentes com direitos anteriores à Data Science Área de trabalho.

O Model Insights Framework fornece ao cientista de dados ferramentas para fazer escolhas Data Science Workspace 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 dos fluxo de Trabalho de aprendizagem de máquina, bem como melhorará a facilidade de uso para os cientistas de dados. Isso é feito fornecendo uma modelo padrão para cada tipo de algoritmo de aprendizado de máquina para ajudar 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 modelo para seus clientes finais.

O que são métricas?

Depois de implementar e treinamento 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 eficiência de um modelo em comparação com outras. Alguns exemplos de métricas usadas incluem:

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

Configuração do código de fórmula

Atualmente, o Modelo Insights Framework suporta os seguintes tempos de execução:

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

Scala scala

Há duas maneiras de inserir métricas nas 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 implementados atualmente:

Classe avaliador
evaluation.class
DefaultBinaryClassificationEvaluator
com.adobe.platform.ml.impl.DefaultBinaryClassificationEvaluator
DefaultMultiClassificationEvaluator
com.adobe.platform.ml.impl.DefaultMultiClassificationEvaluator
RecommendationsEvaluator
com.adobe.platform.ml.impl.RecommendationsEvaluator

O avaliador pode ser definido na fórmula no arquivo aplicativo.properties na recipe pasta. O código de amostra que permite a exibição DefaultBinaryClassificationEvaluator abaixo é mostrado abaixo:

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

Depois que uma classe de avaliador for ativada, várias métricas serão calculadas durante treinamento por padrão. Métricas padrão podem ser declaradas explicitamente adicionando a seguinte linha.application.properties

evaluation.metrics.com=com.adobe.platform.ml.impl.Constants.DEFAULT
NOTE
Se a métrica não estiver definida, as métricas padrão estarão ativas.

É possível ativar um métrica específico alterando o valor de evaluation.metrics.com. No exemplo a seguir, a Pontuação F métrica está ativada.

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

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

evaluator.class
Métricas padrão
evaluation.metric
DefaultBinaryClassificationEvaluator
-Precision
-Recall
-Confusion Matrix
-F-Score
-Accuracy
-Receiver Operating Characteristics
-Area Under the Receiver Operating Characteristics
-PRECISION
- -CONFUSION_MATRIX

RECALL -FSCORE
-ACCURACY
- -ROC
AUROC
DefaultMultiClassificationEvaluator
-Precision
-Recall
-Confusion Matrix
-F-Score
-Accuracy
-Receiver Operating Characteristics
-Area Under the Receiver Operating Characteristics
-PRECISION
- -CONFUSION_MATRIX

RECALL -FSCORE
-ACCURACY
- -ROC
AUROC
RecommendationsEvaluator
-Average Precision (MAP)
-Normalized Discounted Cumulative Gain
-Mean Reciprocal Rank
-Metric K
- -MEAN_AVERAGE_PRECISION

NDCG - - -MRR
METRIC_K

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

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

IMPORTANT
Para a MLMetric classe, não use "measures" para valueType quando criar outra nova MLMetric , 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"))
Isso não é o seguinte: metrics.add(new MLMetric("MAPE", mape, "measures"))

Depois de definido na fórmula, a próxima etapa é habilitá-lo nas fórmulas. Isso é feito no arquivo aplicativo.properties da pasta do resources projeto. Aqui, o evaluation.class conjunto é definido para a Evaluator classe definida em Evaluator.scala

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

No usuário Data Science Workspaceseria possível ver os insights nas "Métricas de avaliação" guia no experimento página.

Python/Tensorflow pythontensorflow

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 avaliação personalizada métrica. Isso pode ser feito implementando a Evaluator classe.

Métricas de avaliação personalizadas para Python

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

Pois Python, esses métodos seriam definidos em evaluator.py para a Evaluator classe. Siga a evaluator.py link para obter um exemplo do Evaluator.

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

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

O objetivo do split() método é inserir dados e criar um treinamento e um conjunto de dados de teste. No nosso exemplo, o split() método insira dados usando o DataSetReader SDK 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 split() método deve retornar um treinamento e testar o pipeline() período de dados que é então usado pelos métodos para treinar e teste o modelo ML.

Métricas de avaliação personalizadas para o tensorflow

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

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 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 applicationEvaluator classe como parte do fórmula.

Métricas de avaliação personalizadas para R

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

Este applicationEvaluator.R pode ser usado como um exemplo. Neste exemplo, ele 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 primeiro em um conjunto de dados a partir de uma origem conforme definido em retail.config.json. A partir daí, os dados são limpos e projetados para se ajustarem ao modelo de aprendizado de máquina. Por fim, o modelo é usado para fazer uma previsão usando nosso conjunto de dados e, a partir dos valores previstos e valores reais, as métricas são calculadas. Nesse caso, MAPE, MAE e RMSE são definidos e retornados no metrics objeto.

Uso pré-construído métricas e gráficos de visualização

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 classes comuns de algoritmo de aprendizado 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
Valores previstos versus reais sobrepor curva
Binário classificação
- Matriz de confusão
- Precisão-recall
- Precisão
- Pontuação F (especificamente F1 ,F2)
- AUC
- ROC
Curva ROC e matriz de confusão
Classificação de várias classes
-Matriz de confusão
- Para cada classe:
- precisão
de recall - Pontuação F (especificamente F1, F2)
Curva ROC e matriz de confusão
Agrupamento (c/ verdade fundamental)
- NMI (pontuação normalizada de informações mútuas), AMI (pontuação ajustada de informações mútuas)
- RI (índice Rand), ARI (índice Rand ajustado)
- pontuação de homogeneidade, pontuação de integridade e medida V
- FMI (índice Fowlkes-Mallows)
- Pureza
- índice Jaccard
Gráfico de clusters mostrando clusters e centroides com tamanhos relativos de cluster que refletem os pontos de dados que estão no cluster
Clustering (sem verdade fundamental)
- Inércia
- Coeficiente de silhueta
- CHI (índice Calinski-Harabaz)
- DBI (índice Davies-Bouldin)
- índice Dunn
Gráfico de clusters mostrando clusters e centroides com tamanhos relativos de cluster que refletem os pontos de dados que estão no cluster
Recomendação
-Precisão Média Média (MAP)
-Ganho Cumulativo Descontado Normalizado
-Classificação Recíproca Média
-Métrica K
A ser definido
Casos de uso do TensorFlow
Análise do modelo de fluxo de tensor (TFMA)
Comparação/visualização de modelos de rede neural Deepcompare
Mecanismo de captura de outros/erros
Lógica de métrica personalizada (e gráficos de avaliação correspondentes) definida pelo autor do modelo. Tratamento de erros graciosos em caso de modelo incompatibilidade
Tabela com pares de valor-chave para métricas de avaliação
recommendation-more-help
cc79fe26-64da-411e-a6b9-5b650f53e4e9