Optimizar un modelo con el marco de trabajo de perspectivas del modelo
El marco de datos de Model Insights proporciona al científico de datos las herramientas siguientes Data Science Workspace tomar decisiones rápidas e informadas para obtener modelos óptimos de aprendizaje automático basados en experimentos. El marco mejorará la velocidad y la eficacia del flujo de trabajo de aprendizaje automático, así como la facilidad de uso de los científicos de datos. Para ello, proporcione una plantilla predeterminada para cada tipo de algoritmo de aprendizaje automático que le ayude a ajustar el modelo. El resultado final permite a los científicos de datos y a los científicos de datos ciudadanos tomar mejores decisiones de optimización de modelos para sus clientes finales.
¿Qué son las métricas?
Después de implementar y entrenar un modelo, el siguiente paso que un científico de datos haría es encontrar el rendimiento del modelo. Se utilizan varias métricas para encontrar la eficacia que tendrá un modelo en comparación con otros. Algunos ejemplos de métricas utilizadas son:
- Precisión de clasificación
- Área bajo curva
- Matriz de confusión
- Informe de clasificación
Configuración del código de fórmula
Actualmente, el módulo de información del modelo admite los siguientes tiempos de ejecución:
Puede encontrar un código de muestra de fórmulas en la experience-platform-dsw-reference repositorio en recipes
. Se hará referencia a archivos específicos de este repositorio a través de este tutorial.
Scala scala
Existen dos formas de añadir métricas a las recetas. Una es utilizar las métricas de evaluación predeterminadas proporcionadas por el SDK y la otra es escribir métricas de evaluación personalizadas.
Métricas de evaluación predeterminadas para Scala
Las evaluaciones predeterminadas se calculan como parte de los algoritmos de clasificación. Estos son algunos valores predeterminados para los evaluadores que están implementados actualmente:
evaluation.class
com.adobe.platform.ml.impl.DefaultBinaryClassificationEvaluator
com.adobe.platform.ml.impl.DefaultMultiClassificationEvaluator
com.adobe.platform.ml.impl.RecommendationsEvaluator
El evaluador se puede definir en la fórmula de application.properties archivo en el recipe
carpeta. Código de muestra que habilita el DefaultBinaryClassificationEvaluator
se muestra a continuación:
evaluation.class=com.adobe.platform.ml.impl.DefaultBinaryClassificationEvaluator
evaluation.labelColumn=label
evaluation.predictionColumn=prediction
training.evaluate=true
Una vez habilitada una clase de evaluador, se calcularán varias métricas durante la formación de forma predeterminada. Las métricas predeterminadas se pueden declarar explícitamente agregando la siguiente línea a su application.properties
.
evaluation.metrics.com=com.adobe.platform.ml.impl.Constants.DEFAULT
Se puede habilitar una métrica específica cambiando el valor de evaluation.metrics.com
. En el ejemplo siguiente, la métrica de puntuación F está habilitada.
evaluation.metrics=com.adobe.platform.ml.impl.Constants.FSCORE
En la tabla siguiente se muestran las métricas predeterminadas de cada clase. Un usuario también puede utilizar los valores de la variable evaluation.metric
para habilitar una métrica específica.
evaluator.class
evaluation.metric
DefaultBinaryClassificationEvaluator
-Recordar
-Matriz de confusión
-Puntuación F
-Precisión
-Características de funcionamiento del receptor
-Área bajo las características de funcionamiento del receptor
PRECISION
-
RECALL
-
CONFUSION_MATRIX
-
FSCORE
-
ACCURACY
-
ROC
-
AUROC
DefaultMultiClassificationEvaluator
-Recordar
-Matriz de confusión
-Puntuación F
-Precisión
-Características de funcionamiento del receptor
-Área bajo las características de funcionamiento del receptor
PRECISION
-
RECALL
-
CONFUSION_MATRIX
-
FSCORE
-
ACCURACY
-
ROC
-
AUROC
RecommendationsEvaluator
Ganancia acumulada descontada normalizada
-Rango recíproco medio
-Métrica K
MEAN_AVERAGE_PRECISION
-
NDCG
-
MRR
-
METRIC_K
Métricas de evaluación personalizadas para Scala
El evaluador personalizado se puede proporcionar ampliando la interfaz de MLEvaluator.scala
en su Evaluator.scala
archivo. En el ejemplo Evaluator.scala archivo, definimos personalizado split()
y evaluate()
funciones. Nuestro split()
divide nuestros datos aleatoriamente con una relación de 8:2 y nuestra función evaluate()
define y devuelve 3 métricas: MAPE, MAE y RMSE.
MLMetric
clase, no utilice "measures"
para valueType
al crear un nuevo MLMetric
de lo contrario, la métrica no se rellenará en la tabla de métricas de evaluación personalizadas.metrics.add(new MLMetric("MAPE", mape, "double"))
No es esto:
metrics.add(new MLMetric("MAPE", mape, "measures"))
Una vez definida en la fórmula, el siguiente paso es habilitarla en las fórmulas. Esto se hace en el application.properties en el archivo del proyecto resources
carpeta. Aquí el evaluation.class
se establece en Evaluator
clase definida en Evaluator.scala
evaluation.class=com.adobe.platform.ml.Evaluator
En el Data Science WorkspacePor lo tanto, el usuario podría ver las perspectivas en la pestaña "Métricas de evaluación" en la página del experimento.
Python/Tensorflow pythontensorflow
Por ahora, no hay métricas de evaluación predeterminadas para Python o Tensorflow. Por lo tanto, para obtener las métricas de evaluación de Python o Tensorflow, deberá crear una métrica de evaluación personalizada. Esto se puede hacer implementando el Evaluator
clase.
Métricas de evaluación personalizadas para Python
Para las métricas de evaluación personalizadas, existen dos métodos principales que deben implementarse para el evaluador: split()
y evaluate()
.
Para Python, estos métodos se definirían en evaluator.py para el Evaluator
clase. Siga las evaluator.py vínculo para ver un ejemplo de Evaluator
.
Creación de métricas de evaluación en Python requiere que el usuario implemente el evaluate()
y split()
métodos.
El evaluate()
El método devuelve el objeto metric que contiene una matriz de objetos de métricas con propiedades de name
, value
, y valueType
.
El propósito de la split()
El método es introducir datos y generar un conjunto de datos de formación y prueba. En nuestro ejemplo, la variable split()
el método introduce datos utilizando DataSetReader
SDK y, a continuación, limpia los datos eliminando las columnas no relacionadas. A partir de ahí, se crean funciones adicionales a partir de las funciones sin procesar existentes en los datos.
El split()
El método debe devolver un marco de datos de formación y prueba que luego utiliza el pipeline()
métodos para entrenar y probar el modelo ML.
Métricas de evaluación personalizadas para Tensorflow
Para Tensorflow, similar a Python, los métodos evaluate()
y split()
en el Evaluator
tendrá que implementarse la clase. Para evaluate()
, las métricas deben devolverse mientras split()
devuelve los conjuntos de datos de prueba y tren.
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
Por ahora, no hay métricas de evaluación predeterminadas para R. Por lo tanto, para obtener las métricas de evaluación de R, deberá definir la variable applicationEvaluator
como parte de la fórmula.
Métricas de evaluación personalizadas para R
El objetivo principal de la applicationEvaluator
es devolver un objeto JSON que contiene pares de métricas clave-valor.
Esta applicationEvaluator.R se puede utilizar como ejemplo. En este ejemplo, la variable applicationEvaluator
se divide en tres secciones familiares:
- Carga de datos
- Preparación de datos/ingeniería de funciones
- Recuperar modelo guardado y evaluar
Los datos se cargan primero en un conjunto de datos desde un origen como se define en retail.config.json. A partir de ahí, los datos se limpian y se diseñan para adaptarse al modelo de aprendizaje automático. Por último, el modelo se utiliza para hacer una predicción con nuestro conjunto de datos y a partir de los valores predichos y los valores reales, se calculan las métricas. En este caso, MAPE, MAE y RMSE se definen y devuelven en la variable metrics
objeto.
Uso de métricas creadas previamente y gráficos de visualización
El Sensei Model Insights Framework admitirá una plantilla predeterminada para cada tipo de algoritmo de aprendizaje automático. La tabla siguiente muestra las clases de algoritmos comunes de aprendizaje automático de alto nivel y las métricas y visualizaciones de evaluación correspondientes.
- MAPE
- MASE
- MAE
- Recuperación de precisión
- Precisión
- Puntuación F (específicamente F1 ;F2)
- AUC
- ROC
- Para cada clase:
- precisión de recuperación
- Puntuación F (específicamente F1, F2)
- RI (índice Rand), ARI (índice Rand ajustado)
- puntuación de homogeneidad, puntuación de integridad y medida en V
- FMI (índice Fowlkes-Mallow)
- Pureza
- Índice Jaccard
- Coeficiente de silueta
- CHI (índice Calinski-Harabaz)
- DBI (índice Davies-Bouldin)
- Índice de Dunn
Ganancia acumulada descontada normalizada
-Rango recíproco medio
-Métrica K