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

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

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

ابدأ الدورة

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



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



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



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



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

  • دعم الخوارزميات التقليدية: الانحدار، التصنيف، التجميع، الترتيب.
  • التعلم العميق من خلال التكامل مع TensorFlow و ONNX.
  • التعلم الآلي التلقائي (AutoML) لاختيار النموذج الأمثل.
  • خطوط أنابيب معالجة بيانات مدمجة (تحويلات، تطبيع).
  • التكامل مع Visual Studio (إضافة Model Builder).


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

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

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

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

var context = new MLContext();// تحميل البياناتIDataView data = context.Data.LoadFromTextFile<SentimentData>("data.tsv", separatorChar: '\\t');// خط الأنابيب: تحويل النص + التدريبvar pipeline = context.Transforms.Text.FeaturizeText("Features", nameof(SentimentData.SentimentText)) .Append(context.BinaryClassification.Trainers.SdcaLogisticRegression());// التدريبvar model = pipeline.Fit(data);// الاستخدامvar engine = context.Model.CreatePredictionEngine<SentimentData, SentimentPrediction>(model);var prediction = engine.Predict(new SentimentData { SentimentText = "This is great!" });Console.WriteLine($"Predicted: {prediction.PredictedLabel}, Probability: {prediction.Probability}");


2. Accord.NET — مجموعة الحوسبة العلمية



Accord.NET هي مكتبة قوية لا توفر خوارزميات التعلم الآلي فحسب، بل توفر أيضًا أدوات لمعالجة الإشارات والإحصاءات والرؤية الحاسوبية والشبكات العصبية. تعتبر واحدة من أكثر الحلول اكتمالاً لـ .NET.



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

  • مجموعة واسعة من الخوارزميات: SVM، Random Forest، K-Means، Naive Bayes.
  • الشبكات العصبية العميقة (Accord.Neuro).
  • معالجة الصور والفيديو (Accord.Imaging).
  • الاختبارات الإحصائية والتوزيعات.


مثال: تدريب مصنف SVM

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

// بيانات التدريب (الميزات: رقمين)double[][] inputs = { new double[] { 0, 0 }, new double[] { 1, 1 }, new double[] { 1, 0 }, new double[] { 0, 1 }};int[] outputs = { 0, 1, 1, 0 };

// إنشاء وتدريب SVM بنواة غاوسيةvar teacher = new SequentialMinimalOptimization<Gaussian>(){ Complexity = 100};var svm = teacher.Learn(inputs, outputs);

// التنبؤint prediction = svm.Decide(new double[] { 0.8, 0.2 });Console.WriteLine($"Predicted class: {prediction}");


3. TensorFlow.NET — روابط .NET لـ TensorFlow



TensorFlow.NET (SciSharp) هي روابط رسمية منخفضة المستوى لـ TensorFlow لـ .NET. تتيح المكتبة إجراء عمليات على الموترات، وبناء وتدريب الشبكات العصبية، وكذلك تحميل

توصيات