Condividi tramite


Riferimento ai comandi CLI di ML.NET

I comandi classification, regression e recommendation sono i comandi principali forniti dallo strumento CLI di ML.NET. Questi comandi consentono di generare modelli di qualità ML.NET validi per i modelli di classificazione, regressione e raccomandazione usando Machine Learning automatizzato (AutoML), nonché il codice C# di esempio per eseguire/assegnare un punteggio a tale modello. Inoltre, il codice C# per eseguire il training del modello viene generato per eseguire ricerche sull'algoritmo e sulle impostazioni del modello.

Annotazioni

Questo articolo si riferisce all'interfaccia della riga di comando di ML.NET e ML.NET AutoML, attualmente in anteprima, e il materiale è soggetto a modifiche.

Informazioni generali

Sintassi di esempio:

mlnet regression --dataset "cars.csv" --label-col price

I comandi dell'attività mlnet ML (classification, regression, recommendatione forecasting) generano gli asset seguenti:

  • Un modello serializzato .zip ("modello migliore") pronto per l'uso.
  • Codice C# per eseguire/assegnare punteggi al modello generato.
  • Codice C# con il codice di training usato per generare tale modello.

I primi due asset possono essere usati direttamente nelle app degli utenti finali (ASP.NET'app Web core, servizi, app desktop e altro ancora) per eseguire stime con il modello.

Il terzo asset, il codice di training, mostra il codice API ML.NET usato dall'interfaccia della riga di comando per eseguire il training del modello generato, in modo da poter esaminare l'algoritmo e le impostazioni specifiche del modello.

Esempi

Il comando dell'interfaccia della riga di comando più semplice per un problema di classificazione (AutoML deduce la maggior parte della configurazione dai dati forniti):

mlnet classification --dataset "customer-feedback.tsv" --label-col Sentiment

Un altro semplice comando dell'interfaccia della riga di comando per un problema di regressione:

mlnet regression --dataset "cars.csv" --label-col Price

Creare ed eseguire il training di un modello di classificazione con un set di dati di training, un set di dati di test e altri argomenti espliciti di personalizzazione:

mlnet classification --dataset "/MyDataSets/Population-Training.csv" --test-dataset "/MyDataSets/Population-Test.csv" --label-col "InsuranceRisk" --cache on --train-time 600

Opzioni di comando

I comandi dell'attività ML mlnet (classification, regression, recommendation, forecasting e train) eseguono il training di più modelli in base al set di dati fornito e alle opzioni della CLI di ML.NET. Questi comandi selezionano anche il modello migliore, salvano il modello come file di .zip serializzato e generano codice C# correlato per l'assegnazione dei punteggi e il training.

Opzioni di classificazione

Eseguire mlnet classification formerà un modello di classificazione. Scegliere questo comando se si vuole che un modello di Machine Learning categorizzi i dati in 2 o più classi ( ad esempio, analisi del sentiment).

mlnet classification

--dataset <path> (REQUIRED)

--label-col <col> (REQUIRED)

--cache <option>

--has-header (Default: true)

--ignore-cols <cols>

--log-file-path <path>

--name <name>

-o, --output <path>

--test-dataset <path>

--train-time <time> (Default: 30 minutes, in seconds)

--validation-dataset <path>

-v, --verbosity <v>

-?, -h, --help

Opzioni di regressione

Eseguendo mlnet regression verrà addestrato un modello di regressione. Scegliere questo comando se si vuole che un modello di Machine Learning esemplivi un valore numerico, ad esempio la stima dei prezzi.

mlnet regression

--dataset <path> (REQUIRED)

--label-col <col> (REQUIRED)

--cache <option>

--has-header (Default: true)

--ignore-cols <cols>

--log-file-path <path>

--name <name>

-o, --output <path>

--test-dataset <path>

--train-time <time> (Default: 30 minutes, in seconds)

--validation-dataset <path>

-v, --verbosity <v>

-?, -h, --help

Opzioni di raccomandazione

Eseguire mlnet recommendation avvierà l'addestramento di un modello di raccomandazione. Scegliere questo comando se si vuole che un modello di Machine Learning consigli gli elementi agli utenti in base alle classificazioni (ad esempio, raccomandazione del prodotto).

mlnet recommendation

--dataset <path> (REQUIRED)

--item-col <col> (REQUIRED)

--rating-col <col> (REQUIRED)

--user-col <col> (REQUIRED)

--cache <option>

--has-header (Default: true)

--log-file-path <path>

--name <name>

-o, --output <path>

--test-dataset <path>

--train-time <time> (Default: 30 minutes, in seconds)

--validation-dataset <path>

-v, --verbosity <v>

-?, -h, --help

Le opzioni di input non valide consentono allo strumento dell'interfaccia della riga di comando di generare un elenco di input validi e un messaggio di errore.

Opzioni di previsione

Eseguendo mlnet forecasting verrà effettuato il training di un modello di previsione delle serie temporali. Scegliere questo comando se si vuole che un modello di Machine Learning previsioni un valore in base ai dati cronologici( ad esempio, previsione delle vendite).

mlnet forecasting

--dataset <dataset> (REQUIRED)

--horizon <horizon> (REQUIRED)

--label-col <label-col> (REQUIRED)

--time-col <time-col> (REQUIRED)

--cache <Auto|Off|On>

--has-header

--log-file-path <log-file-path>

--name <name>

-o, --output <output>

--test-dataset <test-dataset>

--train-time <train-time>

-v, --verbosity <verbosity>

Opzioni di training

Eseguendo mlnet train verrà effettuato il training di un modello basato su un file "mbconfig" generato da Model Builder. Per il corretto funzionamento di questo comando, i dati di training devono trovarsi nella stessa directory del file "mbconfig".

-training-config <training-config> (REQUIRED)

--log-file-path <log-file-path>

-v, --verbosity <verbosity>

Collezione di dati

--dataset | -d (stringa)

Questo argomento fornisce il percorso del file a una delle opzioni seguenti:

  • R: L'intero file del set di dati: Se si usa questa opzione e l'utente non fornisce --test-dataset e --validation-dataset, verranno utilizzati a livello interno la convalida incrociata (k-fold e così via) o metodi automatici per la validazione del modello. In tal caso, l'utente dovrà solo fornire il percorso file del set di dati.

  • B: Il file del set di dati di training: Se l'utente fornisce anche set di dati per la convalida del modello (usando --test-dataset e facoltativamente --validation-dataset), l'argomento --dataset significa avere solo il "set di dati di training". Ad esempio, quando si usa un approccio 80% - 20% per convalidare la qualità del modello e ottenere metriche di accuratezza, il "set di dati di training" avrà 80% dei dati e il "set di dati di test" avrà 20% dei dati.

Set di dati di test

--test-dataset | -t (stringa)

Percorso del file che punta al file del set di dati di test, ad esempio quando si usa un approccio 80% - 20% quando si effettuano convalide regolari per ottenere metriche di accuratezza.

Se si usa --test-dataset, è necessario anche --dataset.

L'argomento --test-dataset è facoltativo a meno che non venga usato --validation-dataset. In tal caso, l'utente deve usare i tre argomenti.

Set di dati di convalida

--validation-dataset | -v (stringa)

Percorso del file che punta al file del set di dati di convalida. Il set di dati di convalida è facoltativo, in ogni caso.

Se si usa un validation dataset, il comportamento deve essere:

  • Sono necessari anche gli argomenti test-dataset e --dataset.

  • Il validation-dataset set di dati viene usato per stimare l'errore di stima per la selezione del modello.

  • Il test-dataset viene utilizzato per la valutazione dell'errore di generalizzazione del modello finale scelto. Idealmente, il set di test deve essere mantenuto in un "caveau" ed essere portato fuori solo alla fine dell'analisi dei dati.

In pratica, quando si utilizza un validation dataset insieme al test dataset, la fase di convalida viene suddivisa in due parti:

  1. Nella prima parte, semplicemente esamini i modelli e selezioni l'approccio con le migliori prestazioni usando i dati di convalida (=validation).
  2. Si stima quindi l'accuratezza dell'approccio selezionato (=test).

Di conseguenza, la separazione dei dati potrebbe essere 80/10/10 o 75/15/10. Per esempio:

  • training-dataset il file dovrebbe contenere il 75%% dei dati.
  • validation-dataset il file dovrebbe contenere 15% dei dati.
  • test-dataset il file deve avere 10% dei dati.

In ogni caso, tali percentuali verranno decise dall'utente che usa l'interfaccia della riga di comando che fornirà i file già suddivisi.

Colonna Etichetta

--label-col (int o string)

Con questo argomento, è possibile specificare una colonna obiettivo/destinazione specifica (la variabile da stimare) usando il nome della colonna impostata nell'intestazione del set di dati o l'indice numerico della colonna nel file del set di dati (i valori dell'indice della colonna iniziano da 0).

Questo argomento viene usato per problemi di classificazione e regressione .

Colonna oggetto

--item-col (int o string)

La colonna dell'elemento include l'elenco di elementi a cui gli utenti valutano (gli elementi sono consigliati agli utenti). Questa colonna può essere specificata usando il nome della colonna impostata nell'intestazione del set di dati o l'indice numerico della colonna nel file del set di dati (i valori dell'indice di colonna iniziano da 0).

Questo argomento viene usato solo per l'attività di raccomandazione .

Colonna Valutazione

--rating-col (int o string)

La colonna rating include l'elenco delle classificazioni che vengono date agli elementi dagli utenti. Questa colonna può essere specificata usando il nome della colonna impostata nell'intestazione del set di dati o l'indice numerico della colonna nel file del set di dati (i valori dell'indice di colonna iniziano da 0).

Questo argomento viene usato solo per l'attività di raccomandazione .

Colonna dell'utente

--user-col (int o string)

La colonna utente contiene l'elenco di utenti che assegnano valutazioni agli elementi. Questa colonna può essere specificata usando il nome della colonna impostata nell'intestazione del set di dati o l'indice numerico della colonna nel file del set di dati (i valori dell'indice di colonna iniziano da 0).

Questo argomento viene usato solo per l'attività di raccomandazione .

Ignora colonne

--ignore-columns (stringa)

Con questo argomento, è possibile ignorare le colonne esistenti nel file del set di dati in modo che non vengano caricate e usate dai processi di training.

Specificare i nomi delle colonne da ignorare. Usare ', ' (virgola con spazio) o ' (spazio) per separare più nomi di colonna. È possibile usare le virgolette per i nomi di colonna contenenti spazi vuoti, ad esempio "connesso".

Esempio:

--ignore-columns email, address, id, logged_in

Ha intestazione

--has-header (bool)

Specificare se i file del set di dati hanno una riga di intestazione. I valori possibili sono:

  • true
  • false

L'interfaccia della riga di comando ML.NET tenterà di rilevare questa proprietà se questo argomento non è specificato dall'utente.

Ora del training

--train-time (stringa)

Per impostazione predefinita, il tempo massimo di esplorazione o training è di 30 minuti.

Questo argomento imposta il tempo massimo (in secondi) affinché il processo possa esplorare diversi modelli di allenamento e configurazioni. Il limite di tempo configurato potrebbe essere superato se è troppo breve (ad esempio 2 secondi) per una singola iterazione. In questo caso, il tempo effettivo è il tempo necessario per produrre una configurazione del modello in un'unica iterazione.

Il tempo necessario per le iterazioni può variare a seconda delle dimensioni del set di dati.

cache

--cache (stringa)

Se si usa la memorizzazione nella cache, l'intero set di dati di training verrà caricato in memoria.

Per i set di dati di piccole e medie dimensioni, l'uso della cache può migliorare drasticamente le prestazioni di training, ovvero il tempo di training può essere più breve rispetto a quando non si usa la cache.

Tuttavia, per set di dati di grandi dimensioni, il caricamento di tutti i dati in memoria può influire negativamente perché si potrebbe uscire dalla memoria. Quando si esegue il training con file di set di dati di grandi dimensioni e non si usa la cache, ML.NET trasmetterà blocchi di dati dall'unità quando è necessario caricare più dati durante il training.

È possibile specificare i valori seguenti:

on: forza l'uso della cache durante il training. off: forza il non utilizzo della cache durante il training. auto: a seconda dell'euristica autoML, la cache verrà usata o meno. In genere, i set di dati di piccole/medie dimensioni useranno la cache e i set di dati di grandi dimensioni non useranno la cache se si usa la auto scelta.

Se non si specifica il --cache parametro , la configurazione della cache auto verrà usata per impostazione predefinita.

Nome

--name (stringa)

Nome del progetto o della soluzione di output creato. Se non viene specificato alcun nome, viene utilizzato il nome sample-{mltask} .

Anche il file del modello di ML.NET (file .ZIP) otterrà lo stesso nome.

Percorso di output

--output | -o (stringa)

Posizione radice/cartella in cui posizionare l'output generato. Il valore predefinito è la directory corrente.

Prolissità

--verbosity | -v (stringa)

Imposta il livello di dettaglio dell'output standard.

I valori consentiti sono:

  • q[uiet]
  • m[inimal] (per impostazione predefinita)
  • diag[nostic] (livello di informazioni di registrazione)

Per impostazione predefinita, lo strumento dell'interfaccia della riga di comando dovrebbe mostrare un feedback minimo (minimal) quando funziona, ad esempio menzionare che funziona e, se possibile, quanto tempo viene lasciato o quale % dell'ora viene completata.

Aiuto

-h |--help

Stampa la guida per il comando con una descrizione per ciascun parametro del comando.

Vedere anche