التعلم الآلي بلغة C#: مكتبات ML.NET و Accord.NET

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

التعلم الآلي بلغة C# (.NET): نظرة عامة على المكتبات للمطورين



على الرغم من أن Python لا يزال ملك التعلم الآلي، فإن نظام .NET يقدم أدوات ناضجة وقوية لدمج نماذج التعلم الآلي في التطبيقات المؤسسية وخدمات الويب والحلول المكتبية. في هذه المقالة، سنستعرض ثلاث مكتبات رئيسية للغة C#: ML.NET و Accord.NET و TensorFlow.NET. ستتعرف على أي منها تختار لمهمتك، وسترى أمثلة على الكود.



1. ML.NET — المكتبة الأصلية من Microsoft



ML.NET هي مكتبة مفتوحة المصدر متعددة المنصات، تم تطويرها خصيصًا لـ .NET. تتيح لك إنشاء وتدريب ونشر نماذج التعلم الآلي دون الحاجة إلى الانتقال إلى Python. تدعم التصنيف، والانحدار، والتجميع، والترتيب، واكتشاف الحالات الشاذة، وحتى أنظمة التوصية.



الميزات الرئيسية:

  • محولات بيانات مدمجة (التطبيع، الترميز الأحادي، استخراج الميزات من النصوص والصور).
  • AutoML — الاختيار التلقائي للخوارزمية والمعلمات الفائقة.
  • تصدير النماذج إلى ONNX للاستخدام عبر المنصات.
  • دعم GPU عبر TensorFlow و ONNX Runtime.


مثال: تصنيف ثنائي لمشاعر النص

using Microsoft.ML;using Microsoft.ML.Data;

public class SentimentData{ public string Text { get; set; } public bool Label { get; set; }}

public class SentimentPrediction{ public bool PredictedLabel { get; set; } public float Probability { get; set; }}

var context = new MLContext();var data = context.Data.LoadFromTextFile<SentimentData>("data.csv", separatorChar: ',');

var pipeline = context.Transforms.Text.FeaturizeText("Features", nameof(SentimentData.Text)) .Append(context.BinaryClassification.Trainers.SdcaLogisticRegression());

var model = pipeline.Fit(data);var engine = context.Model.CreatePredictionEngine<SentimentData, SentimentPrediction>(model);

var prediction = engine.Predict(new SentimentData { Text = "This product is amazing!" });Console.WriteLine($"Prediction: {prediction.PredictedLabel}, Probability: {prediction.Probability}");


متى تستخدم: إذا كان تطبيقك يعمل بالفعل على .NET وتحتاج إلى تكامل سلس للتعلم الآلي دون تبعيات خارجية.



2. Accord.NET — المكتبة الكلاسيكية للحسابات العلمية



Accord.NET هي مجموعة من الأطر لمعالجة الإشارات والإحصاءات والتعلم الآلي. تتضمن أكثر من 50 خوارزمية: من الانحدار الخطي إلى الشبكات العصبية العميقة. تم استخدام المكتبة بنشاط قبل ظهور ML.NET ولا تزال مطلوبة للمهام التي تتطلب ضبطًا دقيقًا.



الميزات الرئيسية:

  • نماذج مرنة: SVM، Random Forest، K-Means، Hidden Markov Models.
  • طرق مدمجة لمعالجة الصور والصوت (مرشحات، كاشفات الحواف، FFT).
  • دعم الطرق النووية والنماذج الاحتمالية.
  • التكامل مع Math.NET Numerics للعمليات الرياضية المتقدمة.


مثال: تدريب SVM لتصنيف زهور القزحية

using Accord.MachineLearning.VectorMachines;using Accord.MachineLearning.VectorMachines.Learning;using Accord.Statistics.Kernels;

// تحميل البيانات (مجموعة Iris الكلاسيكية)double[][] inputs = // ... مصفوفة الميزات (4 أعمدة)int[] outputs = // ... تسميات الفئات (0,1,2)

var teacher = new MulticlassSupportVectorLearning<Gaussian>(){ Learner = (param) => new SequentialMinimalOptimization<Gaussian>() { Complexity = 100, Tolerance = 1e-5 }};

var machine = teacher.Learn(inputs, outputs);int[] predicted = machine.Decide(inputs);

double error = new ZeroOneLoss(outputs).Loss(predicted);Console.WriteLine($"الخطأ: {error:P}");


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

توصيات