लॉजिस्टिक रिग्रेशन मॉडल को लीनियर रिग्रेशन मॉडल की तरह ही ट्रेन किया जाता है. हालांकि, इन दोनों में दो मुख्य अंतर हैं:
- लॉजिस्टिक रिग्रेशन मॉडल, लॉस फ़ंक्शन के तौर पर स्क्वेयर्ड लॉस के बजाय लॉग लॉस का इस्तेमाल करते हैं.
- ओवरफ़िटिंग को रोकने के लिए, रेगुलराइज़ेशन लागू करना ज़रूरी है.
यहां दिए गए सेक्शन में, इन दोनों बातों के बारे में ज़्यादा जानकारी दी गई है.
लॉग लॉस
आपने लीनियर रिग्रेशन मॉड्यूल में, स्क्वेयर्ड लॉस (इसे L2 लॉस भी कहा जाता है) को लॉस फ़ंक्शन के तौर पर इस्तेमाल किया था. स्क्वेयर्ड लॉस, लीनियर मॉडल के लिए सबसे सही होता है. इस मॉडल में, आउटपुट वैल्यू के बदलाव की दर एक जैसी होती है. उदाहरण के लिए, लीनियर मॉडल $y' = b + 3x_1$ में, इनपुट वैल्यू $x_1$ को 1 से बढ़ाने पर, आउटपुट वैल्यू $y'$ में 3 की बढ़ोतरी होती है.
हालांकि, लॉजिस्टिक रिग्रेशन मॉडल में बदलाव की दर स्थिर नहीं होती. आपने संभावना का हिसाब लगाना सेक्शन में देखा कि sigmoid कर्व, लीनियर के बजाय एस-आकार का होता है. जब लॉग-ऑड्स ($z$) की वैल्यू 0 के करीब होती है, तो $z$ में थोड़ी बढ़ोतरी होने पर, $y$ में बहुत ज़्यादा बदलाव होता है. ऐसा तब होता है, जब $z$ एक बड़ी पॉज़िटिव या नेगेटिव संख्या होती है. नीचे दी गई टेबल में, 5 से 10 तक की इनपुट वैल्यू के लिए, सिग्मॉइड फ़ंक्शन का आउटपुट दिखाया गया है. साथ ही, नतीजों में अंतर को कैप्चर करने के लिए ज़रूरी सटीक जानकारी भी दिखाई गई है.
इनपुट | लॉजिस्टिक आउटपुट | सटीक होने के लिए ज़रूरी अंक |
---|---|---|
5 | 0.993 | 3 |
6 | 0.997 | 3 |
7 | 0.999 | 3 |
8 | 0.9997 | 4 |
9 | 0.9999 | 4 |
10 | 0.99998 | 5 |
अगर आपने सिग्मॉइड फ़ंक्शन के लिए गड़बड़ियों का हिसाब लगाने के लिए स्क्वेयर्ड लॉस का इस्तेमाल किया है, तो आउटपुट 0
और 1
के जितना करीब होगा, आपको इन वैल्यू को ट्रैक करने के लिए उतनी ही ज़्यादा मेमोरी की ज़रूरत होगी.
इसके बजाय, लॉजिस्टिक रिग्रेशन के लिए लॉस फ़ंक्शन, लॉग लॉस होता है. लॉग लॉस का समीकरण, बदलाव के मेग्नीट्यूड का लॉगरिदम दिखाता है. यह सिर्फ़ डेटा से अनुमान की दूरी नहीं दिखाता. लॉग लॉस का हिसाब इस तरह लगाया जाता है:
$\text{Log Loss} = -\frac{1}{N}\sum_{i=1}^{N} y_i\log(y_i') + (1 - y_i)\log(1 - y_i')$
कहां:
- \(N\) डेटासेट में लेबल किए गए उदाहरणों की संख्या है
- \(i\) डेटासेट में मौजूद किसी उदाहरण का इंडेक्स है. उदाहरण के लिए, \((x_3, y_3)\) डेटासेट में तीसरा उदाहरण है)
- \(y_i\) , \(i\)वें उदाहरण का लेबल है. यह लॉजिस्टिक रिग्रेशन है,इसलिए \(y_i\) की वैल्यू 0 या 1 होनी चाहिए.
- \(y_i'\) , \(i\)वें उदाहरण के लिए आपके मॉडल का अनुमान है. यह अनुमान 0 और 1 के बीच होता है. यह अनुमान, \(x_i\)में मौजूद सुविधाओं के सेट के आधार पर लगाया जाता है.
लॉजिस्टिक रिग्रेशन में रेगुलराइज़ेशन
रेगुलराइज़ेशन, ट्रेनिंग के दौरान मॉडल की जटिलता को कम करने का एक तरीका है. यह लॉजिस्टिक रिग्रेशन मॉडलिंग में बहुत ज़रूरी है. रेगुलराइज़ेशन के बिना, लॉजिस्टिक रिग्रेशन की एसिम्प्टोटिक प्रकृति, उन मामलों में नुकसान को 0 की ओर ले जाती रहेगी जहां मॉडल में बड़ी संख्या में सुविधाएं हैं. इसलिए, ज़्यादातर लॉजिस्टिक रिग्रेशन मॉडल, मॉडल की जटिलता को कम करने के लिए, इन दो रणनीतियों में से किसी एक का इस्तेमाल करते हैं:
- L2 रेगुलराइज़ेशन
- अर्ली स्टॉपिंग: ट्रेनिंग के चरणों की संख्या को सीमित करना, ताकि नुकसान कम होने के दौरान ट्रेनिंग को रोका जा सके.