जब आप मशीन लर्निंग सीखना शुरू करते हैं, तो रास्ते में पहला कांटा यह होता है: आप किस तरह की लर्निंग कर रहे हैं? उत्तर सब कुछ बदल देता है - आपके लिए उपलब्ध एल्गोरिदम, आपके लिए आवश्यक डेटा, और आप अपने मॉडल से क्या करने की उम्मीद कर सकते हैं।
दो मूलभूत श्रेणियां हैं पर्यवेक्षित शिक्षण और पर्यवेक्षित शिक्षण। अंतर को समझना केवल अकादमिक नहीं है - किसी भी नई एमएल समस्या पर विचार करते समय यह पहला निर्णय है जो आप लेंगे।
पर्यवेक्षित और बिना पर्यवेक्षित शिक्षण के बीच सबसे बुनियादी अंतर यह है कि क्या आपके प्रशिक्षण डेटा में लेबल शामिल हैं।
लेबल डेटा का अर्थ है कि आपके डेटासेट में प्रत्येक उदाहरण "सही उत्तर" के साथ आता है - वह परिणाम जो आप चाहते हैं कि मॉडल भविष्यवाणी या वर्गीकृत करे:
# Labelled dataset (supervised)
email_text | label
------------------------------------|-------
"Congratulations! You've won £1000" | spam
"Meeting rescheduled to Thursday" | not_spam
"URGENT: Your account is suspended" | spam
बिना लेबल वाला डेटा का मतलब है कि आपके पास इनपुट तो हैं लेकिन कोई पूर्व-परिभाषित उत्तर नहीं हैं - केवल कच्ची टिप्पणियाँ:
# Unlabelled dataset (unsupervised)
customer_id | age | annual_spend | frequency | location
------------|-----|--------------|-----------|----------
C001 | 34 | £2,400 | 12/year | London
C002 | 52 | £18,000 | 52/year | Manchester
C003 | 28 | £650 | 3/year | London
लेबल किया गया डेटा महंगा और समय लेने वाला है - इसके लिए मनुष्यों को उदाहरणों को मैन्युअल रूप से एनोटेट करने की आवश्यकता होती है। बिना लेबल वाला डेटा प्रचुर मात्रा में है (दुनिया के अधिकांश डेटा में कोई लेबल नहीं है)। यह व्यावहारिक बाधा यह निर्धारित करती है कि किसी दी गई समस्या के लिए कौन सा दृष्टिकोण संभव है।
पर्यवेक्षित शिक्षण में, मॉडल लेबल किए गए उदाहरणों का अध्ययन करके इनपुट से आउटपुट तक मैपिंग सीखता है। "पर्यवेक्षक" स्वयं लेबल किया गया डेटा है - प्रत्येक प्रशिक्षण उदाहरण मॉडल को बताता है कि सही आउटपुट क्या होना चाहिए।
जब आउटपुट अलग श्रेणी होता है, तो यह एक वर्गीकरण समस्या है।
उदाहरण:
साइन इन करें चर्चा में शामिल हों
सामान्य एल्गोरिदम:
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
classifier = RandomForestClassifier(n_estimators=100)
classifier.fit(X_train, y_train)
accuracy = classifier.score(X_test, y_test)
print(f"Test accuracy: {accuracy:.2%}")
जब आउटपुट निरंतर संख्या होता है, तो यह एक प्रतिगमन समस्या है।
उदाहरण:
सामान्य एल्गोरिदम:
from sklearn.ensemble import GradientBoostingRegressor
model = GradientBoostingRegressor(n_estimators=200, learning_rate=0.1)
model.fit(X_train, y_train)
predictions = model.predict(X_test)
# predictions = [245000, 182000, 412000, ...] (house prices in £)
बिना पर्यवेक्षित शिक्षण में, मॉडल बिना किसी लेबल के डेटा की संरचना का पता लगाता है। किसी ज्ञात आउटपुट के लिए मैपिंग सीखने के बजाय, यह अपने आप ही छिपे हुए पैटर्न, समूह या प्रतिनिधित्व की खोज करता है।
क्लस्टर एल्गोरिदम समान डेटा बिंदुओं को एक साथ समूहित करते हैं, बिना यह बताए कि समूह क्या होने चाहिए।
उदाहरण:
सामान्य एल्गोरिदम:
from sklearn.cluster import KMeans
# We don't know how many customer segments exist — let's try 4
kmeans = KMeans(n_clusters=4, random_state=42)
kmeans.fit(customer_data_scaled)
# Each customer now has a cluster label (0, 1, 2, or 3)
df['segment'] = kmeans.labels_
# Analyse what each segment looks like
print(df.groupby('segment')[['age', 'annual_spend', 'frequency']].mean())
यथासंभव अधिक संरचना को संरक्षित करते हुए उच्च-आयामी डेटा को कम आयामों में संपीड़ित करें। विज़ुअलाइज़ेशन, प्री-प्रोसेसिंग और अनावश्यक जानकारी को हटाने के लिए उपयोग किया जाता है।
सामान्य एल्गोरिदम:
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
# Reduce 50-dimensional data to 2D for visualisation
pca = PCA(n_components=2)
X_2d = pca.fit_transform(X_scaled)
plt.scatter(X_2d[:, 0], X_2d[:, 1], c=cluster_labels, cmap='tab10')
plt.title('Customer segments visualised in 2D')
plt.show()
पर्यवेक्षित/अपर्यवेक्षित भेद मूलभूत है, लेकिन एमएल परिदृश्य इन दो श्रेणियों की तुलना में अधिक समृद्ध है।
लेबल किए गए डेटा की छोटी मात्रा को बिना लेबल किए गए डेटा की बड़ी मात्रा के साथ मिलाकर उपयोग करता है। यह बहुत व्यावहारिक है क्योंकि लेबलिंग महंगी है।
उदाहरण: आपके पास 1,000 लेबल वाले मेडिकल स्कैन और 100,000 बिना लेबल वाले स्कैन हैं। अर्ध-पर्यवेक्षित शिक्षण आपको बिना लेबल वाले डेटा से लाभ उठाकर प्रदर्शन में सुधार करने की सुविधा देता है, जो अकेले 1,000 लेबल हासिल कर सकते हैं।
एक विशेष मामला जहां लेबल डेटा से ही स्वचालित रूप से उत्पन्न होते हैं। इस प्रकार आधुनिक बड़े भाषा मॉडलों को पूर्व-प्रशिक्षित किया जाता है।
उदाहरण: एक वाक्य लें, कुछ शब्द छिपाएँ, और छूटे हुए शब्दों की भविष्यवाणी करने के लिए मॉडल को प्रशिक्षित करें। "लेबल" (सही शब्द) मुफ़्त हैं - वे सीधे पाठ से ही आते हैं। इस प्रकार BERT को प्रशिक्षित किया गया।
Input: "The cat sat on the [MASK]."
Target: "mat"
स्व-पर्यवेक्षित शिक्षण परिवर्तनकारी रहा है क्योंकि यह मानव एनोटेशन के बिना इंटरनेट-स्केल डेटा पर प्रशिक्षण की अनुमति देता है।
एक एजेंट वातावरण में कार्रवाई करके और पुरस्कार या दंड प्राप्त करके सीखता है। कोई लेबल नहीं हैं - केवल परिणामों से प्रतिक्रिया संकेत हैं।
उदाहरण: शतरंज खेलना, रोबोट को चलने का प्रशिक्षण देना, डेटा सेंटर की शीतलन प्रणाली को अनुकूलित करना। हम इसे इसके अपने पाठ में गहराई से कवर करते हैं।
यहां एक व्यावहारिक निर्णय रूपरेखा है:
Do you have labelled data?
├── YES → Supervised Learning
│ ├── Output is a category? → Classification
│ │ (spam/not spam, dog/cat, fraud/legit)
│ └── Output is a number? → Regression
│ (price, temperature, sales volume)
└── NO → Unsupervised Learning
├── Want to find groups? → Clustering
│ (customer segments, document topics)
├── Want to compress data? → Dimensionality Reduction
│ (visualisation, pre-processing)
└── Want to detect anomalies? → Anomaly Detection
(fraud, equipment failure)
Partially labelled? → Semi-Supervised Learning
Learning from interaction? → Reinforcement Learning
आपके पास बिना स्टार रेटिंग या सेंटीमेंट लेबल वाली 50,000 उत्पाद समीक्षाएँ हैं। आप उन्हें विषय के आधार पर स्वचालित रूप से समूहित करना चाहते हैं। आपको किस शिक्षण दृष्टिकोण का उपयोग करना चाहिए?