Tutorial de ML.NET: comience en 10 minutos
Introducci贸n
Prop贸sito
Use ML.NET Model Builder en Visual Studio para entrenar y usar su primer modelo de Machine Learning con ML.NET.
Instale la CLI de ML.NET y, a continuaci贸n, entrene y use su primer modelo de Machine Learning con ML.NET.
Requisitos previos
Ninguna.
macOS 12.0 o versiones posteriores.
Tiempo para completar
10 minutos + tiempo de descarga/instalaci贸n
Escenario
Una aplicaci贸n que puede predecir si el texto de las opiniones de los clientes es negativo o positivo.
Descargar e instalar
Descargar e instalar Visual Studio 2022.
Durante la instalaci贸n, se debe seleccionar la carga de trabajo Desarrollo de escritorio de .NET junto con el componente de ML.NET Model聽Builder opcional. El uso del v铆nculo anterior debe preseleccionar todos los requisitos previos correctamente, como se muestra en la siguiente imagen:
驴Ya tiene Visual Studio聽2022?
Este tutorial est谩 optimizado para la versi贸n m谩s reciente de Visual聽Studio. Si ya tiene Visual聽Studio 2022, aseg煤rese de que est茅 actualizado y de que tiene instalada la carga de trabajo necesaria:
-
Busque el Instalador Visual聽Studio en su equipo.
En el men煤 Inicio de Windows, busque "
installer
" y, luego, seleccione Instalador Visual聽Studio en los resultados. - Si se le solicita, permita que el instalador se actualice a s铆 mismo.
- Si hay una actualizaci贸n disponible para Visual Studio聽2022, se mostrar谩 el bot贸n Actualizar. Selecci贸nelo para actualizar antes de modificar la instalaci贸n. Se recomienda usar la versi贸n m谩s reciente de Visual Studio聽2022 para este tutorial.
- Busque la instalaci贸n de Visual Studio 2022 y seleccione Modificar.
- Seleccione Desarrollo de escritorio .NET y aseg煤rese de que ML.NET Model Builder est谩 seleccionado en el panel derecho. Seleccione el bot贸n Modificar.
Actualizar a la versi贸n m谩s reciente de Model Builder
Una vez que haya habilitado ML.NET Model Builder en Visual Studio, descargue e instale la versi贸n m谩s reciente.
Descargar la versi贸n m谩s reciente de Model Builder
Despu茅s de descargarla, instale la extensi贸n haciendo doble clic en el archivo .vsix.
Instalar el SDK de .NET
Para compilar aplicaciones .NET, es necesario descargar e instalar el SDK (kit de desarrollo de software) de .NET聽8.
Descargar el SDK x64 de .NET 8 (Intel)
Descargar el SDK Arm64 de .NET聽8 (Apple Silicon)
Si est谩 en un equipo Mac con un chip M1 o M2 de Apple, debe instalar la versi贸n Arm64 del SDK.
Instalaci贸n de la CLI de ML.NET
La interfaz de la l铆nea de comandos聽(CLI) ML.NET proporciona herramientas para crear modelos de aprendizaje autom谩tico con ML.NET.
Nota: Actualmente, la CLI de ML.NET est谩 en versi贸n preliminar y solo admite la versi贸n m谩s reciente de LTS del SDK de .NET (.NET聽8).
Para los pasos de instalaci贸n, se recomienda usar una consola de Bash. Dado que el valor predeterminado para macOS es una consola zsh, puede crear una instancia singular abriendo un nuevo terminal y ejecutando el siguiente comando.
bash
PARA M脕QUINAS x64: Ejecute el siguiente comando:
dotnet tool install -g mlnet-linux-x64
PARA ARQUITECTURAS CIRCUITO INTEGRADO ARM64 : Ejecute el siguiente comando en su lugar:
dotnet tool install -g mlnet-linux-arm64
Si la herramienta se instala con 茅xito, deber铆a ver el siguiente mensaje de salida donde [arch]
es la arquitectura del chip:
You can invoke the tool using the following command: mlnet
Tool 'mlnet-linux-[arch]' (version 'X.X.X') was successfully installed.
dotnet tool install -g mlnet-osx-x64
PARA ARQUITECTURAS CIRCUITO INTEGRADO ARM64 : Ejecute el siguiente comando en su lugar:
dotnet tool install -g mlnet-osx-arm64
Si la herramienta se instala con 茅xito, deber铆as ver un mensaje de salida donde [arch]
es la arquitectura del chip similar al siguiente:
You can invoke the tool using the following command: mlnet
Tool 'mlnet-osx-[arch]' (version 'X.X.X') was successfully installed.
Nota: Si est谩 usando una consola que no sea Bash (por ejemplo, zsh, que es la nueva predeterminada para macOS), entonces necesitar谩 dar permisos de ejecuci贸nmlnet
e incluir mlnet
en la ruta del sistema. Las instrucciones sobre c贸mo hacer esto deber铆an aparecer en la terminal cuando instala mlnet (o cualquier herramienta global). En general, el siguiente comando deber铆a trabajar en la mayor铆a de los sistemas: chmod +x [PATH-TO-MLNET-CLI-EXECUTABLE]
Si visualiza instrucciones similares a las siguientes, ejec煤telas en su terminal.
cat << \EOF >> ~/.zprofile
#Add .NET Core SDK tools
export PATH="$PATH:~/.dotnet/tools"
EOF
Como alternativa, puede intentar usar el siguiente comando para ejecutar la herramienta mlnet:
~/.dotnet/tools/mlnet
Si el comando sigue dando un error, utilice el bot贸n Me encontr茅 con un problema que aparece a continuaci贸n para informar del problema y obtener ayuda para solucionarlo.
Crear la aplicaci贸n
Abra Visual Studio y cree una nueva aplicaci贸n de consola .NET:
- Seleccione Crear un nuevo proyecto en la ventana de inicio de Visual Studio 2022.
- Seleccione la plantilla de proyecto Aplicaci贸n de consola C#.
- Cambiar el nombre del proyecto a
myMLApp
. - Aseg煤rese de que Establecer soluci贸n y proyecto en el mismo directorio est茅 desactivado.
- Seleccione el bot贸n Siguiente.
- Seleccione .NET 8.0 (soporte a largo plazo) como Marco.
- Seleccione el bot贸n Create. Visual Studio crea el proyecto y carga el archivo
Program.cs
.
Agregar aprendizaje autom谩tico
Haga clic con el bot贸n derecho en el proyecto
myMLApp
en el Explorador de soluciones y seleccione Agregar > Modelo de aprendizaje autom谩tico.- En e cuadro del di谩logo Agregar nuevo elemento, aseg煤rese de que Modelo de Machine Learning (ML.NET) est谩 seleccionado.
Cambie el campo Nombre a
SentimentModel.mbconfig
y seleccione el bot贸n Agregar.
Un nuevo archivo denominado SentimentModel.mbconfig
se agrega a la soluci贸n y la interfaz de usuario de Model Builder se abre en una nueva ventana de herramientas acoplada en Visual Studio. mbconfig es simplemente un archivo JSON que realiza un seguimiento del estado de la interfaz de usuario.
Model聽Builder le guiar谩 por el proceso de creaci贸n de un modelo de aprendizaje autom谩tico en los pasos siguientes.
En el terminal, ejecute los siguientes comandos:
mkdir myMLApp
cd myMLApp
El comando mkdir
crea un nuevo directorio llamado myMLApp
, y el comando cd myMLApp
le permite un directorio de aplicaciones reci茅n creado.
El c贸digo de entrenamiento del modelo se generar谩 en los pr贸ximos pasos.
Seleccionar un escenario
Para generar el modelo, primero debe seleccionar el escenario de aprendizaje autom谩tico. Model Builder admite varios escenarios:
Nota: Si las capturas de pantalla del tutorial no coinciden con lo que ve, es posible que necesite actualizar su versi贸n de Model Builder. Vaya a Extensiones > Administrar extensiones para asegurarse de que no hay actualizaciones disponibles para Model聽Builder. La versi贸n usada en este tutorial es 17.18.2.
En este caso, predecir谩 su opini贸n en funci贸n del contenido (texto) de las opiniones de los clientes.
-
En la pantalla de Escenario del Model Builder, seleccione el escenario Clasificaci贸n de datos, ya que est谩 prediciendo en qu茅 categor铆a cae un comentario (positivo o negativo).
-
Despu茅s de seleccionar el escenario de Clasificaci贸n de datos, debe elegir su entorno de entrenamiento. Aunque algunos escenarios admiten la formaci贸n en Azure, actualmente la clasificaci贸n solo admite la formaci贸n local, as铆 que mantenga seleccionado el entorno Local y siga al paso Datos.
Para generar el modelo, debe seleccionar el escenario de aprendizaje autom谩tico.
Hay varios escenarios de ML compatibles con la CLI de ML.NET:
- Clasificaci贸n: 煤sela para predecir a qu茅 categor铆a pertenecen los datos (por ejemplo, analizar la opini贸n de las opiniones de los clientes como positivas o negativas).
- Clasificaci贸n de im谩genes - Se usa cuando se quiere predecir a qu茅 categor铆a pertenece una imagen (por ejemplo, predecir si una imagen es de un gato o de un perro).
- Regresi贸n (por ejemplo, predicci贸n de valores): 煤selo cuando quiera predecir un valor num茅rico (por ejemplo, predecir el precio de la vivienda).
- Previsi贸n: util铆celo cuando quiera pronosticar valores futuros en una serie temporal (por ejemplo, prever las ventas trimestrales)
- Recomendaci贸n: use esta opci贸n cuando quiera recomendar elementos a los usuarios en funci贸n de las clasificaciones hist贸ricas (por ejemplo, la recomendaci贸n de productos).
En este caso, predecir谩 la opini贸n en funci贸n del contenido (texto) de las opiniones de los clientes, por lo que usar谩 clasificaci贸n.
Descargar y agregar datos
Descargue los conjuntos de datos Sentiment Labelled Sentences del repositorio UCI Machine Learning Repository. Descomprima sentiment labelled sentences.zip
y guarde el archivo yelp_labelled.txt
en el directorio myMLApp
.
El Explorador de soluciones debe ser similar al siguiente:
Cada fila de yelp_labelled.txt
representa una revisi贸n diferente de un restaurante que deja un usuario en Yelp. La primera columna representa el comentario que deja el usuario y la segunda columna representa la sensaci贸n expresada por el texto (0 es negativo, 1 es positivo). Las columnas est谩n separadas por tabulaciones y el conjunto de datos no tiene encabezado. Los datos tienen un aspecto similar al siguiente:
Wow... Loved this place. 1
Crust is not good. 0
Not tasty and the texture was just nasty. 0
Agregar datos
En Model聽Builder, puede agregar datos de un archivo local o conectarse a una base de datos SQL聽Server. En este caso, agregar谩 yelp_labelled.txt
desde un archivo.
Seleccione Archivo como tipo de origen de datos de entrada.
Busque
yelp_labelled.txt
. Una vez que seleccione el conjunto de datos, aparecer谩 una vista previa de los datos en la secci贸n Vista previa de datos. Dado que el conjunto de datos no tiene un encabezado, los encabezados se generan autom谩ticamente ("col0" y "col1").En Columna para predecir (Etiqueta), seleccione "col1". La etiqueta es lo que est谩 pronosticando, que en este caso es el sentimiento que se encuentra en la segunda columna ("col1") del conjunto de datos.
Las columnas que se usan para ayudar a predecir la etiqueta se denominan Caracter铆sticas. Todas las columnas del conjunto de datos adem谩s de la etiqueta se seleccionan autom谩ticamente como Caracter铆sticas. En este caso, la columna de comentario de revisi贸n ("col0") es la columna Caracter铆stica. Puede actualizar las columnas de caracter铆stica y modificar otras opciones de carga de datos en Opciones avanzadas de datos, pero no es necesario para este ejemplo.
Despu茅s de agregar sus datos, vaya al paso Entrenar.
Entrenar el modelo
Ahora, entrenar谩 el modelo con el set de datos yelp_labelled.txt
.
Model Builder eval煤a muchos modelos con distintos algoritmos y configuraciones en funci贸n de la cantidad de tiempo de entrenamiento proporcionado para compilar el modelo de mejor rendimiento.
Cambiar el Tiempo de entrenamiento, que es la cantidad de tiempo que le gustar铆a que Model Builder explore varios modelos, a 60 segundos (puede intentar aumentar este n煤mero si no se encuentra ning煤n modelo despu茅s del entrenamiento). Tenga en cuenta que, para conjuntos de datos m谩s grandes, el tiempo de entrenamiento ser谩 m谩s largo. Model Builder ajusta autom谩ticamente el tiempo de entrenamiento en funci贸n del tama帽o del conjunto de datos.
Puede actualizar la m茅trica de optimizaci贸n y los algoritmos usados en Opciones avanzadas de entrenamiento , pero no es necesario para este ejemplo.
Seleccione Iniciar el entrenamiento para iniciar el proceso de entrenamiento. Una vez iniciado el entrenamiento, puede ver el tiempo restante.

Resultados del entrenamiento
Una vez finalizado el entrenamiento, puede ver un resumen de los resultados del entrenamiento.
- Best MacroAccuracy : muestra la precisi贸n del mejor modelo que Model Builder encuentra. Una mayor precisi贸n significa que el modelo predijo m谩s correctamente en los datos de prueba.
- Mejor modelo - Esto muestra qu茅 algoritmo realiz贸 mejor durante la exploraci贸n de Model Builder.
- Tiempo de entrenamiento: esto muestra la cantidad total de tiempo dedicado a entrenar o explorar modelos.
- Modelos explorados (total) : muestra el n煤mero total de modelos explorados por Model Builder en el per铆odo de tiempo especificado.
- C贸digo subyacente generado : se programan los nombres de los archivos generados para ayudar a consumir el modelo o entrenar un nuevo modelo.
Si lo desea, puede ver m谩s informaci贸n sobre la sesi贸n de entrenamiento en la ventana Machine Learning Salida.
Una vez finalizado el entrenamiento del modelo, vaya al paso Evaluar.
En el terminal, ejecute el siguiente comando (en la carpeta myMLApp
):
mlnet classification --dataset "yelp_labelled.txt" --label-col 1 --has-header false --name SentimentModel --train-time 60
驴Qu茅 significan estos comandos?
El comando mlnet classification
se ejecuta ML.NET con AutoML para explorar muchas iteraciones de modelos de clasificaci贸n en la cantidad determinada de tiempo de entrenamiento con distintas combinaciones de transformaciones de datos, algoritmos y opciones de algoritmo y, a continuaci贸n, elige el modelo de mayor rendimiento.
- --dataset: Ha elegido
yelp_labelled.txt
como conjunto de datos (internamente, la CLI dividir谩 el conjunto de datos en conjuntos de datos de entrenamiento y de prueba). - --label-col: Debe especificar la columna objetivo que desea predecir (o la etiqueta). En este caso, quiere predecir el sentimiento de la segunda columna (las columnas con 铆ndice cero significan que es la columna "1").
- --has-header: Utilice esta opci贸n para especificar si el conjunto de datos tiene un encabezado. En este caso, el conjunto de datos no tiene encabezado por lo que es falso.
- --name: Utilice esta opci贸n para proporcionar un nombre para su modelo de aprendizaje autom谩tico y los activos relacionados. En este caso, todos los activos asociados a este modelo de aprendizaje autom谩tico tendr谩n SentimentModel en el nombre.
- --train-time: Tambi茅n debe especificar la cantidad de tiempo que desea que la CLI de ML.NET explore diferentes modelos. En este caso, 60 segundos (puede intentar aumentar este n煤mero si no se encuentran modelos despu茅s del entrenamiento). Tenga en cuenta que para conjuntos de datos m谩s grandes, debe establecer un tiempo de entrenamiento m谩s largo.
Progreso
Mientras la CLI de ML.NET est谩 explorando diferentes modelos, muestra los siguientes datos:
- Iniciar el entrenamiento: en esta secci贸n se muestra cada iteraci贸n del modelo, incluido el instructor (algoritmo) usado y las m茅tricas de evaluaci贸n para esa iteraci贸n.
- Tiempo restante este y la barra de progreso indicar谩 cu谩nto tiempo queda en el proceso de entrenamiento en segundos.
- Mejor algoritmo: muestra qu茅 algoritmo ha funcionado mejor hasta ahora.
- Mejor puntuaci贸n: esto muestra el rendimiento del mejor modelo hasta ahora. Una mayor precisi贸n significa que el modelo ha predicho con mayor exactitud en los datos de prueba.
Si lo desea, puede ver m谩s informaci贸n sobre la sesi贸n de entrenamiento en el archivo de registro generado por la CLI.
Evaluar su modelo
El paso Evaluar muestra el algoritmo de mejor rendimiento y la mejor precisi贸n, y le permite probar el modelo en la interfaz de usuario.
Probar el modelo
Puede realizar predicciones en la entrada de ejemplo en la secci贸n Probar el modelo. El cuadro de texto se rellena previamente con la primera l铆nea de datos del conjunto de datos, pero puede cambiar la entrada y seleccionar Predecir para probar diferentes predicciones de opiniones.
En este caso, 0 significa opini贸n negativa y 1 significa opini贸n positiva.

Nota: Si el modelo no est谩 funcionando bien (por ejemplo, si la Precisi贸n es baja o si el modelo solo predice valores "1"), puede intentar agregar m谩s tiempo y entrenar de nuevo. Esta es una muestra que utiliza un conjunto de datos muy peque帽o; para los modelos a nivel de producci贸n, querr谩 agregar muchos m谩s datos y tiempo de entrenamiento.
Despu茅s de evaluar y probar el modelo, pase al paso Consumir.
Despu茅s de que la CLI de ML.NET seleccione el mejor modelo, mostrar谩 el Resumen de entrenamiento, que le muestra un resumen del proceso de exploraci贸n, incluido cu谩ntos modelos se exploraron en el tiempo de entrenamiento dado.
Modelos principales
Si bien la CLI de ML.NET genera c贸digo para el modelo de mayor rendimiento, tambi茅n muestra los mejores modelos (hasta 5) con la mayor precisi贸n que encontr贸 en el tiempo de exploraci贸n determinado. Muestra varias m茅tricas de evaluaci贸n para esos modelos superiores, incluidos AUC, AUPRC y F1-score. Para obtener m谩s informaci贸n, consulte M茅tricas de ML.NET.
Generar c贸digo
Una vez completado el entrenamiento, se agregan autom谩ticamente cuatro archivos como c贸digo subyacente a SentimentModel.mbconfig
:
SentimentModel.consumption.cs
: este archivo contiene las clases de entrada y salida del modelo y un m茅todoPredict
que se puede usar para el uso del modelo.SentimentModel.evaluate.cs
: este archivo contiene un m茅todoCalculatePFI
que usa la t茅cnica de importancia de caracter铆sticas de permutaci贸n (PFI) para evaluar qu茅 caracter铆sticas contribuyen m谩s a las predicciones del modelo.SentimentModel.mlnet
: Este archivo es el modelo de ML.NET entrenado, que es un archivo ZIP serializado.SentimentModel.training.cs
: Este archivo contiene el c贸digo para reconocer la importancia que tienen las columnas de entrada en las predicciones del modelo.
En el paso Consumir de Model Builder, se proporciona un fragmento de c贸digo que crea una entrada de ejemplo para el modelo y usa el modelo para realizar una predicci贸n en esa entrada.
Model Builder tambi茅n ofrece Plantillas de proyecto que puede agregar opcionalmente a su soluci贸n. Hay dos plantillas de proyecto (una aplicaci贸n de consola y una API web), ambas consumen el modelo entrenado.
La CLI de ML.NET agrega tanto el modelo de aprendizaje autom谩tico como el c贸digo para entrenar y consumir el modelo, que incluye lo siguiente:
-
Se crea un nuevo directorio llamado SentimentModel que contiene una aplicaci贸n de consola .NET que incluye los siguientes archivos:
Program.cs
: este archivo contiene c贸digo para ejecutar el modelo.SentimentModel.consumption.cs
: este archivo contiene las clases de entrada y salida del modelo y un m茅todoPredict
que se puede usar para el uso del modelo.SentimentModel.mbconfig
: este archivo es un archivo JSON que mantiene un registro de las configuraciones y resultados de su entrenamiento.SentimentModel.training.cs
: este archivo contiene la canalizaci贸n de entrenamiento (transformaciones de datos, algoritmos y par谩metros de algoritmo) usada para entrenar el modelo final.SentimentModel.zip
: este archivo es el modelo de ML.NET entrenado, que es un archivo ZIP serializado.
Para probar el modelo, puede ejecutar la aplicaci贸n de consola para predecir la opini贸n de una sola declaraci贸n con el modelo.
Consumir el modelo
El 煤ltimo paso es consumir el modelo entrenado en la aplicaci贸n del usuario final.
-
Reemplace el c贸digo
Program.cs
en su proyectomyMLApp
con el c贸digo siguiente:Program.csusing MyMLApp; // Add input data var sampleData = new SentimentModel.ModelInput() { Col0 = "This restaurant was wonderful." }; // Load model and predict output of sample data var result = SentimentModel.Predict(sampleData); // If Prediction is 1, sentiment is "Positive"; otherwise, sentiment is "Negative" var sentiment = result.PredictedLabel == 1 ? "Positive" : "Negative"; Console.WriteLine($"Text: {sampleData.Col0}\nSentiment: {sentiment}");
-
Ejecutar
myMLApp
(seleccionar Ctrl+F5 o Depurar > Iniciar sin depurar). Deber铆a ver la siguiente salida, prediciendo si la declaraci贸n de entrada es positiva o negativa.
La CLI de ML.NET ha generado el modelo entrenado y el c贸digo para usted, por lo que ahora puede utilizar el modelo en aplicaciones .NET (por ejemplo, su aplicaci贸n de consola SentimentModel
) siguiendo estos pasos:
- En la l铆nea de comandos, vaya al directorio
consumeModelApp
.Terminalcd SentimentModel
-
Abra el
Program.cs
en cualquier editor de c贸digo e inspeccione el c贸digo. El c贸digo debe ser similar al siguiente:Program.csusing System; namespace SentimentModel.ConsoleApp { class Program { static void Main(string[] args) { // Add input data SentimentModel.ModelInput sampleData = new SentimentModel.ModelInput() { Col0 = @"Wow... Loved this place." }; // Make a single prediction on the sample data and print results var predictionResult = SentimentModel.Predict(sampleData); Console.WriteLine("Using model to make single prediction -- Comparing actual Col1 with predicted Col1 from sample data...\n\n"); Console.WriteLine($"Col0: @{"Wow... Loved this place."}"); Console.WriteLine($"Col1: {1F}"); Console.WriteLine($"\n\nPredicted Col1: {predictionResult.PredictedLabel}\n\n"); Console.WriteLine("=============== End of process, hit any key to finish ==============="); Console.ReadKey(); } } }
-
Ejecute el
SentimentModel.ConsoleApp
. Puede hacerlo ejecutando el siguiente comando en la terminal (aseg煤rese de estar en el directorioSentimentModel
):Terminaldotnet run
La salida debe tener un aspecto similar al siguiente:
TerminalUsing model to make single prediction -- Comparing actual Col1 with predicted Col1 from sample data... Col0: Wow... Loved this place. Col1: 1 Class Score ----- ----- 1 0.9651076 0 0.034892436 =============== End of process, hit any key to finish ===============
Pasos siguientes
Enhorabuena, ha creado su primer modelo de aprendizaje autom谩tico con ML.NET Model Builder.
Ahora que ya tiene los fundamentos, contin煤e con este m贸dulo de aprendizaje autoguiado en Microsoft Learn, donde utilizar谩 los datos de los sensores para detectar si un dispositivo de fabricaci贸n est谩 roto.
Microsoft Learn: entrenar un modelo de mantenimiento predictivo
ML.NET para principiantes
Deje que Luis le presente los conceptos de aprendizaje autom谩tico e IA, le explique lo que puede hacer con ellos y le gu铆e sobre c贸mo comenzar a usar OpenAI, Servicios de Azure AI y ML.NET:
Es posible que tambi茅n le interese...
Enhorabuena, ha creado su primer modelo de aprendizaje autom谩tico con la CLI de ML.NET.
Ahora que ha usado la CLI de ML.NET para la clasificaci贸n (en concreto, el an谩lisis de sentimiento), puede probar otros escenarios. Pruebe un escenario de regresi贸n (espec铆ficamente la predicci贸n de precios) mediante el conjunto de datos Taxi Fare para seguir creando modelos de ML.NET con la CLI de ML.NET.
Descarga del conjunto de datos de Taxi聽Fare
ML.NET para principiantes
Deje que Luis le presente el concepto de aprendizaje autom谩tico e IA, le explique lo que puede hacer con ellos y le gu铆e sobre c贸mo comenzar a usar OpenAI, Servicios de Azure AI y ML.NET:
Es posible que tambi茅n le interese...