लॉजिस्टिक रिग्रेशन क्या है? हिंदी में आसान शब्दों में समझें
Table of Contents
Toggleलॉजिस्टिक रिग्रेशन एक सांख्यिकीय तकनीक है जो विशेष रूप से बाइनरी (दो विकल्पों वाले) परिणामों की भविष्यवाणी के लिए उपयोग की जाती है। इसका उपयोग यह निर्धारित करने के लिए किया जाता है कि किसी घटना का परिणाम 0 होगा या 1, यानी “नहीं” या “हां”।
उदाहरण के लिए:
क्या कोई व्यक्ति लोन चुका पाएगा?
क्या कोई ईमेल स्पैम है?
क्या कोई मरीज किसी विशेष बीमारी से पीड़ित है?
इन सभी सवालों के जवाब में हमें “हाँ” या “नहीं” में से एक ही जवाब मिलेगा। लॉजिस्टिक रिग्रेशन का उपयोग करके हम इन सवालों के जवाब देने के लिए एक मॉडल बना सकते हैं।
लॉजिस्टिक रिग्रेशन कैसे काम करता है, इसे एक उदाहरण से समझते हैं:
मान लीजिए हम यह जानना चाहते हैं कि कोई छात्र किसी परीक्षा में पास होगा या फेल। हमारे पास छात्र के बारे में कई जानकारियां हैं जैसे कि उसकी उम्र, पढ़ाई के घंटे, पिछले परीक्षाओं के अंक, आदि।
लॉजिस्टिक रिग्रेशन इस काम को निम्नलिखित चरणों में करता है:
- डेटा का संग्रह: सबसे पहले, हम उन सभी छात्रों का डेटा इकट्ठा करते हैं जिनके बारे में हमारे पास जानकारी है। इस डेटा में छात्र के बारे में सभी प्रासंगिक जानकारी शामिल होगी, जैसे उम्र, पढ़ाई के घंटे, पिछले परीक्षाओं के अंक, और यह कि वे परीक्षा में पास हुए या फेल हुए।
- मॉडल का निर्माण: फिर, हम इस डेटा का उपयोग करके एक लॉजिस्टिक रिग्रेशन मॉडल बनाते हैं। यह मॉडल एक तरह का गणितीय समीकरण होता है जो इन सभी कारकों को जोड़कर एक संख्या देता है।
- सिग्मॉइड फ़ंक्शन: इस समीकरण का परिणाम सिग्मॉइड फ़ंक्शन में डाला जाता है। यह फ़ंक्शन परिणाम को 0 से 1 के बीच एक संख्या में बदल देता है, जो कि छात्र के पास होने की संभावना होती है।
- भविष्यवाणी: अब, अगर हमारे पास किसी नए छात्र के बारे में जानकारी है, तो हम उस जानकारी को इस मॉडल में डालकर यह अनुमान लगा सकते हैं कि वह छात्र परीक्षा में पास होगा या फेल।
उदाहरण के लिए:
मान लीजिए हमारे मॉडल ने एक छात्र के लिए 0.8 की संभावना निकाली। इसका मतलब है कि 80% संभावना है कि वह छात्र परीक्षा में पास होगा।
सिग्मॉइड फ़ंक्शन और इसकी भूमिका
- S-आकार का वक्र: सिग्मॉइड फ़ंक्शन एक ऐसा वक्र होता है जो 0 से धीरे-धीरे बढ़कर 1 की ओर जाता है। यह S-आकार का होने के कारण, यह हमें संभावनाओं को एक ऐसे पैमाने पर व्यक्त करने की अनुमति देता है जो हमारे लिए सहज होता है।
- संभावना का प्रतिनिधित्व: सिग्मॉइड फ़ंक्शन के आउटपुट को संभावना के रूप में व्याख्या किया जाता है। उदाहरण के लिए, अगर सिग्मॉइड फ़ंक्शन का आउटपुट 0.8 है, तो इसका मतलब है कि घटना घटित होने की 80% संभावना है।
- क्यों सिग्मॉइड फ़ंक्शन: सिग्मॉइड फ़ंक्शन इसलिए उपयोग किया जाता है क्योंकि यह एक नॉन-लीनियर फ़ंक्शन है। यह हमें रैखिक रूप से अविभाज्य डेटा को भी मॉडल करने की अनुमति देता है।
मॉडल प्रशिक्षण: पैटर्न की खोज को और गहराई से समझें
आइए, हम इस विषय को और विस्तार से समझते हैं, ताकि आप मशीन लर्निंग के इस महत्वपूर्ण पहलू के बारे में और अधिक गहराई से जान सकें।
मॉडल प्रशिक्षण क्या है?
मॉडल प्रशिक्षण एक ऐसी प्रक्रिया है जिसमें हम एक मॉडल को डेटा के एक सेट पर प्रशिक्षित करते हैं ताकि वह भविष्य में नए डेटा पर सटीक भविष्यवाणियां कर सके। यह प्रक्रिया मॉडल को डेटा में मौजूद पैटर्नों को पहचानने और उन पैटर्नों के आधार पर निर्णय लेने में सक्षम बनाती है।
पैटर्न की खोज का महत्व सटीक भविष्यवाणियां:
- पैटर्न की सही पहचान मॉडल को सटीक भविष्यवाणियां करने में मदद करती है।
- निर्णय लेना: मॉडल द्वारा पहचाने गए पैटर्न का उपयोग व्यावहारिक निर्णय लेने में किया जा सकता है। उदाहरण के लिए, एक मार्केटिंग कंपनी यह निर्धारित कर सकती है कि कौन से ग्राहक एक नए उत्पाद को खरीदने की संभावना रखते हैं।
- इनसाइट: पैटर्न की खोज से हमें डेटा के बारे में महत्वपूर्ण इनसाइट मिल सकती है जिसे हम अन्यथा नहीं देख पाते।
वजन और बायस: मॉडल का दिल और दिमाग
वजन: वजन यह दर्शाते हैं कि प्रत्येक स्वतंत्र चर का निर्भर चर पर कितना प्रभाव पड़ता है। उदाहरण के लिए, एक मॉडल जो यह भविष्यवाणी करता है कि कोई व्यक्ति घर खरीदेगा या नहीं, में आय का वजन अधिक हो सकता है क्योंकि उच्च आय वाले लोगों के घर खरीदने की संभावना अधिक होती है।
- बायस: बायस मॉडल में एक स्थिर मान होता है जो सभी डेटा बिंदुओं पर लागू होता है। यह मॉडल को डेटा में मौजूद सामान्य प्रवृत्ति को समायोजित करने में मदद करता है।
प्रशिक्षण प्रक्रिया - डेटा तैयार करना: डेटा को साफ किया जाता है, पूर्व-संसाधित किया जाता है, और विशेषताओं में परिवर्तित किया जाता है जिन्हें मॉडल द्वारा समझा जा सकता है।
- मॉडल का चयन: एक उपयुक्त मॉडल (जैसे लॉजिस्टिक रिग्रेशन, निर्णय वृक्ष, नूरल नेटवर्क ) चुना जाता है।
- प्रारंभिक वजन और बायस: वजन और बायस को random रूप से या कुछ विशिष्ट तरीके से शुरू किया जाता है।
- भविष्यवाणियां करना: मॉडल प्रशिक्षण डेटा पर भविष्यवाणियां करता है।
- खोद की गणना: भविष्यवाणियों और वास्तविक मानों के बीच अंतर को मापने के लिए एक खोद फ़ंक्शन का उपयोग किया जाता है।
- वजन और बायस का समायोजन: एक अनुकूलन एल्गोरिदम (जैसे ग्रेडिएंट डिस्सेंट) का उपयोग करके वजन और बायस को समायोजित किया जाता है ताकि खोद को कम किया जा सके।
पुनरावृत्ति: चरण 4 से 6 को तब तक दोहराया जाता है जब तक कि खोद कम से कम न हो जाए या एक निर्धारित संख्या में पुनरावृत्तियों तक।
अतिरिक्त बिंदु
ओवरफिटिंग: जब मॉडल प्रशिक्षण डेटा पर बहुत अधिक फिट हो जाता है, तो वह नए डेटा पर खराब प्रदर्शन कर सकता है। इस स्थिति को ओवरफिटिंग कहते हैं। - रेगुलराइज़ेशन: ओवरफिटिंग को रोकने के लिए, हम रेगुलराइज़ेशन तकनीकों का उपयोग करते हैं।
मॉडल मूल्यांकन: मॉडल के प्रदर्शन का मूल्यांकन करने के लिए हम विभिन्न मेट्रिक्स (जैसे सटीकता, सटीकता, याद, एफ1 स्कोर) का उपयोग करते हैं।
उदाहरण:
मान लीजिए हम एक मॉडल बनाना चाहते हैं जो यह भविष्यवाणी करे कि कोई व्यक्ति डायबिटीज से पीड़ित है या नहीं। हमारे पास डेटा में विभिन्न कारक होंगे जैसे कि उम्र, वजन, ब्लड शुगर लेवल आदि। मॉडल प्रशिक्षण के दौरान, मॉडल इन कारकों के बीच संबंधों की पहचान करेगा और यह निर्धारित करेगा कि कौन से कारक डायबिटीज होने की संभावना को अधिक प्रभावित करते हैं।
मॉडल प्रशिक्षण एक इटरेटिव प्रक्रिया है। इसका मतलब है कि मॉडल को बार-बार प्रशिक्षित किया जाता है और हर बार वजन और बायस को समायोजित किया जाता है ताकि मॉडल की भविष्यवाणियां अधिक सटीक हो सकें।
लॉजिस्टिक रिग्रेशन और लीनियर रिग्रेशन की तुलना:
लॉजिस्टिक रिग्रेशन और लीनियर रिग्रेशन दोनों ही रिग्रेशन विश्लेषण की तकनीकें हैं, लेकिन इनका उपयोग अलग-अलग प्रकार के समस्याओं को हल करने के लिए किया जाता है।
लीनियर रिग्रेशन
उपयोग: लीनियर रिग्रेशन का उपयोग तब किया जाता है जब हम किसी निरंतर चर (continuous variable) का पूर्वानुमान लगाना चाहते हैं। उदाहरण के लिए, किसी व्यक्ति की उम्र के आधार पर उसकी आय का अनुमान लगाना।
आउटपुट: लीनियर रिग्रेशन एक निरंतर संख्या के रूप में आउटपुट देता है।
समीकरण: y = mx + c (जहां y निर्भर चर, x स्वतंत्र चर, m ढलान और c अंतःखंड है)
विज़ुअलाइज़ेशन: लीनियर रिग्रेशन का आलेख एक सीधी रेखा के रूप में होता है।
उदाहरण: किसी घर का क्षेत्रफल और उसके मूल्य के बीच संबंध का अध्ययन करना।
लॉजिस्टिक रिग्रेशन
उपयोग: लॉजिस्टिक रिग्रेशन का उपयोग तब किया जाता है जब हम किसी द्विआधारी (binary) परिणाम का पूर्वानुमान लगाना चाहते हैं। उदाहरण के लिए, कोई व्यक्ति किसी उत्पाद को खरीदेगा या नहीं, कोई रोगी किसी बीमारी से पीड़ित है या नहीं।
आउटपुट: लॉजिस्टिक रिग्रेशन 0 और 1 के बीच एक संख्या देता है, जो एक घटना की होने की संभावना को दर्शाता है।
समीकरण: लॉजिस्टिक फ़ंक्शन का उपयोग किया जाता है जो आउटपुट को 0 और 1 के बीच सीमित करता है।
विज़ुअलाइज़ेशन: लॉजिस्टिक रिग्रेशन का आलेख एक S-आकार के वक्र (सिग्मॉइड फ़ंक्शन) के रूप में होता है।
उदाहरण: किसी व्यक्ति के डेटा के आधार पर यह भविष्यवाणी करना कि वह कैंसर से पीड़ित होगा या नहीं।
विशेषता | लीनियर रिग्रेशन | लॉजिस्टिक रिग्रेशन |
आउटपुट | निरंतर संख्या | 0 और 1 के बीच की संख्या (संभावना) |
उपयोग | निरंतर चर का पूर्वानुमान | द्विआधारी परिणाम का पूर्वानुमान |
समीकरण | y = mx + c | लॉजिस्टिक फ़ंक्शन |
विज़ुअलाइज़ेशन | सीधी रेखा | S-आकार का वक्र |
उदाहरण | घर का मूल्य, आय | उत्पाद खरीदना, बीमारी होना |
कब कौन सा उपयोग करें?
यदि आप किसी संख्यात्मक मान का पूर्वानुमान लगाना चाहते हैं, तो लीनियर रिग्रेशन का उपयोग करें।
यदि आप किसी घटना के होने या न होने की संभावना का पूर्वानुमान लगाना चाहते हैं, तो लॉजिस्टिक रिग्रेशन का उपयोग करें।
सारांश में:
लीनियर रिग्रेशन संख्याओं के बीच संबंधों का अध्ययन करता है, जबकि लॉजिस्टिक रिग्रेशन घटनाओं के होने या न होने की संभावना का अध्ययन करता है।
लीनियर रिग्रेशन एक सीधी रेखा का उपयोग करता है, जबकि लॉजिस्टिक रिग्रेशन एक S-आकार का वक्र (सिग्मॉइड फ़ंक्शन) का उपयोग करता है।
लॉजिस्टिक रिग्रेशन का उपयोग करके मॉडल कैसे बनाएं
लॉजिस्टिक रिग्रेशन एक शक्तिशाली सांख्यिकीय तकनीक है जिसका उपयोग द्विआधारी परिणामों का पूर्वानुमान लगाने के लिए किया जाता है। उदाहरण के लिए, यह भविष्यवाणी करने के लिए इस्तेमाल किया जा सकता है कि कोई ग्राहक किसी उत्पाद को खरीदेगा या नहीं, कोई ईमेल स्पैम है या नहीं, या कोई व्यक्ति किसी बीमारी से पीड़ित है या नहीं।
लॉजिस्टिक रिग्रेशन मॉडल बनाने के लिए निम्नलिखित चरणों का पालन किया जाता है:
1. डेटा का कलेक्शन और तैयारी
डेटा का कलेक्शन आपको उस डेटा को इकट्ठा करना होगा जिसका उपयोग आप अपने मॉडल को प्रशिक्षित करने के लिए करेंगे। यह डेटा विभिन्न स्रोतों से आ सकता है, जैसे कि डेटाबेस, फाइलें या वेबसाइट्स।
डेटा की सफाई: डेटा में त्रुटियों, असंगतियों या खाली मानों को हटाना या ठीक करना।
फीचर इंजीनियरिंग: डेटा को ऐसे रूप में बदलना जो मॉडल के लिए उपयोगी हो। इसमें नए फीचर्स बनाना, मौजूदा फीचर्स को स्केल करना या उन्हें श्रेणीबद्ध करना शामिल हो सकता है।
2. डेटा को प्रशिक्षण और परीक्षण सेट में विभाजित करना
प्रशिक्षण सेट: डेटा का एक हिस्सा जिसका उपयोग मॉडल को प्रशिक्षित करने के लिए किया जाता है।
परीक्षण सेट: डेटा का एक हिस्सा जिसका उपयोग मॉडल के प्रदर्शन का मूल्यांकन करने के लिए किया जाता है।
3. मॉडल का चयन लॉजिस्टिक रिग्रेशन: चूंकि हम बाइनरी रिजल्ट का पूर्वानुमान लगा रहे हैं, इसलिए लॉजिस्टिक रिग्रेशन एक उपयुक्त विकल्प है।
4. मॉडल को प्रशिक्षित करना
मॉडल को फिट करना: प्रशिक्षण डेटा का उपयोग करके मॉडल के पैरामीटरों (वजन और बायस) को अनुकूलित किया जाता है ताकि यह डेटा में पैटर्न को सबसे अच्छा ढंग से फिट कर सके।
5. मॉडल का मूल्यांकन
परीक्षण सेट पर मूल्यांकन: मॉडल का उपयोग परीक्षण सेट पर भविष्यवाणियां करने के लिए किया जाता है और फिर भविष्यवाणियों की तुलना वास्तविक परिणामों से की जाती है।
मूल्यांकन मेट्रिक्स: मॉडल के प्रदर्शन का मूल्यांकन करने के लिए विभिन्न मेट्रिक्स का उपयोग किया जाता है, जैसे कि सटीकता, सटीकता, याद, एफ1-स्कोर आदि।
6. मॉडल का उपयोग
नए डेटा पर भविष्यवाणियां: एक बार जब मॉडल का मूल्यांकन हो जाता है और यह संतोषजनक परिणाम देता है, तो इसका उपयोग नए डेटा पर भविष्यवाणियां करने के लिए किया जा सकता है।
लॉजिस्टिक रिग्रेशन मॉडल बनाने के लिए विभिन्न टूल्स और लाइब्रेरी का उपयोग किया जा सकता है, जैसे कि:
- Python: Scikit-learn, Statsmodels
- R: glm, caret
- MATLAB: Statistics and Machine Learning Toolbox
उदाहरण:
मान लीजिए हम यह भविष्यवाणी करना चाहते हैं कि कोई छात्र किसी परीक्षा में पास होगा या फेल होगा। हमारे पास छात्रों के विभिन्न गुणों का डेटा है, जैसे कि अध्ययन के घंटे, पिछले परीक्षाओं के अंक आदि। हम लॉजिस्टिक रिग्रेशन का उपयोग करके एक मॉडल बना सकते हैं जो इन गुणों के आधार पर भविष्यवाणी करेगा कि कोई छात्र पास होगा या फेल होगा।
यह ध्यान रखना महत्वपूर्ण है कि लॉजिस्टिक रिग्रेशन केवल बाइनरी रिजल्ट के लिए उपयुक्त है। यदि आपके पास मल्टीक्लास समस्या है, तो आपको अन्य तकनीकों जैसे कि बहुवर्गीय लॉजिस्टिक रिग्रेशन या सपोर्ट वेक्टर मशीन का उपयोग करना चाहिए।
लॉजिस्टिक रिग्रेशन के फायदे और नुकसान: आसान भाषा में
लॉजिस्टिक रिग्रेशन एक ऐसा सांख्यिकीय तरीका है जिसका उपयोग हम किसी घटना के होने या न होने की संभावना का अनुमान लगाने के लिए करते हैं। मान लीजिए, आप जानना चाहते हैं कि कोई छात्र परीक्षा में पास होगा या फेल होगा। लॉजिस्टिक रिग्रेशन आपको इस सवाल का जवाब देने में मदद कर सकता है।
लॉजिस्टिक रिग्रेशन के फायदे
- आसान समझ: यह समझने में काफी आसान है कि यह कैसे काम करता है।
- स्पष्ट व्याख्या: हम इस तरीके से प्राप्त परिणामों को आसानी से समझ सकते हैं कि कौन से कारक किसी घटना को प्रभावित करते हैं।
- विभिन्न तरह के डेटा के लिए: हम संख्यात्मक (जैसे, उम्र, वजन) और श्रेणीगत (जैसे, लिंग, रंग) दोनों तरह के डेटा का उपयोग कर सकते हैं।
- कई सॉफ्टवेयर में उपलब्ध: यह कई कंप्यूटर प्रोग्रामों में पहले से मौजूद है।
- बेहतर परिणाम: हम कुछ विशेष तरीकों से इस तरीके को और बेहतर बना सकते हैं।
लॉजिस्टिक रिग्रेशन के नुकसान
- सीमित धारणा: यह तरीका हमेशा सही नहीं होता, क्योंकि यह मानता है कि चीजें एक खास तरीके से जुड़ी हुई हैं।
- सिर्फ दो विकल्प: यह तरीका सिर्फ दो तरह के परिणामों के लिए ही अच्छा है (जैसे, पास या फेल, हां या नहीं)।
- अजीब डेटा का प्रभाव: अगर हमारे डेटा में कुछ अजीब डेटा हो, तो यह हमारे परिणामों को गलत बना सकता है।
- अधिक डेटा पर गलत परिणाम: अगर हम इस तरीके को बहुत ज्यादा डेटा पर लागू करें, तो यह नए डेटा पर गलत परिणाम दे सकता है।
कब इस्तेमाल करें
जब आपको यह पता लगाना हो कि कोई घटना होगी या नहीं।
जब आपके पास अलग-अलग तरह के डेटा हो।
जब आपको एक सरल और समझने में आसान तरीका चाहिए।
कब इस्तेमाल न करें
जब आपके पास तीन या उससे अधिक तरह के परिणाम हो।
जब आपके डेटा में बहुत सारी गलतियाँ हों।
जब डेटा के बीच का संबंध बहुत जटिल हो।
निष्कर्ष:
लॉजिस्टिक रिग्रेशन एक बहुत उपयोगी तरीका है, लेकिन यह हर स्थिति में सही नहीं होता। हमें हमेशा अपने डेटा और समस्या को ध्यान में रखकर ही इसका इस्तेमाल करना चाहिए।
सरल शब्दों में:
लॉजिस्टिक रिग्रेशन एक ऐसा टूल है जिसका उपयोग हम किसी चीज़ के होने या न होने की संभावना का अनुमान लगाने के लिए करते हैं। यह आसान है लेकिन कुछ सीमाएं भी हैं।
Python Logistic Regression Analysis of Purchase Behavior
This project utilizes Python’s logistic regression capabilities to analyze factors influencing customer purchase decisions based on age and salary data.
import pandas as pd from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score, confusion_matrix import numpy as np import matplotlib.pyplot as plt # Import for plotting import seaborn as sns # Import for statistical data visualization # Load dataset from Excel data = pd.read_excel(r'D:\data_logistic_regression.xlsx') # Change the path as needed # Preview the data print(data.head()) # Independent variables (features) X = data[['Age', 'Salary']] # Dependent variable (target) y = data['Purchased'] # Split the data: 80% for training, 20% for testing X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # Create Logistic Regression model logistic_reg = LogisticRegression() # Train the model logistic_reg.fit(X_train, y_train) # Predict the test results y_pred = logistic_reg.predict(X_test) # Check the accuracy of the model accuracy = accuracy_score(y_test, y_pred) print("Accuracy:", accuracy) # Confusion matrix for more detailed performance analysis conf_matrix = confusion_matrix(y_test, y_pred) print("Confusion Matrix:\n", conf_matrix) # Generate S-curve data # Create a range of values for Age and Salary age_range = np.linspace(X['Age'].min(), X['Age'].max(), 100) salary_range = np.linspace(X['Salary'].min(), X['Salary'].max(), 100) # Create a meshgrid for the range age_grid, salary_grid = np.meshgrid(age_range, salary_range) # Create a DataFrame for the grid with proper column names grid = pd.DataFrame(np.c_[age_grid.ravel(), salary_grid.ravel()], columns=['Age', 'Salary']) # Get the predicted probabilities probabilities = logistic_reg.predict_proba(grid)[:, 1] # Probabilities for the positive class # Reshape the probabilities to match the grid shape probabilities = probabilities.reshape(age_grid.shape) # Plotting the S-curve plt.figure(figsize=(10, 6)) plt.contourf(age_grid, salary_grid, probabilities, levels=20, cmap='RdBu', alpha=0.7) plt.colorbar(label='Probability of Purchase') plt.title('S-Curve of Purchase Probability') plt.xlabel('Age') plt.ylabel('Salary') plt.scatter(X_test['Age'], X_test['Salary'], c=y_test, edgecolors='k', marker='o', label='Test Data') plt.legend() plt.show()
यहाँ पर आपके द्वारा दिए गए कोड का चरणबद्ध हिंदी में विवरण प्रस्तुत किया गया है:
1. आवश्यक लाइब्रेरी इम्पोर्ट करना
import pandas as pd from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score, confusion_matrix import numpy as np import matplotlib.pyplot as plt import seaborn as sns
- pandas: डेटा को प्रोसेस और एनालिसिस करने के लिए।
- sklearn.model_selection: डेटा को ट्रेन और टेस्ट सेट में विभाजित करने के लिए।
- sklearn.linear_model: लॉजिस्टिक रिग्रेशन मॉडल बनाने के लिए।
- sklearn.metrics: मॉडल की परफॉर्मेंस मापने के लिए, जैसे एक्यूरेसी और कन्फ्यूजन मैट्रिक्स।
- numpy: संख्यात्मक ऑपरेशन्स के लिए।
- matplotlib.pyplot और seaborn: डेटा विज़ुअलाइजेशन के लिए।
2. डेटा लोड करना
data = pd.read_excel(r'D:\data_logistic_regression.xlsx') # Change the path as neededयहाँ पर एक Excel फ़ाइल से डेटा लोड किया जा रहा है। आपको फ़ाइल का पथ सही करना होगा।
3. डेटा का पूर्वावलोकन
print(data.head())head() फंक्शन का उपयोग करके पहले 5 पंक्तियों को प्रदर्शित किया जा रहा है ताकि डेटा का एक प्रारंभिक अवलोकन मिल सके।
4. स्वतंत्र और आश्रित चर परिभाषित करना
X = data[['Age', 'Salary']] y = data['Purchased']X contains the independent variables (Age and Salary). y contains the dependent variable (Purchased), which indicates whether a purchase was made.
5. डेटा विभाजन
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)train_test_split फंक्शन का उपयोग करके डेटा को 80% ट्रेनिंग और 20% टेस्टिंग सेट में विभाजित किया गया है।
6. लॉजिस्टिक रिग्रेशन मॉडल बनाना
logistic_reg = LogisticRegression()एक लॉजिस्टिक रिग्रेशन मॉडल का उदाहरण बनाया गया है।
7. मॉडल को प्रशिक्षित करना
logistic_reg.fit(X_train, y_train)fit फंक्शन का उपयोग करके मॉडल को ट्रेनिंग डेटा पर प्रशिक्षित किया गया है।
8. परीक्षण परिणामों की भविष्यवाणी करना
y_pred = logistic_reg.predict(X_test)predict फंक्शन का उपयोग करके टेस्ट सेट पर भविष्यवाणियाँ की गई हैं।
9. मॉडल की सटीकता की जाँच करना
accuracy = accuracy_score(y_test, y_pred) print("Accuracy:", accuracy)accuracy_score फंक्शन का उपयोग करके मॉडल की सटीकता की गणना की गई है और उसे प्रदर्शित किया गया है।
10. कन्फ्यूजन मैट्रिक्स का उपयोग करना
conf_matrix = confusion_matrix(y_test, y_pred) print("Confusion Matrix:\n", conf_matrix)confusion_matrix फंक्शन का उपयोग करके अधिक विस्तृत प्रदर्शन विश्लेषण के लिए कन्फ्यूजन मैट्रिक्स को प्रदर्शित किया गया है।
11. S-Curve डेटा जनरेट करना
age_range = np.linspace(X['Age'].min(), X['Age'].max(), 100) salary_range = np.linspace(X['Salary'].min(), X['Salary'].max(), 100) age_grid, salary_grid = np.meshgrid(age_range, salary_range) grid = pd.DataFrame(np.c_[age_grid.ravel(), salary_grid.ravel()], columns=['Age', 'Salary'])आयु और वेतन के लिए मानों की एक सीमा बनाई गई है और meshgrid का उपयोग करके एक ग्रिड तैयार किया गया है। फिर उसे एक DataFrame में संगठित किया गया है। 12. भविष्यवाणी संभावनाएँ प्राप्त करना
12. भविष्यवाणी संभावनाएँ प्राप्त करना
probabilities = logistic_reg.predict_proba(grid)[:, 1] # Probabilities for the positive class
13. संभावनाओं को ग्रिड आकार में पुनर्गठित करना
probabilities = probabilities.reshape(age_grid.shape)संभावनाओं को ग्रिड के आकार में पुनर्गठित किया गया है ताकि प्लॉट में उपयोग किया जा सके।
14. S-curve का प्लॉट बनाना
plt.figure(figsize=(10, 6)) plt.contourf(age_grid, salary_grid, probabilities, levels=20, cmap='RdBu', alpha=0.7) plt.colorbar(label='Probability of Purchase') plt.title('S-Curve of Purchase Probability') plt.xlabel('Age') plt.ylabel('Salary') plt.scatter(X_test['Age'], X_test['Salary'], c=y_test, edgecolors='k', marker='o', label='Test Data') plt.legend() plt.show()