एकाइहरू
1. डाटा विज्ञान र विश्लेषणमा कृत्रिम बुद्धिमत्ताको परिचय: कार्यप्रवाह, भूमिका, सीमा, प्रमाणीकरण र नैतिकता 2. डाटा सङ्कलन र स्रोत बुझाइ: योजना, नमूना, गुणस्तर र चुहावट जागरूकता 3. डाटा क्लिनिङ र प्रिप्रोसेसिङ: छुटेको मान, आउटलियर र प्रकार रूपान्तरण 4. अन्वेषण डेटा विश्लेषण (EDA): वितरण, सम्बन्ध, र प्रारम्भिक अन्तर्दृष्टि 5. सुविधा ईन्जिनियरिङ्: भेरिएन्टहरू उत्पन्न गर्दै, कोडिङ, स्केलिङ, र चुहावट बेवास्ता गर्दै 6. मोडेल निर्माण: समस्या परिभाषा, एल्गोरिथ्म चयन, र प्रशिक्षण/परीक्षण विभाजन 7. मोडेल मूल्याङ्कन: मेट्रिक्स, क्रस-प्रमाणीकरण, र चरम शिक्षा 8. भिजुअलाइजेशन र स्टोरीटेलिङ: सटीक ग्राफिक्स, इमानदार ग्राफिक्स 9. कोड जेनेरेसन: पाइथन (पान्डा) र SQL को साथ एआई-सहायता विश्लेषण 10. डाटा चुहावट र पुन: उत्पादनशीलता: मौन आपदा र अनुशासन 11. MLOps फाउन्डेशन, नैतिकता, गोपनीयता र जिम्मेवार विश्लेषण
एकाइ 10 / 11

डाटा चुहावट र पुन: उत्पादनशीलता: मौन आपदा र अनुशासन

लाभ:

  • डेटा चुहावटका प्रकारहरू पहिचान गर्ने क्षमता (लक्ष्य, समय, प्रिप्रोसेसिङ, समूहबद्ध पङ्क्ति) र अलार्मको रूपमा 'साँचो हुन धेरै राम्रो' स्कोर सोध्ने क्षमता।
  • परीक्षण सेट, पाइपलाइन र सही विभाजनको प्रारम्भिक विभाजनको साथ चुहावट रोक्न क्षमता (कालानुक्रमिक / समूहबद्ध)
  • निश्चित बीज, संस्करण नियन्त्रण र म्यानुअल चरणहरू हटाउने विश्लेषणलाई पुन: उत्पादन गर्न सक्ने क्षमता

त्यहाँ दुईवटा गल्तीहरू छन् जसले डेटा विज्ञानमा सबैभन्दा बढी प्रयास बर्बाद गर्दछ, र तिनीहरू दुवै कपटी हुन् किनभने तिनीहरूले विपत्ति निम्त्याउँछ जब "सबै कुरा ठीक देखिन्छ।" पहिलो डाटा चुहावट हो: मोडेलले परीक्षण सेटमा राम्रो काम गर्दछ तर उत्पादनमा क्र्यास हुन्छ। दोस्रो अपरिवर्तनीयता हो: तपाईंले छ महिना पछि विश्लेषण चलाउनुहुन्छ र पूर्ण रूपमा फरक परिणाम प्राप्त गर्नुहुन्छ। यो एकाइ गहिराइमा यी दुई खाटहरू जान्न र बेवास्ता गर्न समर्पित छ। AI ले दुवै जोखिमहरू बढाउन सक्छ (छिटो उत्पन्न गर्छ, लुकेको चुहावटको सुझाव दिन्छ, तपाईंलाई म्यानुअल कदमहरू चाल्न सजिलो बनाउँछ) तर सही तरिकाले प्रयोग गरेमा तिनीहरूलाई कम गर्न पनि सक्छ। फरक अनुशासनमा छ।

डाटा लीक: clairvoyant मोडेल

डाटा चुहावट तब हुन्छ जब मोडेलले प्रशिक्षणको क्रममा जानकारी देख्छ जुन वास्तविक भविष्यवाणीको समयमा हुने छैन। यस जानकारीको साथ मोडेल "धोखा", परीक्षण सेटमा राम्रो देखिन्छ, तर त्यो जानकारी बिना उत्पादनमा क्र्यास हुन्छ। चुहावट को लक्षण लगभग सधैं समान छ: सत्य हुन धेरै राम्रो। तपाईंले 99% शुद्धता देख्दा रमाईलो गर्नु अघि, तपाईंले लीकहरू खोज्नुपर्छ।

चुहावटका मुख्य प्रकारहरू हुन्:

1. लक्ष्य चुहावट: विशेषता भनेको लक्ष्यको परिणाम हो। "रद्द गरिएको" पूर्वानुमानमा, "रद्द मिति" वा "फिरता रकम" स्तम्भहरू लक्ष्यको परिणाम हुन्; नतिजा स्पष्ट भएपछि मात्र भरिनेछ।

2. समय चुहावट: विगतमा भविष्यको जानकारी ल्याउँदै। "पछिल्लो 30 दिनको औसत" गणना गर्दा, पूर्वानुमान दिन पछिका दिनहरू समावेश गर्नुहोस्, वा समय श्रृंखला अनियमित रूपमा विभाजित गर्नुहोस्।

3. पूर्व-प्रशोधन चुहावट: प्रशिक्षण/परीक्षण विभाजन अघि सबै डेटाबाट स्केलिंग, भरण, कोडिङ जस्ता परिवर्तनहरू सिक्ने। परीक्षण डेटाको औसतले ​​प्रशिक्षणमा हस्तक्षेप गर्दछ।

4. डुप्लिकेट/समूह गरिएको पङ्क्ति चुहावट: एउटै व्यक्तिसँग सम्बन्धित पङ्क्तिहरू प्रशिक्षण र परीक्षण दुवैमा उपस्थित हुन्छन् (भिन्न सेटहरूमा एउटै बिरामीको दुई भ्रमणहरू)। मोडेलले व्यक्तिलाई सम्झन्छ।

लीक प्रकार

कसरी जन्मिन्छ

कसरी रोकथाम गर्ने

लक्ष्य चुहावट

स्तम्भ जुन लक्ष्यको परिणाम हो

"के मसँग यो भविष्यवाणीको समयमा छ" परीक्षण

समय चुहावट

विगतमा भविष्य ल्याउने

कालानुक्रमिक विभाजन, सञ्झ्याल नियन्त्रण

पूर्व प्रशोधन चुहावट

पूर्व-विभाजित रूपान्तरण

पाइपलाइन, प्रशिक्षणबाट मात्र फिट

समूहबद्ध पङ्क्ति चुहावट

दुई सेटमा एउटै एकाइ

समूह द्वारा विभाजित (GroupKFold)

चुहावट रोक्नको लागि मात्र अनुशासन

सबै प्रकारका चुहावटहरूको लागि साझा समाधान एउटा वाक्यमा उबलिन्छ: वास्तविक भविष्यको नक्कल गर्न परीक्षण सेटलाई सकेसम्म चाँडो अलग गर्नुहोस्, र यसलाई केही पनि "सिकाउन" नगर्नुहोस्। अभ्यासमा, यसको अर्थ: पहिले विभाजन गर्नुहोस्, त्यसपछि प्रशिक्षणबाट मात्र सबै परिवर्तनहरू सिक्नुहोस् र तिनीहरूलाई पाइपलाइनमा लागू गर्नुहोस् (एउटा संरचना जसले सबै चरणहरू एउटै चेनमा सङ्कलन गर्दछ)। प्रत्येक सुविधाको लागि, प्रश्न सोध्नुहोस् "के मसँग भविष्यवाणीको समयमा यो जानकारी छ?" यदि त्यहाँ समय छ भने, यसलाई कालक्रम अनुसार विभाजित गर्नुहोस्; यदि एउटै एकाइ दोहोर्याइएको छ भने, समूह द्वारा विभाजित गर्नुहोस्।

सावधानी: चुहावटको सबैभन्दा खतरनाक पक्ष यो हो कि यसले आफैलाई सफलताको रूपमा प्रस्तुत गर्दछ। खराब मोडेलले स्पष्ट रूपमा खराब परिणामहरू उत्पादन गर्नेछ र ध्यान दिइनेछ; एउटा लीक गरिएको मोडेलले राम्रो काम गर्छ, सबैलाई खुसी बनाउँछ, र उत्पादनमा राखिन्छ — त्यहीँबाट पतन सुरु हुन्छ। यसैले "धेरै राम्रो" परिणाम अलार्मको कारण हो, उत्सव होइन।

पुन: उत्पादनशीलता: एउटै परिणाम दुई पटक प्राप्त गर्दै

पुन: उत्पादनशीलता भनेको तपाईंले अर्को पटक, अर्को मेसिनमा विश्लेषण गर्दा उही परिणाम प्राप्त गर्ने क्षमता हो। यो बिना, तपाइँको विश्लेषण प्रासंगिक छ, वैज्ञानिक छैन। प्रजनन क्षमतालाई कमजोर पार्ने मुख्य कारण र समाधानहरू:

म्यानुअल चरणहरू: म्यानुअल रूपमा एक्सेलमा सेल परिवर्तन गर्दै, म्यानुअल रूपमा चार्ट सम्पादन गर्दै। समाधान: कोडमा प्रत्येक चरण राख्नुहोस्।

अनफिक्स्ड यादृच्छिकता: मोडेल प्रशिक्षण, नमूना, विभाजन अनियमितता समावेश गर्दछ। समाधान: अनियमित बीज फिक्स गर्नुहोस् (यादृच्छिक जनरेटरको प्रारम्भिक मान) (random_state=42)।

संस्करण परिवर्तनहरू: पुस्तकालय संस्करण परिवर्तन हुँदा परिणाम परिवर्तन हुन सक्छ। समाधान: निर्भरताहरू ठीक गर्नुहोस् (requirements.txt, वातावरण फाइल)।

कुनै रेकर्ड राख्ने छैन: कुन डाटा, कुन कोड, कुन प्यारामिटर प्रयोग गरियो भन्ने स्पष्ट छैन। समाधान: संस्करण नियन्त्रण (Git - कोडको सबै संस्करणहरू बचत गर्ने प्रणाली) र डाटा संस्करण।

"यसले मेरो मेसिनमा मात्र काम गर्दछ": समाधान: वातावरण कागजात गर्नुहोस्, सम्भव भएमा कन्टेनरहरू (डकर) प्रयोग गर्नुहोस्।

तीन मिनी केसहरू

केस 1 - लक्ष्य चुहावट। एक स्वास्थ्य विश्लेषणले "बिरामीलाई पुन: भर्ना गरिने छ कि छैन" भनेर भविष्यवाणी गर्ने "पोस्ट-डिस्चार्ज औषधि" स्तम्भ चित्रित गरेको छ। बिरामी डिस्चार्ज भएपछि मात्र यो स्तम्भ भरिएको थियो। मोडेलले 96% दियो, उत्पादनमा 61%। 8 हप्ताको परियोजना फोहोर थियो। पाठ: प्रत्येक सुविधालाई सोध्नुहोस् "के यो भविष्यवाणीको समयमा उपस्थित छ?"

केस २ - प्रिप्रोसेसिङ लीक। एउटा टोलीले सबै डाटा मापन गर्यो र त्यसपछि यसलाई विभाजित गर्यो। परीक्षण डाटाको मतलब स्केलिंगमा संलग्न थियो। CV स्कोर 89%, वास्तविक उत्पादन 76%। नक्कली सफलता गायब भयो जब म पाइपलाइनमा सरेँ र प्रशिक्षणबाट मात्र परिवर्तनहरू बारे सिके। पाठ: पहिले विभाजन, पछि रूपान्तरण।

केस 3 - पुन: उत्पादन गर्न असफल। एक विश्लेषकले तीन महिना पछि व्यवस्थापनलाई प्रस्तुत गरेको चार्ट अद्यावधिक गर्न चाहन्थे तर उसले यसलाई कसरी उत्पादन गर्यो याद गर्न सकेन। धेरै चरणहरू म्यानुअल रूपमा Excel मा गरियो। परिणाम सफल भएन र विश्वास डगमगाएको थियो। पाठ: कुनै म्यानुअल चरणहरू छैनन्, सबै कुरा कोड र Git मा छ।

चार प्रतिलिपि गर्न मिल्ने टेम्प्लेटहरू

1) चुहावट निरीक्षण:

तपाईंको भूमिका: लीक निरीक्षक। लक्ष्य: "मंथन" (०/१), पूर्वानुमान सन्दर्भ मिति: रेकर्ड_मिति। म तपाईंलाई सुविधाहरूको यो सूची दिनेछु। प्रत्येक सुविधाको लागि: (क) के यो लक्ष्यको परिणाम हो, (ख) के यो मेरो लागि भविष्यवाणीको समयमा उपलब्ध छ, (ग) के समय विन्डोले भविष्य समावेश गर्दछ? यसलाई "असुरक्षित/संदिग्ध/लीक" भनी चिन्ह लगाउनुहोस् र कारण लेख्नुहोस्। विशेषताहरु: [सूची]

२) चुहावट रहित पाइपलाइन:

sklearn पाइपलाइन सेट अप गर्नुहोस्: पहिलो विभाजित ट्रेन/परीक्षण (स्तरीकृत, बीज = 42), त्यसपछि सबै प्रिप्रोसेसिङ (इम्प्युट, स्केल, इन्कोड) लाई प्रशिक्षणबाट मात्र पाइपलाइनमा फिट गर्नुहोस्। कोड किन चुहावट-मुक्त छ भनेर व्याख्या गर्नुहोस्, कुन चरण कहाँ सिकियो।

3) प्रजनन योग्यता चेकलिस्ट कोड:

म मेरो विश्लेषण पुन: उत्पादन गर्न चाहन्छु। थप्ने कोड/संरचना सुझाव दिनुहोस्: (१) सबै अनियमितताका लागि कडा बीज, (२) प्रिन्टिङ लाइब्रेरी संस्करणहरू प्रयोग गरियो, (३) डाटा र आउटपुटका लागि मिति/संस्करण ट्याग। त्यहाँ कुनै म्यानुअल चरणहरू छैनन् भनी सुनिश्चित गर्न मलाई एउटा चेकलिस्ट पनि दिनुहोस्।

४) समूहबद्ध विभाजन (एउटै इकाई चुहावट):

डाटामा एउटै customer_id धेरै पङ्क्तिहरूमा अवस्थित छ। एक विभाजन गर्नुहोस् (GroupKFold orGroupShuffleSplit, group = customer_id) जसले एउटै ग्राहकलाई प्रशिक्षण र परीक्षण दुवैमा हुनबाट रोक्छ। विभाजन पछि कुनै पनि ग्राहकहरू दुवै सेटहरूमा छैनन् भनेर प्रमाणित गर्न कोड समावेश गर्नुहोस्।

कमजोर प्रम्प्ट / बलियो प्रम्प्ट

कमजोर प्रम्प्ट:

मेरो मोडेलले 98% शुद्धता फिर्ता गर्यो, त्यो राम्रो छैन? कोड अप्टिमाइज गर्नुहोस्।

98% मनाउनुले चुहावट लुकाउँछ। अप्टिमाइज गर्नु अघि, यो स्कोर वास्तविक हो वा होइन भनेर प्रश्न गर्नुपर्छ।

शक्तिशाली प्रम्प्ट:

तपाईंको भूमिका: लीक निरीक्षक। मेरो मोडेलले परीक्षण सेटमा 98% शुद्धता फर्काउँछ, जुन मलाई "सत्य हुन धेरै राम्रो" लाग्छ। जाँच गर्नुहोस्: (1) कुनै पनि सुविधाहरू लक्ष्यको परिणाम हो, (2) विभाजन गर्नु अघि गरिएका रूपान्तरणहरू हुन्, (3) दुई सेटहरूमा एउटै एकाइहरू हुन्, (4) कुनै पनि समय चुहावट छन्। कुनै पनि संदिग्ध बिन्दुहरू सूचीबद्ध गर्नुहोस्; चुहावट पत्ता लगाउन फोकस गर्नुहोस्, स्कोर फिक्सिङ होइन।

यहाँ, उच्च स्कोरलाई प्रश्नको संकेतको रूपमा व्यवहार गरिएको छ, मनाउनको लागि होइन।

सामान्य गल्तीहरू

  • "धेरै राम्रो" परिणाम मनाउँदै। एक धेरै-राम्रो-गर्न-सत्य स्कोर एक चुहावट चेतावनी हो, उपलब्धि होइन।
  • विभाजन अघि सबै डेटाबाट रूपान्तरण सिक्दै। सबैभन्दा सामान्य चुहावट; पाइपलाइनको साथ पहिले विभाजन गर्नुहोस्।
  • समय श्रृंखला अनियमित रूपमा विभाजित गर्दै। मोडेलले भविष्य देख्छ; कालक्रमिक विभाजन अनिवार्य छ।
  • एउटै इकाईलाई दुई सेटमा छोड्दै। मोडेलले व्यक्तिलाई सम्झन्छ; समूहद्वारा विभाजन गर्नुहोस्।
  • म्यानुअल रूपमा स्टेपिङ गर्दैन र कोडमा लेख्दै। विश्लेषण अपरिवर्तनीय हुन्छ; सबै कुरा कोड र Git मा हुनुपर्छ।
सुझाव: तपाईंको परियोजनाको सुरुमा दुई-वाक्य "सम्मानको प्रतिज्ञा" लेख्नुहोस्: "मैले उत्पादनमा देख्नु अघि परीक्षण सेटलाई कुनै पनि तरिकाले छोइन। प्रत्येक चरण कोडमा छ र बीउ निश्चित छ।" यदि तपाइँ यी दुई वाक्यहरूमा इमानदारीपूर्वक हस्ताक्षर गर्न सक्नुहुन्न भने, तपाइँको नतिजा अझै विश्वसनीय छैन।

संक्षेपमा

डाटा चुहावट र गैर-पुनरुत्पादकता डाटा विज्ञानमा दुई सबैभन्दा महँगो मौन त्रुटिहरू हुन्। चुहावट भविष्यको मोडेलको दृष्टि हो र आफैलाई गलत सफलताको रूपमा प्रस्तुत गर्दछ; समाधान भनेको परीक्षण सेटलाई प्रारम्भिक विभाजन गर्नु हो, प्रशिक्षण (पाइपलाइन) बाट मात्र रूपान्तरणहरू सिक्नुहोस्, प्रत्येक सुविधालाई प्रश्न सोध्नुहोस् "के यो भविष्यवाणीको समयमा मसँग छ" र सही विभाजन गर्नुहोस् (कालक्रमिक/समूह गरिएको)। पुन: उत्पादनशीलता एउटै परिणाम दुई पटक प्राप्त गर्न सक्षम छ; उसको समाधान म्यानुअल रूपमा चरणहरू हटाउन, बीउ पिन गर्ने, संस्करणहरू फ्रिज गर्ने, र Git मा सबै कुरा राख्नु हो। AI ले यी जोखिमहरू बढाउन वा घटाउन सक्छ; यो तपाइँको अनुशासन हो जसले निर्धारण गर्दछ।

आवेदन कार्य

तपाईंले निर्माण गर्नुभएको मोडेलको सुविधा सूची लिनुहोस् (वा एक काल्पनिक) र प्रत्येक सुविधालाई प्रश्न सोध्नुहोस् "के मसँग भविष्यवाणीको समयमा यो जानकारी छ?" लिखित रूपमा; कम्तिमा एक लीक उम्मेद्वार फेला पार्नुहोस्। त्यसपछि तपाइँको विश्लेषण पुन: उत्पादन योग्य बनाउनको लागि एउटा चेकलिस्ट भर्नुहोस्: के बीज निश्चित छ, त्यहाँ म्यानुअल चरणहरू छन्, के संस्करणहरू दर्ता छन्, के तिनीहरू Git मा छन्। कमजोरीहरू सच्याउनुहोस्।

चेकलिस्ट

  • [ ] के मैले चुहावट अलर्टको रूपमा "साँचो हुन धेरै राम्रो" स्कोर सोधेँ?
  • [ ] के मैले प्रशिक्षणबाट मात्र विभाजन पछि सबै परिवर्तनहरू सिकें?
  • के मैले समय/समूह संरचना (कालक्रम/समूह केफोल्ड) अनुसार विभाजन गरेको छु?
  • [ ] के मैले सबै अनियमिततालाई स्थिर बीजको साथ दोहोर्याउन योग्य बनाएको छु?
  • [ ] के मैले म्यानुअल चरणहरू हटाएँ र सबै कुरा कोड र संस्करण नियन्त्रणमा राखें?