लाभ:
- कार्य की वास्तविक लागत के अनुसार समस्या के प्रकार (वर्गीकरण, प्रतिगमन, क्लस्टरिंग) और सफलता मानदंड को परिभाषित करने की क्षमता
- डेटा को ईमानदारी से विभाजित करने की क्षमता (परीक्षण सेट को छुए बिना; कालानुक्रमिक रूप से समय श्रृंखला में) और एक रिसाव-मुक्त मूल्यांकन आधार स्थापित करने की क्षमता
- एक सरल आधार रेखा से शुरू करके और केवल तभी जटिलता जोड़कर एक व्याख्या योग्य मॉडल चुनने की क्षमता जब वह इसके योग्य हो।
अब तक हमने डेटा एकत्र किया है, उसे साफ़ किया है, उसका अन्वेषण किया है और सुविधाएँ तैयार की हैं। अब हम असली काम पर आते हैं, एक मॉडल का निर्माण। मॉडल एक गणितीय संरचना है जो डेटा से एक पैटर्न सीखता है और नई स्थितियों के लिए पूर्वानुमान तैयार करता है। लेकिन एक मॉडल के निर्माण का सबसे महत्वपूर्ण हिस्सा कोड ही नहीं है, बल्कि उससे पहले के दो निर्णय हैं: सही समस्या को परिभाषित करना और डेटा को सही ढंग से विभाजित करना। एआई एल्गोरिदम चयन, कोड लेखन और पैरामीटर ट्यूनिंग में एक शक्तिशाली सलाहकार है; लेकिन यह तय करना किसी पर निर्भर है कि क्या भविष्यवाणी की जाए और सफलता का क्या मतलब है। एक पूरी तरह से लिखित मॉडल के साथ भी एक अपरिभाषित समस्या काम नहीं करेगी।
समस्या की परिभाषा पहले: हम क्या भविष्यवाणी करते हैं
प्रत्येक मॉडलिंग कार्य एक प्रश्न से शुरू होता है, और यह प्रश्न मॉडल के प्रकार को निर्धारित करता है। वर्गीकरण - आउटपुट एक श्रेणी है: "क्या यह ग्राहक छोड़ देगा या रहेगा?", "क्या यह लेनदेन नकली है?"। प्रतिगमन (अंग्रेजी प्रतिगमन में - आउटपुट एक संख्या है): "इस घर का मूल्य कितना है?", "अगले महीने कितने ऑर्डर आएंगे?"। क्लस्टरिंग (बिना लेबल वाले डेटा को प्राकृतिक समूहों में विभाजित करना): "मेरे ग्राहकों को कितने प्राकृतिक खंडों में विभाजित किया गया है?"।
समस्या कथन का दूसरा भाग सफलता की कसौटी है: इस मॉडल के "अच्छा" होने का क्या मतलब है? एक धोखाधड़ी मॉडल में, एक धोखेबाज को खोना किसी ईमानदार ग्राहक को गलती से ब्लॉक करने की तुलना में कहीं अधिक महंगा है; इसलिए, "सामान्य सटीकता" नहीं बल्कि "धोखेबाज़ों को पकड़ने की दर" सामने आती है। यदि आप शुरुआत से ही इस मानदंड को परिभाषित नहीं करते हैं, तो व्यवसाय के मालिक के साथ मिलकर, आप एक "अत्यधिक सटीक" मॉडल के साथ समाप्त हो जाएंगे जो काम नहीं करता है (हम यूनिट 7 में मेट्रिक्स में गहराई से जाएंगे)।
सावधानी: "सटीकता" भ्रामक हो सकती है। यदि 1000 में से 10 लेनदेन धोखाधड़ी वाले हैं, तो एक बेवकूफ मॉडल जो कहता है कि "कोई भी धोखाधड़ी वाला नहीं है" 99% सटीकता देगा लेकिन एक भी धोखेबाज को नहीं पकड़ पाएगा। समस्या की वास्तविक लागत के आधार पर सफलता मानदंड चुनें।
प्रशिक्षण/परीक्षण विभाजन: मॉडल की ईमानदार परीक्षा
सीखे गए डेटा के साथ एक मॉडल का परीक्षण करना छात्र से वही प्रश्न पूछने जैसा है जो उसने परीक्षा में पढ़ा था; उसे उच्च अंक मिलते हैं लेकिन वह यह नहीं दिखाता कि वह वास्तव में क्या जानता है। इसलिए हम डेटा को दो (अक्सर तीन) में विभाजित करते हैं:
- प्रशिक्षण सेट (अंग्रेजी में प्रशिक्षण सेट, आमतौर पर 70-80%): मॉडल इस पर सीखता है।
- परीक्षण सेट (परीक्षण सेट, आमतौर पर 20-30%): मॉडल इसे बिल्कुल नहीं देखता है; वास्तविक प्रदर्शन यहीं मापा जाता है.
- सत्यापन सेट: मॉडल सेटिंग के लिए उपयोग किया जाने वाला इंटरमीडिएट सेट (कौन सा पैरामीटर बेहतर है); परीक्षण सेट को "साफ" रखने के लिए।
सबसे बुनियादी नियम: प्रशिक्षण के दौरान परीक्षण सेट को कभी नहीं छुआ जाता है। स्केलिंग, कोडिंग, फीचर चयन - सभी को बस प्रशिक्षण सेट से सीखा जाता है, फिर परीक्षण पर लागू किया जाता है (यूनिट 5 से रिसाव सिद्धांत)। परीक्षण सेट पहली बार होता है जब मॉडल वास्तविक दुनिया को देखता है; यदि आप इसे बहुत जल्दी चालू करते हैं तो आपको कभी भी वास्तविक प्रदर्शन का पता नहीं चलेगा।
समय श्रृंखला अपवाद: यदि आपका डेटा समय पर निर्भर है (बिक्री, शेयर बाजार, मांग), तो यादृच्छिक विभाजन नहीं किया जाता है। क्योंकि यादृच्छिक विभाजन मॉडल को भविष्य देखने और अतीत की भविष्यवाणी करने का कारण बनता है - यह रिसाव है। इसके बजाय, कालानुक्रमिक रूप से विभाजित करें: पुरानी अवधि के साथ प्रशिक्षण लें, नई अवधि के साथ परीक्षण करें।
एल्गोरिदम चयन: सरल से जटिल तक
शुरुआती लोगों की सबसे आम गलती सबसे जटिल मॉडल से शुरुआत करना है। सही दृष्टिकोण इसके विपरीत है: पहले एक सरल आधार रेखा स्थापित करें। वर्गीकरण में "हमेशा बहुसंख्यक वर्ग का अनुमान लगाएं"; प्रतिगमन में "हमेशा माध्य का अनुमान लगाएं"। यह बेवकूफी भरा मॉडल एक आधार रेखा देता है; यदि आपका वास्तविक मॉडल इसे पास नहीं कर पाता है, तो एक समस्या है। फिर सरल और व्याख्या योग्य मॉडलों की ओर बढ़ें।
मॉडल
समस्या का प्रकार
मजबूत बिंदु
कमजोरी
बेसलाइन (बहुमत/औसत)
दोनों
बेंचमार्क देता है
नहीं सीखता
लॉजिस्टिक रिग्रेशन
वर्गीकरण
सरल, व्याख्या योग्य
केवल रैखिक संबंध
रेखीय प्रतिगमन
प्रतिगमन
सरल, तेज
रैखिक धारणा
निर्णय वृक्ष
दोनों
व्याख्यायोग्य
आसान यादें
बेतरतीब जंगल
दोनों
मजबूत, टिकाऊ
कम व्याख्यायोग्य
ग्रेडिएंट बूस्टिंग (XGBoost आदि)
दोनों
बहुत मजबूत
समायोजित करना कठिन, याद रखने का जोखिम
नियम: सबसे सरल "काफ़ी अच्छा" मॉडल चुनें। अधिकांश व्यावसायिक संदर्भों में व्याख्या क्षमता शक्ति से अधिक मूल्यवान है; ऋण अस्वीकृति की व्याख्या करना बेहतर है "क्योंकि आपका ऋण-से-आय अनुपात अधिक है" बजाय "क्योंकि ब्लैक बॉक्स ने ऐसा कहा था।"
तीन मिनी मामले
केस 1 - गलत समस्या परिभाषा। एक टीम ने "क्या ग्राहक संतुष्ट है" के आधार पर एक वर्गीकरण मॉडल बनाया लेकिन सफलता की कसौटी के रूप में "सटीकता" को चुना। डेटा में, 88% ग्राहक संतुष्ट थे; मॉडल ने सभी को "संतुष्ट" कहकर 88% सटीकता प्राप्त की और असंतुष्ट लोगों को कभी नहीं पकड़ा - भले ही वास्तविक लक्ष्य उन्हें ढूंढना था। पाठ: वास्तविक उद्देश्य के आधार पर सफलता मानदंड चुनें।
केस 2 - डिब्बे में समय रिसाव। मांग पूर्वानुमान परियोजना में, डेटा को यादृच्छिक रूप से विभाजित किया गया था। मॉडल ने 93% सटीकता दी लेकिन उत्पादन में विफल रहा क्योंकि प्रशिक्षण में इसने जनवरी, फिर नवंबर, दिसंबर के आंकड़ों के साथ भविष्यवाणी की थी - इसने भविष्य देखा था। जब हमने कालानुक्रमिक विभाजन पर स्विच किया, तो वास्तविक प्रदर्शन बढ़कर 74% हो गया। पाठ: समय श्रृंखला में कालानुक्रमिक विभाजन।
केस 3 - अनावश्यक जटिलता। एक विश्लेषक ने सीधे एक गहरे तंत्रिका नेटवर्क के साथ शुरुआत की, इसे हफ्तों तक ट्यून किया और 81% सटीकता प्राप्त की। फिर एक सहकर्मी को लॉजिस्टिक रिग्रेशन की 20 लाइनों के साथ 80% मिले - बहुत तेज़, व्याख्यात्मक और बनाए रखने में आसान। पाठ: एक आधार रेखा और एक सरल मॉडल से शुरू करें, जब यह इसके लायक हो तो जटिलता जोड़ें।
चार प्रतिलिपि योग्य टेम्पलेट
1) समस्या की परिभाषा स्पष्ट करना:
आपकी भूमिका: मॉडलिंग सलाहकार। इस कार्य को परिभाषित करने में मेरी सहायता करें: "मैं ग्राहक मंथन को कम करना चाहता हूँ।" मुझसे पूछें और स्पष्ट करें: (1) क्या यह वर्गीकरण या प्रतिगमन है, (2) वास्तव में लक्ष्य चर क्या है और इसे कैसे परिभाषित किया जाना चाहिए, (3) सफलता मानदंड क्या होना चाहिए और क्यों। निर्णय मेरा है; आप प्रश्न और विकल्प प्रस्तुत करें.
2) सुरक्षित प्रशिक्षण/परीक्षण कक्ष:
मेरे डीएफ को प्रशिक्षण/परीक्षण में 80%/20% में विभाजित करें। वर्ग वितरण (स्तरीकरण) बनाए रखें.random_state=42. यह कोई समय श्रृंखला (स्वतंत्र अवलोकन) नहीं है। विभाजन के बाद प्रत्येक सेट का वर्ग अनुपात प्रिंट करें। बिना कोई परिवर्तन लागू किए बस परीक्षण सेट को विभाजन कोड दें।
3) समय श्रृंखला कालानुक्रमिक विभाजन:
डेटा समय पर निर्भर है (दिनांक कॉलम: order_date)। यादृच्छिक नहीं, कालानुक्रमिक रूप से विभाजित करें: सबसे पुराना 80% प्रशिक्षण, नवीनतम 20% परीक्षण। प्रशिक्षण और परीक्षण तिथि सीमा का प्रिंट आउट लें ताकि मैं सत्यापित कर सकूं कि भविष्य लीक नहीं हुआ है।
4) आधार रेखा निर्धारित करना:
मुझे एक वर्गीकरण समस्या है (लक्ष्य: मंथन 0/1)। सबसे पहले एक आधार रेखा स्थापित करें: डमीक्लासिफ़ायर के साथ प्रशिक्षण/परीक्षण सटीकता को मापें, जो हमेशा बहुसंख्यक वर्ग की भविष्यवाणी करता है। फिर एक सरल लॉजिस्टिक रिग्रेशन को प्रशिक्षित करें और तुलना करें कि क्या यह बेसलाइन को मात देता है। दोनों की मेट्रिक्स को साथ-साथ दिखाएँ।
कमजोर संकेत/मजबूत संकेत
कमजोर संकेत:
इस डेटा के साथ सर्वोत्तम मॉडल बनाएं।
"सर्वश्रेष्ठ" अपरिभाषित है; यहां कोई समस्या प्रकार नहीं है, कोई लक्ष्य नहीं है, कोई सफलता मानदंड नहीं है और कोई विभाजन रणनीति नहीं है। एआई एक यादृच्छिक पैटर्न उत्पन्न करता है, संभवतः लीक से हटकर।
शक्तिशाली संकेत:
आपकी भूमिका: मॉडलिंग सहायक। समस्या: वर्गीकरण, लक्ष्य "मंथन" (0/1), वर्ग असंतुलन है (~12% मंथन)। सफलता की कसौटी : मंथन करने वालों को याद करना प्राथमिकता है। डेटा स्वतंत्र अवलोकन (समय श्रृंखला नहीं)। कार्य: (1) 80/20% स्तरीकृत विभाजन, (2) डमीक्लासिफायर बेसलाइन, (3) लॉजिस्टिक रिग्रेशन, पाइपलाइन में सभी परिवर्तन और केवल प्रशिक्षण से सीखा गया। बंटवारे से पहले परीक्षण सेट को न छुएं।
यहां समस्या का प्रकार, असंतुलन, मानदंड और रिसाव का माप स्पष्ट है।
सामान्य गलतियाँ
- वास्तविक उद्देश्य के अनुरूप सफलता के मापदण्ड का चयन न करना। असंतुलित डेटा में "सटीकता" भ्रामक है; यदि आप अल्पसंख्यक वर्ग पर कब्ज़ा करना चाहते हैं तो रिकॉल सामने आता है।
- प्रशिक्षण के दौरान परीक्षण सेट को छूना। विभाजन से पहले स्केलिंग/एन्कोडिंग करना लीक से हटकर है और वास्तविक प्रदर्शन को छिपा देता है।
- समय श्रृंखला में यादृच्छिक विभाजन. मॉडल भविष्य देखता है, उत्पादन में गिरावट आती है; कालानुक्रमिक विभाजन आवश्यक है.
- आधार रेखा स्थापित किए बिना एक जटिल मॉडल में कूदना। बेंचमार्क के बिना आप यह नहीं जान सकते कि कोई मॉडल वास्तव में अच्छा है या नहीं।
- व्याख्यात्मकता को नजरअंदाज करना। व्यावसायिक निर्णयों में, एक सरल समझाने योग्य मॉडल अक्सर ब्लैक बॉक्स की तुलना में अधिक मूल्यवान होता है।
टिप: इससे पहले कि आप एक मॉडल बनाना शुरू करें, एक वाक्य लिखें: "यह मॉडल _____ की भविष्यवाणी करेगा, इसकी सफलता मीट्रिक _____ द्वारा मापी जाएगी, क्योंकि कार्य की वास्तविक लागत _____ है।" यदि आप इस वाक्य को नहीं भर सकते हैं, तो आप अभी तक कोड लिखने के लिए तैयार नहीं हैं।
संक्षेप में
किसी मॉडल के निर्माण का सबसे महत्वपूर्ण हिस्सा कोड नहीं है, बल्कि उससे पहले के निर्णय हैं: सही समस्या को परिभाषित करना (वर्गीकरण या प्रतिगमन, लक्ष्य क्या है, सफलता की कसौटी क्या है) और डेटा को निष्पक्ष रूप से विभाजित करना (परीक्षण सेट को छुए बिना; समय श्रृंखला में कालानुक्रमिक)। हमेशा एक सरल आधार रेखा से शुरुआत करें और जटिलता तभी जोड़ें जब वह इसके योग्य हो; अधिकांश व्यावसायिक संदर्भों में व्याख्यात्मकता को शक्ति से अधिक महत्व दिया जाता है। एल्गोरिदम चयन और कोड में एआई एक शक्तिशाली सलाहकार है, लेकिन मानव यह तय करता है कि आप क्या भविष्यवाणी करते हैं और क्यों।
आवेदन कार्य
एक भविष्यवाणी समस्या को परिभाषित करें और निम्नलिखित वाक्य को लिखित रूप में पूरा करें: "यह मॉडल ___ (वर्गीकरण/प्रतिगमन) की भविष्यवाणी करेगा, लक्ष्य ___ है, सफलता मानदंड ___ है क्योंकि ___।" फिर डेटा को सही रणनीति के साथ विभाजित करें (यदि यह एक समय श्रृंखला है तो कालानुक्रमिक), एक आधार रेखा स्थापित करें, और मापें कि क्या एक साधारण पैटर्न उस आधार रेखा को तोड़ता है।
चेकलिस्ट
- [ ] क्या मैंने समस्या के प्रकार (वर्गीकरण/प्रतिगमन) और लक्ष्य को स्पष्ट रूप से परिभाषित किया है?
- [ ] क्या मैंने कार्य की वास्तविक लागत के आधार पर सफलता मानदंड चुना है?
- [ ] क्या मैंने प्रशिक्षण के दौरान परीक्षण सेट को अछूता छोड़ दिया?
- [ ] यदि यह एक समय श्रृंखला है, तो क्या मैंने इसे कालानुक्रमिक रूप से विभाजित किया है?
- [ ] क्या मैंने जटिल मॉडल पर आगे बढ़ने से पहले एक आधार रेखा स्थापित की है?