Compartir a través de


Referencia de comandos de la CLI de ML.NET

Los classificationcomandos , regressiony recommendation son los comandos principales proporcionados por la herramienta de la CLI de ML.NET. Estos comandos permiten generar modelos de ML.NET de buena calidad para los modelos de clasificación, regresión y recomendación mediante el aprendizaje automático automatizado (AutoML), así como el código de C# de ejemplo para ejecutar o puntuar ese modelo. Además, el código de C# para entrenar el modelo se genera para que investigue el algoritmo y la configuración del modelo.

Nota:

En este artículo se hace referencia a ML.NET CLI y ML.NET AutoML, que se encuentran actualmente en versión preliminar y el material está sujeto a cambios.

Información general

Uso de ejemplo:

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

Los mlnet comandos de la tarea ML (classification, regression, recommendation y forecasting) generan los siguientes activos:

  • Un modelo serializado .zip ("mejor modelo") listo para usarse.
  • Código de C# para ejecutar o puntuar el modelo generado.
  • Código de C# con el código de entrenamiento usado para generar ese modelo.

Los dos primeros recursos se pueden usar directamente en las aplicaciones de usuario final (ASP.NET aplicación web Core, servicios, aplicación de escritorio y mucho más) para realizar predicciones con el modelo.

El tercer recurso, el código de entrenamiento, muestra qué código de API de ML.NET usó la CLI para entrenar el modelo generado, por lo que puede investigar el algoritmo y la configuración específicos del modelo.

Ejemplos

El comando de la CLI más simple para un problema de clasificación (AutoML deduce la mayoría de la configuración de los datos proporcionados):

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

Otro comando sencillo de la CLI para un problema de regresión:

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

Cree y entrene un modelo de clasificación con un conjunto de datos de entrenamiento, un conjunto de datos de prueba y argumentos explícitos de personalización adicionales:

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

Opciones de comando

Los mlnet comandos de tareas de ML (classification, regression, recommendation, forecasting, y train) entrenan varios modelos en función del conjunto de datos proporcionado y las opciones de la CLI de ML.NET. Estos comandos también seleccionan el mejor modelo, guardan el modelo como un archivo .zip serializado y generan código de C# relacionado para puntuar y entrenar.

Opciones de clasificación

La ejecución mlnet classification entrenará un modelo de clasificación. Elija este comando si desea que un modelo de ML clasifique los datos en 2 o más clases (por ejemplo, análisis de sentimiento).

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

Opciones de regresión

La ejecución mlnet regression entrenará un modelo de regresión. Elija este comando si desea que un modelo de ML prediga un valor numérico (por ejemplo, predicción de precios).

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

Opciones de recomendación

La ejecución mlnet recommendation entrenará un modelo de recomendación. Elija este comando si desea que un modelo de ML recomiende elementos a los usuarios en función de las clasificaciones (por ejemplo, recomendación del producto).

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

Las opciones de entrada no válidas hacen que la herramienta de la CLI emita una lista de entradas válidas y un mensaje de error.

Opciones de previsión

La ejecución mlnet forecasting entrenará un modelo de previsión de series temporales. Elija este comando si desea que un modelo de aprendizaje automático para prever un valor basado en datos históricos, como, por ejemplo, la previsión de ventas.

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>

Opciones de entrenamiento

La ejecución mlnet train entrenará un modelo basado en un archivo "mbconfig" generado a partir del Generador de modelos. Para que este comando funcione, los datos de entrenamiento deben estar en el mismo directorio que el archivo "mbconfig".

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

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

-v, --verbosity <verbosity>

Conjunto de datos

--dataset | -d (cadena)

Este argumento proporciona la ruta de acceso de archivo a una de las siguientes opciones:

  • R: El archivo de conjunto de datos completo: Si usa esta opción y el usuario no proporciona --test-dataset y --validation-dataset, la validación cruzada (k-fold, etc.) o los enfoques de división de datos automatizados se usarán internamente para validar el modelo. En ese caso, el usuario solo tendrá que proporcionar la ruta de acceso al archivo del conjunto de datos.

  • B: El archivo del conjunto de datos de entrenamiento: Si el usuario también proporciona conjuntos de datos para la validación del modelo (mediante --test-dataset y opcionalmente --validation-dataset), el --dataset argumento significa que solo debe tener el "conjunto de datos de entrenamiento". Por ejemplo, al usar un enfoque de 80% : 20% para validar la calidad del modelo y obtener métricas de precisión, el "conjunto de datos de entrenamiento" tendrá 80% de los datos y el "conjunto de datos de prueba" tendría 20% de los datos.

Conjunto de datos de prueba

--test-dataset | -t (cadena)

Ruta de acceso de archivo que apunta al archivo del conjunto de datos de prueba, por ejemplo, al usar un enfoque de 80% - 20% al realizar validaciones regulares para obtener métricas de precisión.

Si usa --test-dataset, --dataset también es necesario.

El --test-dataset argumento es opcional a menos que se use --validation-dataset. En ese caso, el usuario debe usar los tres argumentos.

Conjunto de datos de validación

--validation-dataset | -v (cadena)

Ruta de acceso del archivo que apunta al archivo del conjunto de datos de validación. El conjunto de datos de validación es opcional, en cualquier caso.

Si usa un validation dataset, el comportamiento debe ser:

  • También se requieren los test-dataset argumentos y --dataset .

  • El validation-dataset conjunto de datos se usa para calcular el error de predicción de la selección del modelo.

  • test-dataset se usa para evaluar el error de generalización del modelo elegido final. Lo ideal es que el conjunto de pruebas se mantenga en un "almacén" y solo se sacará al final del análisis de datos.

Básicamente, cuando se utiliza un validation dataset junto con el test dataset, la fase de validación se divide en dos partes:

  1. En la primera parte, solo tiene que ver los modelos y seleccionar el enfoque de mejor rendimiento mediante los datos de validación (=validación)
  2. A continuación, calcula la precisión del enfoque seleccionado (=test).

Por lo tanto, la separación de datos podría ser 80/10/10 o 75/15/10. Por ejemplo:

  • training-dataset El archivo debería contener el 75% de los datos.
  • validation-dataset el archivo debe tener 15% de los datos.
  • El archivo test-dataset debe tener 10% de los datos.

En cualquier caso, el usuario decidirá esos porcentajes mediante la CLI que proporcionará los archivos ya divididos.

Etiqueta de columna

--label-col (int o string)

Con este argumento, se puede especificar una columna objetivo o destino específica (la variable que desea predecir) mediante el uso del nombre de la columna establecida en el encabezado del conjunto de datos o el índice numérico de la columna en el archivo del conjunto de datos (los valores de índice de columna comienzan en 0).

Este argumento se usa para problemas de clasificación y regresión .

Columna de ítems

--item-col (int o string)

La columna item tiene la lista de elementos que los usuarios valoran (se recomiendan los elementos a los usuarios). Esta columna se puede especificar mediante el nombre de la columna establecida en el encabezado del conjunto de datos o el índice numérico de la columna en el archivo del conjunto de datos (los valores de índice de columna comienzan en 0).

Este argumento solo se usa para la tarea de recomendación .

Columna de valoración

--rating-col (int o string)

La columna de clasificación tiene la lista de clasificaciones que los usuarios proporcionan a los elementos. Esta columna se puede especificar mediante el nombre de la columna establecida en el encabezado del conjunto de datos o el índice numérico de la columna en el archivo del conjunto de datos (los valores de índice de columna comienzan en 0).

Este argumento solo se usa para la tarea de recomendación .

Columna usuario

--user-col (int o string)

La columna de usuario tiene la lista de usuarios que proporcionan clasificaciones a los elementos. Esta columna se puede especificar mediante el nombre de la columna establecida en el encabezado del conjunto de datos o el índice numérico de la columna en el archivo del conjunto de datos (los valores de índice de columna comienzan en 0).

Este argumento solo se usa para la tarea de recomendación .

Omitir columnas

--ignore-columns (cadena)

Con este argumento, puede omitir las columnas existentes en el archivo del conjunto de datos para que no se carguen y usen en los procesos de entrenamiento.

Especifique los nombres de columna que desea omitir. Use ', ' (coma con espacio) o ' (espacio) para separar varios nombres de columna. Se pueden usar comillas para los nombres de columna que contienen espacios en blanco (por ejemplo, "conectado").

Ejemplo:

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

Tiene encabezado

--has-header (bool)

Especifique si los archivos de conjunto de datos tienen una fila de encabezado. Los valores posibles son:

  • true
  • false

La CLI de ML.NET intentará detectar esta propiedad si el usuario no especifica este argumento.

Tiempo de entrenamiento

--train-time (cadena)

De forma predeterminada, el tiempo máximo de exploración o entrenamiento es de 30 minutos.

Este argumento establece el tiempo máximo (en segundos) para que el proceso explore varios instructores y configuraciones. El límite de tiempo configurado puede superarse si es demasiado corto (por ejemplo, 2 segundos) para una sola iteración. En este caso, el tiempo real es el tiempo necesario para generar una configuración del modelo en una sola iteración.

El tiempo necesario para las iteraciones puede variar en función del tamaño del conjunto de datos.

Caché

--cache (cadena)

Si usa el almacenamiento en caché, todo el conjunto de datos de entrenamiento se cargará en memoria.

En el caso de conjuntos de datos pequeños y medianos, el uso de la memoria caché puede mejorar drásticamente el rendimiento del entrenamiento, lo que significa que el tiempo de entrenamiento puede ser más corto que cuando no se usa la memoria caché.

Sin embargo, para conjuntos de datos de gran tamaño, cargar todos los datos en memoria puede tener un impacto negativo, ya que podrías quedarte sin memoria. Cuando se entrena con archivos de conjunto de datos de gran tamaño y no se usa la memoria caché, ML.NET transmitirá porciones de datos desde la unidad cuando necesite cargar más datos durante el entrenamiento.

Puede especificar los siguientes valores:

on: obliga el uso de la memoria caché durante el entrenamiento. off: obliga a que no se use la memoria caché cuando se entrena. auto: dependiendo de la heurística de AutoML, se usará o no la memoria caché. Normalmente, los conjuntos de datos pequeños o medianos usarán la memoria caché y los conjuntos de datos grandes no usarán la memoria caché si usa la auto opción.

Si no especifica el --cache parámetro , la configuración de caché auto se usará de forma predeterminada.

Nombre

--name (cadena)

Nombre del proyecto o solución de salida creado. Si no se especifica ningún nombre, se usa el nombre sample-{mltask} .

El archivo de modelo ML.NET (.ZIP archivo) también obtendrá el mismo nombre.

Ruta de acceso de salida

--output | -o (cadena)

Ubicación o carpeta raíz para colocar la salida generada. El valor predeterminado es el directorio actual.

Verbosidad

--verbosity | -v (cadena)

Establece el nivel de verborosidad de la salida estándar.

Los valores permitidos son:

  • q[uiet]
  • m[inimal] (de forma predeterminada)
  • diag[nostic] (nivel de información de registro)

De forma predeterminada, la herramienta de la CLI debe mostrar algunos comentarios mínimos (minimal) al trabajar, como mencionar que funciona y, si es posible, cuánto tiempo queda o qué % de la hora se completa.

Ayuda

-h |--help

Imprime la ayuda para el comando con una descripción de los parámetros de cada comando.

Consulte también