Guía de ML.NET: primera aplicación en 10 minutos

El año pasado, presentamos ML.NET, un sistema de aprendizaje automático multiplataforma y abierto para desarrolladores de .NET. Durante este tiempo, ella se desarrolló mucho y pasó por muchas versiones. Hoy compartimos una guía sobre cómo crear su primera aplicación ml.net en 10 minutos.



* Este manual está en inglés .

** A continuación se muestra un tutorial para Windows. Pero exactamente lo mismo se puede hacer en MacOS / Linux .

Instalar .NET SDK


Para comenzar a crear aplicaciones .NET, solo necesita descargar e instalar .NET SDK (Software Development Kit).



Crea tu aplicación


Abra un símbolo del sistema y ejecute los siguientes comandos:

dotnet new console -o myApp cd myApp 

El comando dotnet creará una new aplicación de console para usted. La myApp -o crea un directorio llamado myApp , en el que se almacena su aplicación, y la llena con los archivos necesarios. El comando cd myApp lo regresará al directorio de la aplicación creada.

Instalar el paquete ML.NET


Para usar ML.NET, debe instalar el paquete Microsoft.ML. En el símbolo del sistema, ejecute el siguiente comando:

 dotnet add package Microsoft.ML --version 0.9.0 

Descargar DB


Nuestra aplicación representativa de aprendizaje automático predecirá el tipo de flor de iris (setosa, versicolor o virginica) basándose en cuatro características: longitud del pétalo, ancho del pétalo, longitud del sépalo y ancho del sépalo.

Abra el repositorio de aprendizaje automático UCI : conjunto de datos Iris, copie y pegue los datos en un editor de texto (por ejemplo, Bloc de notas) y guárdelo como iris-data.txt en el directorio myApp .

Cuando agregue datos, se verá así: cada fila representa un patrón diferente de flor de iris. De izquierda a derecha, las columnas representan: longitud del sépalo, ancho del sépalo, longitud del pétalo, ancho del pétalo y tipo de flor de iris.

 5.1,3.5,1.4,0.2,Iris-setosa 4.9,3.0,1.4,0.2,Iris-setosa 4.7,3.2,1.3,0.2,Iris-setosa ... 

¿Usando Visual Studio?


Si está utilizando Visual Studio, debe configurar iris-data.txt para copiarlo en el directorio de salida.



Vamos un poquito


Abra Program.cs en cualquier editor de texto y reemplace todo el código con lo siguiente:

 using Microsoft.ML; using Microsoft.ML.Data; using System; namespace myApp { class Program { //  1:     // IrisData     ,   //      // -  4  --    / ,     label // - Label --  ,   ,      public class IrisData { [LoadColumn(0)] public float SepalLength; [LoadColumn(1)] public float SepalWidth; [LoadColumn(2)] public float PetalLength; [LoadColumn(3)] public float PetalWidth; [LoadColumn(4)] public string Label; } // IrisPrediction  ,     public class IrisPrediction { [ColumnName("PredictedLabel")] public string PredictedLabels; } static void Main(string[] args) { //  2:   ML.NET var mlContext = new MLContext(); //    Visual Studio, ,   'Copy to Output Directory' // iris-data.txt   'Copy always' var reader = mlContext.Data.CreateTextReader<IrisData>(separatorChar: ',', hasHeader: true); IDataView trainingDataView = reader.Read("iris-data.txt"); //  3:      learner //       «label»,    //        . //     pipeline.  (What type of iris is this?) //  label     (      3) var pipeline = mlContext.Transforms.Conversion.MapValueToKey("Label") .Append(mlContext.Transforms.Concatenate("Features", "SepalLength", "SepalWidth", "PetalLength", "PetalWidth")) .Append(mlContext.MulticlassClassification.Trainers.StochasticDualCoordinateAscent(labelColumn: "Label", featureColumn: "Features")) .Append(mlContext.Transforms.Conversion.MapKeyToValue("PredictedLabel")); //  4:     - var model = pipeline.Fit(trainingDataView); //  5:     //     ,     var prediction = model.CreatePredictionEngine<IrisData, IrisPrediction>(mlContext).Predict( new IrisData() { SepalLength = 3.3f, SepalWidth = 1.6f, PetalLength = 0.2f, PetalWidth = 5.1f, }); Console.WriteLine($"Predicted flower type is: {prediction.PredictedLabels}"); } } } 

Inicia tu aplicación


En el símbolo del sistema, ejecute el siguiente comando:

 dotnet run 

La línea final de salida es el tipo predicho de flor de iris. Puede cambiar los valores pasados ​​a la función Predict para ver pronósticos basados ​​en diferentes dimensiones.

¡Felicitaciones, creó su primer modelo de aprendizaje automático con ML.NET!

No te detengas ahí


Ahora que tiene lo básico, puede continuar entrenando con nuestros tutoriales de ML.NET.

Source: https://habr.com/ru/post/es436728/


All Articles