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