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