लाभ:
- लापता मूल्यों (यादृच्छिक, व्यवस्थित, सार्थक) के कारण को अलग करने और उचित रणनीति चुनने और अकेले प्रशिक्षण से भरण मूल्य की गणना करने की क्षमता
- आउटलेर्स को हटाने से पहले उनकी जांच करने और डेटा त्रुटि और सच्ची दुर्लभ घटना के बीच अंतर करने की क्षमता
- मानक में प्रकार और प्रारूप विसंगतियों को लाते समय पंक्तियों/रिक्त स्थानों की संख्या पर प्रत्येक चरण के प्रभाव की निगरानी करके मौन हानि को रोकने की क्षमता
एक डेटा वैज्ञानिक का लगभग 60-80 प्रतिशत समय सफ़ाई में चला जाता है; उद्योग जगत में, इसे आधे-मजाक में "डेटा रैंगलिंग" (डेटा रैंगलिंग या डेटा क्लीनिंग) कहा जाता है। क्योंकि वास्तविक दुनिया का डेटा लगभग कभी भी विश्लेषण के लिए तैयार नहीं होता है: तिथियां मिश्रित स्वरूपों में होती हैं, संख्याएं पाठ के रूप में संग्रहीत होती हैं, कुछ कोशिकाएं खाली होती हैं, एक ग्राहक दो अलग-अलग वर्तनी के साथ एक ही तालिका में तीन बार दिखाई देता है। इस इकाई में हम सफ़ाई के तीन बुनियादी पहलुओं को कवर करेंगे: लुप्त मान, आउटलेयर, और प्रकार/प्रारूप रूपांतरण। इस कार्य में कृत्रिम बुद्धिमत्ता असाधारण रूप से तेज़ सहायक है; लेकिन यह आप ही तय करते हैं कि क्या और कैसे साफ करना है, क्योंकि सफाई का प्रत्येक विकल्प विश्लेषण को बदल देता है।
सफ़ाई का स्वर्णिम नियम: प्रत्येक परिवर्तन एक निर्णय है
किसी सेल को हटाना, किसी लुप्त मान को माध्य के साथ भरना, बाहरी हिस्से को कम करना - इनमें से कोई भी "तटस्थ" ऑपरेशन नहीं है। प्रत्येक डेटा बदलता है और परिणाम को प्रभावित करता है। तो सफ़ाई का सुनहरा नियम: कोड में प्रत्येक परिवर्तन लिखें, तर्क नोट करें, मूल डेटा को कभी भी अधिलेखित न करें। एआई आपको त्वरित सफाई कोड देता है, लेकिन यह समझना आपकी जिम्मेदारी है कि वह कोड क्या करता है; जब आप "रिक्त पंक्तियाँ हटाएँ" कहते हैं तो यह देखे बिना इसे न चलाएँ कि कितनी पंक्तियाँ ख़त्म हो गई हैं।
सावधानी: मूल कच्चे डेटा को कभी भी संशोधित न करें। साफ़ किए गए संस्करण को एक अलग फ़ाइल/तालिका में लिखें। इस तरह, यदि आपको कोई त्रुटि दिखती है, तो आप वर्ग एक पर वापस जा सकते हैं और प्रतिलिपि प्रस्तुत करने योग्यता बनाए रख सकते हैं।
गुम मूल्य: यह खाली क्यों है, क्या करें
एक गुम मान (आमतौर पर पांडा में NaN - "नॉट ए नंबर" के रूप में दिखाई देता है) तब होता है जब कोई सेल खाली होता है। लेकिन अंतर का कारण समाधान निर्धारित करता है। तीन विशिष्ट स्थितियाँ हैं. अचानक गायब: सेंसर ने एक पल के लिए भी काम नहीं किया; इसे भरना उचित हो सकता है. व्यवस्थित रूप से गायब: फॉर्म फ़ील्ड केवल कुछ ग्राहकों के लिए मांगी जाती है; यहां अंतर वास्तव में जानकारी है। महत्वपूर्ण कमी: यदि "वापसी की तारीख" खाली है, तो ग्राहक वापस नहीं लौटा; इस स्थान का अर्थ 0 या "कोई नहीं" है, यह भरा नहीं गया है।
प्रमुख रणनीतियाँ:
रणनीति
यह कब उचित है?
जोखिम
पंक्ति हटाएँ
गुम होने की दर बहुत कम (<5%) और यादृच्छिक है
डेटा और प्रतिनिधित्व की हानि
एक कॉलम हटाएँ
अधिकांश कॉलम खाली है (>60%)
जानकारी की हानि
औसत/माध्यिका भरण
संख्यात्मक, बेतरतीब ढंग से गायब
यह भिन्नता को कम करता है और वितरण को विकृत करता है
श्रेणी "अज्ञात"
स्पष्ट, व्यवस्थित गायब
अतिरिक्त श्रेणियाँ उत्पन्न करता है
मॉडल के साथ भविष्यवाणी
जटिल, बहुमूल्य स्तंभ
रिसाव जोखिम, जटिलता
महत्वपूर्ण बिंदु: प्रतिरूपण मूल्य की गणना केवल प्रशिक्षण डेटा से की जानी चाहिए और वही मूल्य परीक्षण डेटा पर लागू किया जाना चाहिए। यदि आप परीक्षण डेटा का औसत शामिल करते हैं, तो आप रिसाव (यूनिट 10) बनाते हैं। माध्य (क्रमिक डेटा का मध्य मान) को अक्सर माध्य से अधिक प्राथमिकता दी जाती है क्योंकि यह माध्य की तुलना में आउटलेर्स के लिए अधिक मजबूत होता है।
आउटलेर्स: त्रुटि या वास्तविक?
आउटलायर दो चीजों में से एक हो सकता है: एक डेटा त्रुटि (आयु कॉलम में 999) या एक वास्तविक लेकिन दुर्लभ घटना (एक ग्राहक का $2 मिलियन का ऑर्डर)। दोनों को भ्रमित करना विनाशकारी है: एक वास्तविक बाहरी चीज़ को हटा दें और आप महत्वपूर्ण जानकारी को फेंक दें; यदि आप कोई गलती छोड़ देते हैं, तो आपके औसत पर असर पड़ेगा। इसलिए, पहले बाहरी चीज़ की जांच करना ज़रूरी है, न कि उसे स्वचालित रूप से हटाना।
सामान्य पता लगाने के तरीके: IQR विधि (इंटरक्वेर्टाइल रेंज; मान जो डेटा के 25% और 75% क्विंटल के बीच अंतर 1.5 गुना से अधिक हैं, उन्हें आउटलेयर माना जाता है) और z-स्कोर (माध्य से दूर मानक विचलन की संख्या; आमतौर पर एक आउटलेयर यदि यह 3 से अधिक है)। एआई इन गणनाओं के लिए सेकंडों में कोड लिखता है; लेकिन इससे पहले कि आप "हटाएं" कहें, जांच लें कि वे मान क्या हैं।
प्रकार और प्रारूप रूपांतरण: मूक त्रुटि स्रोत
सबसे अधिक सिरदर्दों में से एक डेटा प्रकार का भ्रम है। यदि कोई "राशि" कॉलम टेक्स्ट के रूप में संग्रहीत है, तो आप जोड़ नहीं सकते; प्रोग्राम गलत तरीके से तुर्की स्वरूपित संख्या जैसे "एक हजार दो सौ पचास" के बजाय "1,250.50" पढ़ता है। दिनांक ("01/03/2024" दिन-माह या माह-दिन?), श्रेणियां ("पुरुष"/"पुरुष"/"एम" एक ही चीज़ हैं?) और इकाइयां (टीएल या कुरुश?) चुपचाप गलत परिणाम देती हैं। सफाई का एक बड़ा हिस्सा इन विसंगतियों को मानक में लाना है: तारीखों को एक प्रारूप में, श्रेणियों को एक वर्तनी में, संख्याओं को एक इकाई में।
तीन मिनी मामले
केस 1 - औसत जाल। एक टीम ने आय कॉलम में औसत ($48,500) के साथ 320 लापता मान भरे। लेकिन कमियाँ व्यवस्थित थीं: ये निम्न-आय वर्ग थे जिन्होंने कभी आय घोषित नहीं की थी। औसत भरने ने इस समूह को कृत्रिम रूप से समृद्ध बना दिया और क्रेडिट मॉडल गलत था। पाठ: इसे भरने से पहले पूछें "यह खाली क्यों है"।
केस 2 - बाहरी चीज़ जिसे हटाया नहीं जाना चाहिए। एक खुदरा विश्लेषक ने बिक्री डेटा में से 4 बड़े ऑर्डर (प्रत्येक 1.8 मिलियन टीएल) को यह सोचकर हटा दिया कि वे "त्रुटियां" थे। हालाँकि, ये वास्तविक कॉर्पोरेट ऑर्डर थे और कुल कारोबार का 22% थे। विलोपन के बाद का पूर्वानुमान मॉडल संस्थागत मांग से पूरी तरह चूक गया। पाठ: इसे हटाने से पहले बाहरी चीज़ की जांच करें।
केस 3 - दिनांक प्रारूप आपदा। CSV में, तारीखों को "2024-03-01" और "01.03.2024" दोनों में मिलाया गया था। जब YZ द्वारा लिखे गए कोड को पहले प्रारूप के अनुसार पार्स किया गया था, तो 6,400 लाइनें NaT "अमान्य तिथि" के रूप में बन गईं और चुपचाप विश्लेषण से बाहर कर दी गईं। विश्लेषक ने इस पर तभी ध्यान दिया जब लाइनों की संख्या कम हो गई। पाठ: रूपांतरण के बाद हमेशा पंक्तियों और रिक्त स्थानों की संख्या जांचें।
चार प्रतिलिपि योग्य टेम्पलेट
1) गुम मूल्य मानचित्र:
मेरे पास पांडा डीएफ हैं। कोड लिखें जो प्रत्येक कॉलम के लिए गायब (NaN) की संख्या और प्रतिशत दिखाने वाली एक तालिका तैयार करता है। फिर, 40% से अधिक गायब दर वाले कॉलम और 5% से कम गायब दर वाले कॉलम को अलग से सूचीबद्ध करें। बस यह निदान कोड तैयार करें, न कि आप कौन सी रणनीति सुझाते हैं; मैं निर्णय लूंगा.
2) बाहरी निरीक्षण (हटाना नहीं):
ऐसा कोड लिखें जो IQR विधि का उपयोग करके मेरे "राशि" कॉलम के आउटलेर्स का पता लगाता है (हटाता नहीं!)। बाहरी पंक्तियों को एक अलग डीएफ में रखें ताकि मैं मैन्युअल रूप से उनकी जांच कर सकूं। आउटलेर्स की संख्या और कुल में उनका हिस्सा भी प्रिंट करें।
3) प्रकार/प्रारूप मानकीकरण:
वह कोड लिखें जो निम्नलिखित कॉलमों को मानकीकृत करता है:- "दिनांक": मिश्रित प्रारूप हो सकते हैं ("2024-03-01" और "01.03.2024"); उन सभी को डेटाटाइम में बदलें, अनुवाद न किए जा सकने वाले को गिनें और रिपोर्ट करें (चुपचाप फेंक दें)। - "लिंग": "पुरुष"/"पुरुष"/"एम" -> "एम", "महिला"/"महिला"/"एफ" -> "के"। - "राशि": तुर्की स्वरूपित पाठ ("1.250,50") -> दशमलव संख्या। प्रिंट करें कि प्रत्येक रूपांतरण के बाद कितनी पंक्तियाँ प्रभावित होती हैं।
4) सफाई से पहले/बाद में जाँच करें:
कोड लिखें जो सफाई चरण से पहले और बाद में चयनित कॉलमों के df.shape, लुप्त गिनती और सारांश आंकड़ों (माध्य, मध्य, न्यूनतम, अधिकतम) की तुलना करता है। उद्देश्य: यह देखना कि सफ़ाई से क्या परिवर्तन होता है।
कमजोर संकेत/मजबूत संकेत
कमजोर संकेत:
यह डेटा साफ़ करें.
"स्पष्ट" अस्पष्ट है; एआई को नहीं पता कि कौन से छूटे हुए हिस्सों को हटाया जाना चाहिए, क्या भरना चाहिए, किस कॉलम को प्रोसेस करना चाहिए और कैसे। परिणाम: अंधा, अपरिवर्तनीय परिवर्तन।
शक्तिशाली संकेत:
आपकी भूमिका: डेटा सफ़ाई सहायक। डीएफ कॉलम: ग्राहक_आईडी (इंट), पंजीकरण_दिनांक (मिश्रित प्रारूप पाठ), राजस्व_टीएल (पाठ, "1,200.00"), शहर (पाठ, असंगत वर्तनी)। नियम:- मूल डीएफ बदलना; df_clean नाम की कॉपी पर काम करें। - इनकम_टीएल को नंबर में बदलें, जो अनुवाद नहीं किया जा सकता उसे गिनें। - रिकॉर्ड_डेट को डेटटाइम में बदलें, त्रुटि की रिपोर्ट करें। - मेरी मंजूरी के बिना किसी भी पंक्ति को न हटाएं; उम्मीदवारों को अलग से दिखाएं. प्रत्येक चरण के बाद, df_temiz.shape और लुप्त संख्या प्रिंट करें।
यहां स्रोत की रक्षा की जाती है, प्रत्येक परिवर्तन को गिना जाता है, हटाना मानव पर छोड़ दिया जाता है।
सामान्य गलतियाँ
- "यह खाली क्यों है?" पूछे बिना रिक्त स्थान भरना। माध्य के साथ व्यवस्थित/महत्वपूर्ण लुप्तता को भरने से डेटा विकृत हो जाता है।
- बाहरी चीज़ को बिना जांचे-परखे हटा देना। वास्तविक लेकिन दुर्लभ घटनाओं को त्यागने से महत्वपूर्ण जानकारी नष्ट हो जाती है।
- सभी डेटा से पैडिंग मान की गणना की जा रही है। परीक्षण डेटा शामिल करने से रिसाव उत्पन्न होता है; बस प्रशिक्षण से गणना करें।
- रूपांतरण के बाद पंक्तियों/रिक्त स्थानों की संख्या की जाँच नहीं करना। जो पंक्तियाँ चुपचाप NaT/NaN हैं उन्हें विश्लेषण से बाहर रखा गया है।
- मूल डेटा को ओवरराइट करना. वापसी और प्रतिलिपि प्रस्तुत करने योग्यता खो जाती है।
युक्ति: "पहले-बाद" तुलना के साथ सफ़ाई चलाएँ। प्रत्येक चरण के बाद df.shape, लुप्त गिनती और महत्वपूर्ण स्तंभों के सारांश आँकड़े प्रिंट करें। तो आप तुरंत देखेंगे कि एक कदम अप्रत्याशित रूप से 6,000 पंक्तियों को नष्ट कर देता है।
संक्षेप में
सफ़ाई डेटा विज्ञान का सबसे अधिक समय लेने वाला और निर्णय लेने वाला चरण है। प्रत्येक परिवर्तन डेटा को बदलता है, इसलिए प्रत्येक परिवर्तन एक सचेत निर्णय होता है। लुप्त मानों के लिए, पूछें "यह खाली क्यों है?" किसी भी आउटलायर को हटाने से पहले उसकी समीक्षा करें; प्रकार और प्रारूप को मानक पर लाएँ। केवल प्रशिक्षण डेटा से भरण मूल्य की गणना करें, मूल रखें और प्रत्येक चरण की गणना करके उसके प्रभाव को ट्रैक करें। एआई इस व्यवसाय में एक जबरदस्त त्वरक है, लेकिन इंसान तय करते हैं कि आप क्या साफ करते हैं और क्यों।
आवेदन कार्य
एक छोटी तालिका लें (या बनाएं) और जानबूझकर उसमें तीन समस्याएं डालें: एक लापता मूल्य टपल, एक बाहरी, एक मिश्रित दिनांक प्रारूप। उपरोक्त टेम्प्लेट के साथ एआई से निदान और मानकीकरण कोड का अनुरोध करें; प्रत्येक चरण से पहले/बाद में पंक्तियों और रिक्त स्थानों की संख्या की तुलना करें। कम से कम एक "मूक हानि" को पकड़ने का प्रयास करें और ध्यान दें कि आपने इसे कैसे देखा।
चेकलिस्ट
- [ ] क्या मैंने मूल कच्चा डेटा रखा और प्रतिलिपि पर काम किया?
- [ ] क्या मैंने प्रत्येक लुप्त कॉलम के लिए "यह खाली क्यों है" प्रश्न पूछा है?
- [ ] क्या मैंने आउटलेर्स को हटाने से पहले उनकी समीक्षा की?
- [ ] क्या मैंने केवल प्रशिक्षण डेटा से पैडिंग मान की गणना की?
- [ ] क्या मैं प्रत्येक चरण के बाद पंक्तियों/रिक्त स्थानों की संख्या की जाँच कर रहा हूँ और साइलेंट लॉस को समाप्त कर रहा हूँ?