C# (.NET) पर मशीन लर्निंग: प्रमुख पुस्तकालयों का अवलोकन
हालांकि Python को पारंपरिक रूप से मशीन लर्निंग (ML) के लिए मुख्य भाषा माना जाता है, C# (.NET) पारिस्थितिकी तंत्र कॉर्पोरेट अनुप्रयोगों, वेब सेवाओं और डेस्कटॉप प्रोग्रामों में ML-मॉडल को एकीकृत करने के लिए शक्तिशाली और परिपक्व समाधान प्रदान करता है। इस लेख में, हम C# डेवलपर्स के लिए उपलब्ध प्रमुख पुस्तकालयों, उनकी क्षमताओं, उपयोग के उदाहरणों और अनुप्रयोग परिदृश्यों की समीक्षा करेंगे।
1. ML.NET — Microsoft की आधिकारिक पुस्तकालय
ML.NET एक क्रॉस-प्लेटफ़ॉर्म, खुला और मुफ्त मशीन लर्निंग पुस्तकालय है जिसे Microsoft द्वारा विकसित किया गया है। यह Python या अन्य भाषाओं पर स्विच किए बिना, सीधे .NET अनुप्रयोगों में ML मॉडल बनाने, प्रशिक्षित करने और उपयोग करने की अनुमति देता है।
मुख्य क्षमताएँ:
- क्लासिकल एल्गोरिदम का समर्थन: रिग्रेशन, क्लासिफिकेशन, क्लस्टरिंग, रैंकिंग।
- 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 एक शक्तिशाली पुस्तकालय है जो न केवल ML-एल्गोरिदम प्रदान करता है, बल्कि सिग्नल प्रोसेसिंग, सांख्यिकी, कंप्यूटर विज़न और न्यूरल नेटवर्क के लिए उपकरण भी प्रदान करता है। इसे .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) .NET के लिए TensorFlow की आधिकारिक निम्न-स्तरीय बाइंडिंग्स हैं। यह पुस्तकालय टेंसर संचालन करने, न्यूरल नेटवर्क बनाने और प्रशिक्षित करने, साथ ही लोड करने की अनुमति देता है।