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

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

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

ابدأ الدورة

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

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



1. ML.NET — المكتبة الرسمية من Microsoft

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



الإمكانيات الرئيسية:

  • محولات مدمجة لإعداد البيانات (التطبيع، الترميز، الدمج).
  • اختيار النموذج تلقائيًا (AutoML) عبر AutoML.NET.
  • تصدير النموذج إلى تنسيق ONNX لاستخدامه على منصات أخرى.
  • دعم التدريب على البيانات الضخمة عبر IDataView.


مثال: تصنيف ثنائي للمراجعات (تحليل المشاعر)

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 predictionEngine = context.Model.CreatePredictionEngine<SentimentData, SentimentPrediction>(model);var prediction = predictionEngine.Predict(new SentimentData { Text = "This product is amazing!" });Console.WriteLine($"Positive: {prediction.PredictedLabel}, Confidence: {prediction.Probability:P}");

يوضح هذا الكود كيفية تدريب نموذج على ملف CSV والتنبؤ ببضعة أسطر. تقوم ML.NET تلقائيًا بمعالجة أنواع البيانات وإنشاء خط أنابيب.



2. Accord.NET — الإطار الكلاسيكي للحوسبة العلمية

Accord.NET هي مجموعة من المكتبات لمعالجة الإشارات والإحصاءات والتعلم الآلي. تتضمن أكثر من 40 خوارزمية: من SVM والشبكات العصبية إلى نماذج ماركوف المخفية. تُستخدم المكتبة بنشاط في الأوساط الأكاديمية والصناعية منذ عام 2010. على عكس ML.NET، توفر Accord.NET تحكمًا أكثر على مستوى منخفض في الخوارزميات.



الإمكانيات الرئيسية:

  • مجموعة واسعة من المصنفات: KNN وNaiveBayes وRandomForest وSVM.
  • طرق معالجة مسبقة مدمجة: PCA وLDA والتطبيع.
  • دعم الشبكات العصبية (Deep Learning Toolkit).
  • التكامل مع Math.NET للعمليات الرياضية المعقدة.


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

using Accord.MachineLearning;using Accord.MachineLearning.VectorMachines;using Accord.Statistics.Analysis;

// تحميل البيانات (مجموعة Iris الكلاسيكية)double[][] inputs = new double[][]{ new double[] { 5.1, 3.5, 1.4, 0.2 }, new double[] { 4.9, 3.0, 1.4, 0.2 }, // ... البقية

توصيات