Il framework Model Insights fornisce allo scienziato dati strumenti in Data Science Workspace effettuare scelte rapide e informate per modelli ottimali di apprendimento automatico basati su esperimenti. Il quadro migliorerà la velocità e l'efficacia del flusso di lavoro di apprendimento automatico nonché la facilità d'uso per i data scientist. A tal fine, viene fornito un modello predefinito per ogni tipo di algoritmo di apprendimento automatico per facilitare l’ottimizzazione del modello. Il risultato finale consente ai data scientist e ai data scientist dei cittadini di prendere decisioni migliori in merito all’ottimizzazione dei modelli per i propri clienti finali.
Dopo aver implementato e addestrato un modello, il passo successivo che un data scientist farebbe è trovare il livello di prestazioni del modello. Vengono utilizzate diverse metriche per determinare l’efficacia di un modello rispetto ad altri. Alcuni esempi di metriche utilizzate includono:
Attualmente, Model Insights Framework supporta i seguenti runtime:
Il codice di esempio per le ricette si trova nella sezione experience-platform-dsw-reference archivio in recipes
. In questa esercitazione verrà fatto riferimento a file specifici da questo archivio.
Esistono due modi per inserire le metriche nelle ricette. Una consiste nell’utilizzare le metriche di valutazione predefinite fornite dall’SDK e l’altra consiste nel scrivere metriche di valutazione personalizzate.
Le valutazioni predefinite vengono calcolate come parte degli algoritmi di classificazione. Di seguito sono riportati alcuni valori predefiniti per i valutatori attualmente implementati:
Classe valutatore | evaluation.class |
---|---|
DefaultBinaryClassificationEvaluator | com.adobe.platform.ml.impl.DefaultBinaryClassificationEvaluator |
DefaultMultiClassificationEvaluator | com.adobe.platform.ml.impl.DefaultMultiClassificationEvaluator |
Valutatore consigli | com.adobe.platform.ml.impl.RecommendationsEvaluator |
Il valutatore può essere definito nella ricetta nel application.properties file in recipe
cartella. Codice di esempio che abilita DefaultBinaryClassificationEvaluator
è mostrato di seguito:
evaluation.class=com.adobe.platform.ml.impl.DefaultBinaryClassificationEvaluator
evaluation.labelColumn=label
evaluation.predictionColumn=prediction
training.evaluate=true
Per impostazione predefinita, dopo l’abilitazione di una classe di valutatore, durante l’apprendimento viene calcolata una serie di metriche. Le metriche predefinite possono essere dichiarate esplicitamente aggiungendo la seguente riga al file application.properties
.
evaluation.metrics.com=com.adobe.platform.ml.impl.Constants.DEFAULT
Se la metrica non è definita, le metriche predefinite saranno attive.
È possibile abilitare una metrica specifica modificando il valore di evaluation.metrics.com
. Nell’esempio seguente, la metrica F-Score è abilitata.
evaluation.metrics=com.adobe.platform.ml.impl.Constants.FSCORE
Nella tabella seguente vengono indicate le metriche predefinite per ogni classe. Un utente può anche utilizzare i valori in evaluation.metric
per abilitare una metrica specifica.
evaluator.class |
Metriche predefinite | evaluation.metric |
---|---|---|
DefaultBinaryClassificationEvaluator |
- Precisione -Richiama -Matrice di confusione -F-Score -Precisione - Caratteristiche operative del ricevitore -Area sotto le caratteristiche operative del ricevitore |
-PRECISION - RECALL - CONFUSION_MATRIX - FSCORE - ACCURACY - ROC - AUROC |
DefaultMultiClassificationEvaluator |
- Precisione -Richiama -Matrice di confusione -F-Score -Precisione - Caratteristiche operative del ricevitore -Area sotto le caratteristiche operative del ricevitore |
-PRECISION - RECALL - CONFUSION_MATRIX - FSCORE - ACCURACY - ROC - AUROC |
RecommendationsEvaluator |
- Precisione media (MAP) - Utile cumulativo scontato normalizzato - Classificazione reciproca media -Metrica K |
-MEAN_AVERAGE_PRECISION - NDCG - MRR - METRIC_K |
L’analizzatore personalizzato può essere fornito estendendo l’interfaccia di MLEvaluator.scala
nel tuo Evaluator.scala
file. Nell’esempio Valutatore.scala file, definiamo personalizzato split()
e evaluate()
funzioni. Nostro split()
la funzione suddivide i dati in modo casuale con un rapporto di 8:2 e evaluate()
La funzione definisce e restituisce 3 metriche: MAPE, MAE e RMSE.
Per MLMetric
classe, non utilizzare "measures"
per valueType
durante la creazione di un nuovo MLMetric
in caso contrario, la metrica non viene inserita nella tabella delle metriche di valutazione personalizzate.
Esegui quanto segue: metrics.add(new MLMetric("MAPE", mape, "double"))
Non questo: metrics.add(new MLMetric("MAPE", mape, "measures"))
Una volta definita nella ricetta, il passaggio successivo è quello di abilitarla nelle ricette. Questa operazione viene eseguita nel application.properties file nel file del progetto resources
cartella. Qui le evaluation.class
è impostato su Evaluator
classe definita in Evaluator.scala
evaluation.class=com.adobe.platform.ml.Evaluator
In Data Science Workspace, l’utente sarebbe in grado di visualizzare le informazioni nella scheda "Metriche di valutazione" nella pagina dell’esperimento.
Al momento non sono disponibili metriche di valutazione predefinite per Python o Tensorflow. Pertanto, per ottenere le metriche di valutazione per Python o Tensorflow, sarà necessario creare una metrica di valutazione personalizzata. Questo può essere fatto implementando Evaluator
classe.
Per le metriche di valutazione personalizzate, è necessario implementare due metodi principali per il valutatore: split()
e evaluate()
.
Per Python, questi metodi sono definiti in valutator.py per Evaluator
classe. Segui le valutator.py collegamento per un esempio di Evaluator
.
Creazione di metriche di valutazione in Python richiede all'utente di implementare evaluate()
e split()
metodi.
Il evaluate()
il metodo restituisce l’oggetto metric che contiene una matrice di oggetti metric con proprietà di name
, value
, e valueType
.
Scopo della split()
Il metodo consiste nell’inserire dati e nel generare un set di dati di formazione e di test. Nel nostro esempio, il split()
il metodo immette i dati utilizzando DataSetReader
L'SDK rimuove quindi i dati rimuovendo colonne non correlate. A questo punto, vengono create feature aggiuntive a partire dalle feature raw esistenti nei dati.
Il split()
il metodo deve restituire un dataframe di formazione e test che viene quindi utilizzato dal pipeline()
metodi per addestrare e testare il modello ML.
Per Tensorflow, simile a Python, i metodi evaluate()
e split()
nel Evaluator
La classe dovrà essere implementata. Per evaluate()
, le metriche devono essere restituite mentre split()
restituisce il treno e i set di dati di prova.
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'
Al momento non sono disponibili metriche di valutazione predefinite per R. Pertanto, per ottenere le metriche di valutazione per R, è necessario definire applicationEvaluator
come parte della ricetta.
L'obiettivo principale della applicationEvaluator
restituisce un oggetto JSON contenente coppie chiave-valore di metriche.
Questo applicationEvaluator.R può essere utilizzato come esempio. In questo esempio, la proprietà applicationEvaluator
è suddiviso in tre sezioni familiari:
I dati vengono caricati per la prima volta in un set di dati da un’origine come definito in retail.config.json. Da lì, i dati vengono puliti e progettati per adattarsi al modello di apprendimento automatico. Infine, il modello viene utilizzato per effettuare una previsione utilizzando il nostro set di dati; vengono calcolate le metriche in base ai valori previsti e ai valori effettivi. In questo caso, MAPE, MAE e RMSE sono definiti e restituiti nel metrics
oggetto.
Il Sensei Model Insights Framework supporterà un modello predefinito per ogni tipo di algoritmo di apprendimento automatico. La tabella seguente mostra le classi di algoritmi comuni di apprendimento automatico di alto livello e le corrispondenti metriche e visualizzazioni di valutazione.
Tipo di algoritmo ML | Metriche di valutazione | Visualizzazioni |
---|---|---|
Regressione | - RMSE - MAPE - MASE - MAE |
Curva di sovrapposizione dei valori previsti ed effettivi |
Classificazione binaria | - Matrice di confusione - Richiamo di precisione - Precisione - Punteggio F (in particolare F1 ,F2) - AUC - ROC |
Matrice di curva ROC e di confusione |
Classificazione di più classi | -Matrice di confusione - Per ciascuna classe: - precisione del richiamo - Punteggio F (in particolare F1, F2) |
Matrice di curva ROC e di confusione |
Clustering (con verità di base) | - NMI (punteggio normalizzato delle informazioni reciproche), AMI (punteggio corretto delle informazioni reciproche) - RI (indice Rand), ARI (indice Rand aggiustato) - punteggio di omogeneità, punteggio di completezza e misurazione V - FMI (indice Fowlkes-Mallows) - Purezza - Indice Jaccard |
Grafico dei cluster che mostra cluster e centroidi con dimensioni relative dei cluster che riflettono i punti di dati che rientrano nel cluster |
Clustering (senza verità di terra) | - Inerzia - Coefficiente di siluetta - CHI (indice Calinski-Harabaz) - DBI (indice Davies-Bouldin) - Indice di Dunn |
Grafico dei cluster che mostra cluster e centroidi con dimensioni relative dei cluster che riflettono i punti di dati che rientrano nel cluster |
Consiglio | - Precisione media (MAP) - Utile cumulativo scontato normalizzato - Classificazione reciproca media -Metrica K |
Da definire |
Casi di utilizzo di TensorFlow | Analisi del modello TensorFlow (TFMA) | Confronto/visualizzazione del modello di rete neurale Deepcompare |
Altro/meccanismo di acquisizione degli errori | Logica di metrica personalizzata (e grafici di valutazione corrispondenti) definita dall’autore del modello. Gestione corretta degli errori in caso di mancata corrispondenza del modello | Tabella con coppie chiave-valore per le metriche di valutazione |