Otimize um modelo usando o modelo Insights estrutura
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:
evaluation.class
com.adobe.platform.ml.impl.DefaultBinaryClassificationEvaluator
com.adobe.platform.ml.impl.DefaultMultiClassificationEvaluator
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
É 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
evaluation.metric
DefaultBinaryClassificationEvaluator
-Recall
-Confusion Matrix
-F-Score
-Accuracy
-Receiver Operating Characteristics
-Area Under the Receiver Operating Characteristics
PRECISION
- -
CONFUSION_MATRIX
RECALL
-FSCORE
-
ACCURACY
- -
ROC
AUROC
DefaultMultiClassificationEvaluator
-Recall
-Confusion Matrix
-F-Score
-Accuracy
-Receiver Operating Characteristics
-Area Under the Receiver Operating Characteristics
PRECISION
- -
CONFUSION_MATRIX
RECALL
-FSCORE
-
ACCURACY
- -
ROC
AUROC
RecommendationsEvaluator
-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.
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.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
, value
e 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.
- MAPE
- MASE
- MAE
- Precisão-recall
- Precisão
- Pontuação F (especificamente F1 ,F2)
- AUC
- ROC
- Para cada classe:
- precisão
de recall - Pontuação F (especificamente F1, F2)
- 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
- Coeficiente de silhueta
- CHI (índice Calinski-Harabaz)
- DBI (índice Davies-Bouldin)
- índice Dunn
-Ganho Cumulativo Descontado Normalizado
-Classificação Recíproca Média
-Métrica K