Python में लीनियर और लॉजिस्टिक रिग्रेशन
रिग्रेशन मशीन लर्निंग का सबसे सरल रूप है। लीनियर रिग्रेशन सीधी रेखा से एक संख्या का अनुमान लगाता है; लॉजिस्टिक रिग्रेशन उस रेखा को sigmoid से गुज़ारकर हाँ/ना उत्तर की प्रायिकता बताता है।
आसान शब्दों में अवधारणा
रिग्रेशन मशीन लर्निंग का सबसे सरल रूप है। लीनियर रिग्रेशन सीधी रेखा से एक संख्या का अनुमान लगाता है; लॉजिस्टिक रिग्रेशन उस रेखा को sigmoid से गुज़ारकर हाँ/ना उत्तर की प्रायिकता बताता है।
लीस्ट स्क्वेयर से एक सीधी रेखा फ़िट करें, फिर लॉजिस्टिक रिग्रेशन से स्कोर को प्रायिकता में बदलें।
मुख्य बातें
- लीनियर रिग्रेशन कीमत या तापमान जैसे लगातार मानों का अनुमान लगाता है।
- लॉजिस्टिक रिग्रेशन दो क्लास के लिए प्रायिकता बताता है।
- दोनों को किसी तय सूत्र की जगह ग्रेडिएंट डिसेंट से भी ट्रेन किया जा सकता है।
- परसेप्ट्रॉन मिलता-जुलता क्लासिफ़ायर है जो सिर्फ़ गलती होने पर वेट बदलता है।
इसका उपयोग कब करें?
- समझें कि न्यूरल नेटवर्क और AI लाइब्रेरी के अंदर क्या होता है।
- संबंधित चुनौतियों में खुद लागू करने से पहले विचार को समझें।
- मशीन लर्निंग कोर्स, इंटरव्यू और प्रोजेक्ट की तैयारी करें।
इसे काम करते देखें
बिंदु जोड़ने के लिए बाएँ चार्ट पर क्लिक करें और सबसे अच्छी रेखा को बदलते देखें। दाईं ओर w और b बदलकर निर्णय सीमा खिसकाएँ।
उदाहरण कोड
import math
# Linear regression: find the line that best fits the points (least squares).
xs = [1, 2, 3, 4, 5]
ys = [2.1, 3.9, 6.2, 8.1, 9.8]
mean_x, mean_y = sum(xs) / len(xs), sum(ys) / len(ys)
slope = sum((x - mean_x) * (y - mean_y) for x, y in zip(xs, ys)) / sum((x - mean_x) ** 2 for x in xs)
intercept = mean_y - slope * mean_x
print(f"line: y = {slope:.2f}x + {intercept:.2f}")
print("predict x=6:", round(slope * 6 + intercept, 2))
# Logistic regression turns a score into a probability with the sigmoid.
def predict_pass(hours_studied, weight=1.5, bias=-4.0):
return 1 / (1 + math.exp(-(weight * hours_studied + bias)))
for hours in (1, 3, 5):
p = predict_pass(hours)
print(f"{hours} hours -> pass probability {p:.2f} -> {'pass' if p >= 0.5 else 'fail'}")
अपेक्षित आउटपुट
line: y = 1.96x + 0.14
predict x=6: 11.9
1 hours -> pass probability 0.08 -> fail
3 hours -> pass probability 0.62 -> pass
5 hours -> pass probability 0.97 -> pass
यह कैसे काम करता है
लीस्ट स्क्वेयर सूत्र वह ढलान और इंटरसेप्ट ढूँढता है जिससे बिंदुओं तक दूरी का वर्ग सबसे कम हो, और y = 1.96x + 0.14 मिलता है। predict_pass() पढ़ाई के घंटों से स्कोर निकालता है और sigmoid उसे प्रायिकता में बदलता है; 0.5 फ़ेल और पास के बीच की सीमा है।
मान बदलें और Python इंस्टॉल किए बिना CodeUtility ऑनलाइन Python कंपाइलर में प्रोग्राम चलाएँ।
अभ्यास के कार्य
बड़े dataset पर जाने से पहले input बदलें और edge cases की जाँच करें।
- इनपुट या वेट बदलें और रन करने से पहले आउटपुट का अनुमान लगाएँ।
- हर गणना चरण को देखने के लिए बीच के मान प्रिंट करें।
- नीचे दी गई चुनौतियाँ हल करके विचार को खुद लागू करें।
चैलेंज से अभ्यास करें
इस पाठ में सीखी बात से एक असली समस्या हल करें। हर चैलेंज ब्राउज़र में चलता है, तुरंत टेस्ट और AI रिव्यू के साथ।
- सिंपल लीनियर रिग्रेशन (लीस्ट स्क्वेयर्स) लीस्ट स्क्वेयर्स के सूत्रों से डेटा पॉइंट्स पर सबसे अच्छी बैठने वाली सीधी रेखा खोजें। मध्यम
- ग्रेडिएंट डिसेंट से लीनियर रिग्रेशन मीन स्क्वेयर्ड एरर पर बार-बार नीचे उतरकर रेखा का ढलान और इंटरसेप्ट सीखें। मध्यम
- लॉजिस्टिक रिग्रेशन से अनुमान वेटेड योग को sigmoid से गुज़ारकर और थ्रेशोल्ड से तुलना करके सैंपल को 0 या 1 में वर्गीकृत करें। आसान
- परसेप्ट्रॉन लर्निंग एल्गोरिदम मूल परसेप्ट्रॉन को ट्रेन करें, जो गलती होने पर ही अपने वेट बदलता है। मध्यम