लॉजिस्टिक रिग्रेशन मॉडल को लीनियर रिग्रेशन मॉडल की तरह ही ट्रेन किया जाता है. हालांकि, इनमें दो मुख्य अंतर होते हैं:
- लॉजिस्टिक रिग्रेशन मॉडल, स्क्वेयर्ड लॉस के बजाय लॉग लॉस को लॉस फ़ंक्शन के तौर पर इस्तेमाल करते हैं.
- रेगुलराइज़ेशन लागू करना ओवरफ़िटिंगसे बचने के लिए ज़रूरी है.
यहां दिए गए सेक्शन में, इन दोनों बातों के बारे में ज़्यादा जानकारी दी गई है.
लॉग लॉस
लीनियर रिग्रेशन मॉड्यूल में, आपने स्क्वेयर्ड लॉस (इसे L2 लॉस भी कहा जाता है) को लॉस फ़ंक्शन के तौर पर इस्तेमाल किया था. स्क्वेयर्ड लॉस, लीनियर मॉडल के लिए अच्छी तरह काम करता है. इसमें आउटपुट वैल्यू में बदलाव की दर एक जैसी होती है. उदाहरण के लिए, लीनियर मॉडल $y' = b + 3x_1$ में, इनपुट वैल्यू $x_1$ को 1 से बढ़ाने पर, आउटपुट वैल्यू $y'$ में 3 की बढ़ोतरी होती है.
हालांकि, लॉजिस्टिक रिग्रेशन मॉडल में बदलाव की दर एक जैसी नहीं होती. संभावना का आकलन करना में आपने देखा होगा कि sigmoid कर्व, लीनियर के बजाय s-आकार का होता है . जब लॉग-ऑड्स ($z$) की वैल्यू 0 के करीब होती है, तब $z$ में थोड़ी बढ़ोतरी होने पर, $y$ में ज़्यादा बदलाव होते हैं. वहीं, जब $z$ की वैल्यू पॉज़िटिव या नेगेटिव होती है, तब $z$ में थोड़ी बढ़ोतरी होने पर, $y$ में कम बदलाव होते हैं. यहां दी गई टेबल में, 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 रेगुलराइज़ेशन
- अर्ली स्टॉपिंग: ट्रेनिंग के चरणों की संख्या को सीमित करना, ताकि लॉस कम होने के दौरान ट्रेनिंग को रोका जा सके.