Python में AI की अवधारणाएँ

Python में क्लासिफ़िकेशन की बुनियाद: softmax और k-नियरेस्ट नेबर्स

क्लासिफ़िकेशन का मतलब है एक लेबल चुनना, जैसे बिल्ली या कुत्ता। मॉडल हर क्लास के लिए स्कोर दे सकता है और softmax उन्हें प्रायिकता में बदल देता है, या k-नियरेस्ट नेबर्स जैसा सरल तरीका सबसे पास के ज्ञात उदाहरणों से वोट करवा सकता है।

आसान शब्दों में अवधारणा

क्लासिफ़िकेशन का मतलब है एक लेबल चुनना, जैसे बिल्ली या कुत्ता। मॉडल हर क्लास के लिए स्कोर दे सकता है और softmax उन्हें प्रायिकता में बदल देता है, या k-नियरेस्ट नेबर्स जैसा सरल तरीका सबसे पास के ज्ञात उदाहरणों से वोट करवा सकता है।

softmax से स्कोर को क्लास प्रायिकता में बदलें, क्रॉस-एंट्रॉपी से उन्हें आँकें और k-नियरेस्ट नेबर्स से बिंदुओं को वर्गीकृत करें।

मुख्य बातें

  • softmax स्कोर का क्रम बनाए रखता है और उनका योग 1 कर देता है।
  • कैटेगोरिकल क्रॉस-एंट्रॉपी पूरे भरोसे से दिए गए गलत उत्तरों को सबसे ज़्यादा सज़ा देती है।
  • k-NN में ट्रेनिंग का कोई चरण नहीं होता: यह नए बिंदु की तुलना सहेजे गए उदाहरणों से करता है।
  • Naive Bayes और डिसीज़न ट्री (Gini impurity, information gain) दूसरे जाने-माने क्लासिफ़ायर हैं।

इसका उपयोग कब करें?

  • समझें कि न्यूरल नेटवर्क और AI लाइब्रेरी के अंदर क्या होता है।
  • संबंधित चुनौतियों में खुद लागू करने से पहले विचार को समझें।
  • मशीन लर्निंग कोर्स, इंटरव्यू और प्रोजेक्ट की तैयारी करें।

इसे काम करते देखें

बाएँ चार्ट पर कहीं भी क्लिक करें, नया बिंदु अपने k सबसे पास के पड़ोसियों के वोट से वर्गीकृत होगा। दाईं ओर स्कोर बदलकर softmax की प्रतिक्रिया देखें।

उदाहरण कोड

कोड चलाएँ →
main.py
import math
from collections import Counter

# Softmax turns raw scores into probabilities that add up to 1.
def softmax(scores):
    exps = [math.exp(s - max(scores)) for s in scores]
    total = sum(exps)
    return [e / total for e in exps]

probs = softmax([2.0, 1.0, 0.1])
print("softmax:", [round(p, 3) for p in probs])
# Cross-entropy is small when the true class gets a high probability.
print("cross-entropy if class 0 is right:", round(-math.log(probs[0]), 3))

# k-nearest neighbours: label a point by a vote of the closest examples.
examples = [((1, 1), "cat"), ((1, 2), "cat"), ((5, 5), "dog"), ((6, 5), "dog"), ((5, 6), "dog")]
def knn(point, k=3):
    nearest = sorted(examples, key=lambda e: math.dist(point, e[0]))[:k]
    return Counter(label for _, label in nearest).most_common(1)[0][0]

print("(2, 1) ->", knn((2, 1)))
print("(5, 4) ->", knn((5, 4)))

अपेक्षित आउटपुट

softmax: [0.659, 0.242, 0.099]
cross-entropy if class 0 is right: 0.417
(2, 1) -> cat
(5, 4) -> dog

यह कैसे काम करता है

softmax() स्कोर का घातांक लेकर उनके योग से भाग देता है, इसलिए तीनों प्रायिकताओं का योग 1 होता है; पहले अधिकतम मान घटाने से ओवरफ़्लो नहीं होता। क्रॉस-एंट्रॉपी सही क्लास की प्रायिकता का −log है। knn() उदाहरणों को दूरी के क्रम में रखता है और सबसे पास के 3 से वोट करवाता है।

मान बदलें और Python इंस्टॉल किए बिना CodeUtility ऑनलाइन Python कंपाइलर में प्रोग्राम चलाएँ।

अभ्यास के कार्य

बड़े dataset पर जाने से पहले input बदलें और edge cases की जाँच करें।

  1. इनपुट या वेट बदलें और रन करने से पहले आउटपुट का अनुमान लगाएँ।
  2. हर गणना चरण को देखने के लिए बीच के मान प्रिंट करें।
  3. नीचे दी गई चुनौतियाँ हल करके विचार को खुद लागू करें।
Python IDE में चलाएँ →

चैलेंज से अभ्यास करें

इस पाठ में सीखी बात से एक असली समस्या हल करें। हर चैलेंज ब्राउज़र में चलता है, तुरंत टेस्ट और AI रिव्यू के साथ।

सभी चैलेंज