ML.NET البرنامج التعليمي - البدء في 10 دقيقة

في العام الماضي ، أعلنا عن ML.NET ونظام متعدد المنصات ونظام ML المفتوح لمطوري .NET. خلال هذا الوقت ، تطورت بشكل كبير وتطرقت إلى العديد من الإصدارات. نشارك اليوم دليلًا حول كيفية إنشاء تطبيق ml.net الأول الخاص بك في 10 دقائق.



* هذا البرنامج التعليمي باللغة الروسية .

** أدناه هو برنامج تعليمي لنظام التشغيل Windows. ولكن بالضبط نفس الشيء يمكن القيام به على MacOS / Linux .

تثبيت .NET SDK


لبدء إنشاء تطبيقات .NET ، تحتاج فقط إلى تنزيل وتثبيت .NET SDK (مجموعة تطوير البرامج).



أنشئ تطبيقك


افتح موجه الأوامر الجديد وقم بتشغيل الأوامر التالية:

dotnet new console -o myApp cd myApp 

ينشئ الأمر dotnet تطبيقًا new من نوع console لك. تقوم المعلمة -o بإنشاء دليل باسم myApp حيث يتم تخزين تطبيقك ، myApp بالملفات المطلوبة. cd myApp الأمر cd myApp في دليل التطبيق المنشأ حديثًا.

تثبيت حزمة ML.NET


لاستخدام ML.NET ، تحتاج إلى تثبيت حزمة Microsoft.ML. في موجه الأوامر ، قم بتشغيل الأمر التالي:

 dotnet add package Microsoft.ML --version 0.9.0 

قم بتنزيل مجموعة البيانات


سوف يتنبأ تطبيق تعلم الآلة الخاص بك بنوع زهرة القزحية (سيتوسا ، أو اللون المتنوع ، أو العذراء) استنادًا إلى أربع ميزات: طول البتلة ، وعرض البتلة ، وطول الكأس ، وعرض الكأس.

افتح مستودع UCI Machine Learning: Iris Data Set ، انسخ البيانات والصقها في محرر نصوص (مثل Notepad) ، واحفظها كـ iris-data.txt في دليل myApp .

عند لصق البيانات ، ستبدو كما يلي. يمثل كل صف عينة مختلفة من زهرة القزحية. من اليسار إلى اليمين ، تمثل الأعمدة: طول الكأس ، عرض الكأس ، طول البتلة ، عرض البتلة ، ونوع زهرة القزحية.

 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 ... 

باستخدام Visual Studio؟


إذا كنت تتابع في Visual Studio ، فستحتاج إلى تكوين iris-data.txt ليتم نسخه إلى دليل المخرجات.



اكتب بعض الكود


افتح Program.cs في أي محرر نصوص واستبدل كل التعليمات البرمجية بما يلي:

 using Microsoft.ML; using Microsoft.ML.Data; using System; namespace myApp { class Program { // STEP 1: Define your data structures // IrisData is used to provide training data, and as // input for prediction operations // - First 4 properties are inputs/features used to predict the label // - Label is what you are predicting, and is only set when training 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 is the result returned from prediction operations public class IrisPrediction { [ColumnName("PredictedLabel")] public string PredictedLabels; } static void Main(string[] args) { // STEP 2: Create a ML.NET environment var mlContext = new MLContext(); // If working in Visual Studio, make sure the 'Copy to Output Directory' // property of iris-data.txt is set to 'Copy always' var reader = mlContext.Data.CreateTextReader<IrisData>(separatorChar: ',', hasHeader: true); IDataView trainingDataView = reader.Read("iris-data.txt"); // STEP 3: Transform your data and add a learner // Assign numeric values to text in the "Label" column, because only // numbers can be processed during model training. // Add a learning algorithm to the pipeline. eg(What type of iris is this?) // Convert the Label back into original text (after converting to number in step 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")); // STEP 4: Train your model based on the data set var model = pipeline.Fit(trainingDataView); // STEP 5: Use your model to make a prediction // You can change these numbers to test different predictions 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}"); } } } 

قم بتشغيل التطبيق الخاص بك


في موجه الأوامر ، قم بتشغيل الأمر التالي:

 dotnet run 

السطر الأخير من الإخراج هو النوع المتوقع لزهرة القزحية. يمكنك تغيير القيم التي تم تمريرها إلى دالة التنبؤ لرؤية التنبؤات بناءً على قياسات مختلفة.

تهانينا ، لقد قمت ببناء أول نموذج لتعلم الآلة باستخدام ML.NET!

استمر في التعلم


الآن بعد أن حصلت على الأساسيات ، يمكنك الاستمرار في التعلم من خلال دروس ML.NET الخاصة بنا.

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


All Articles