डेटासैट सर्वोत्तम प्रथाओं को समझ रहा है


13

मैं डाटा माइनिंग में सीएस मास्टर छात्र हूं। मेरे पर्यवेक्षक ने एक बार मुझसे कहा था कि इससे पहले कि मैं कोई क्लासिफायर चलाऊं या किसी डेटासेट के साथ कुछ भी करूं, मुझे डेटा को पूरी तरह से समझना चाहिए और सुनिश्चित करना चाहिए कि डेटा साफ और सही है।

मेरे सवाल:

  • डेटासेट को समझने के लिए सबसे अच्छे अभ्यास क्या हैं (संख्यात्मक और नाममात्र विशेषताओं के साथ उच्च आयामी)?

  • यह सुनिश्चित करने के लिए कि डेटासेट साफ है?

  • यह सुनिश्चित करने के लिए कि उपयोगकर्ता के पास गलत मूल्य हैं या नहीं?

जवाबों:


8

डेटा के किसी भी सेट के साथ बुनियादी चीजें हैं:

  1. मान्य मान (स्ट्रिंग की लंबाई सहिष्णुता, डेटा प्रकार, स्वरूपण मास्क, आवश्यक फ़ील्ड उपस्थिति, आदि)
  2. सीमा शुद्धता (क्या यह मानों की अपेक्षित सीमाओं के भीतर सही रूप से गिरता हुआ डेटा है)
  3. प्रारंभिक प्रसंस्करण (यदि मैं इस डेटा का विश्लेषण करने का प्रयास करता हूं, तो क्या मैं त्रुटियों के बिना मूल बातें कर सकता हूं)
  4. प्रारंभिक रिपोर्टिंग (एक डेटा सेट के खिलाफ रिपोर्ट चलाएं और सुनिश्चित करें कि यह एक पवित्रता परीक्षा पास करता है)
  5. डेटा के किसी भी कॉलम के लिए शून्य बनाम खाली बनाम शून्य बनाम गलत
  6. ऐसे डेटा की पहचान करना जो जगह से बाहर हैं (संख्यात्मक मान डेटा सेट में अन्य मूल्यों की तुलना में नाटकीय रूप से भिन्न हैं, स्ट्रिंग मान जो देखने में ऐसा लगता है जैसे वे गलत वर्तनी हो सकते हैं, आदि)
  7. स्पष्ट रूप से गलत डेटा को खत्म करना या ठीक करना

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

उदाहरण के लिए, आपके पास एक नियम हो सकता है जो कहता है कि किसी दिए गए डेटा सेट में एक सीरियल नंबर मौजूद होना चाहिए और यह सीरियल नंबर 255 की अधिकतम स्ट्रिंग लंबाई और 5 की न्यूनतम स्ट्रिंग लंबाई के साथ अल्फ़ान्यूमेरिक होना चाहिए।

डेटा को देखते हुए, आप एक विशेष सीरियल नंबर मान पढ़ सकते हैं "PLEASE ENTER SERIAL" यह पूरी तरह से मान्य है, लेकिन गलत है।

यह एक स्पष्ट प्रकार का है, लेकिन कहते हैं कि आप स्टॉक डेटा को संसाधित कर रहे हैं और आपके पास 1000 स्टॉक के लिए मूल्य सीमा थी जो एक डॉलर के तहत थी। बहुत से लोग यह नहीं जानते होंगे कि स्टॉक की कीमत कुछ एक्सचेंजों पर इतनी कम है और दूसरों पर पूरी तरह से वैध है। आपके डेटा को समझने के लिए आपको ज्ञान की आवश्यकता है कि आप जो देख रहे हैं वह समस्याग्रस्त है या नहीं।

वास्तविक दुनिया में, आपके पास हमेशा अपने डेटा को अंतरंग रूप से समझने की लक्जरी नहीं होती है।

जिस तरह से मैं समस्याओं से बचता हूं वह मेरे आसपास के लोगों का लाभ उठाने से है। छोटे डेटा सेटों के लिए, मैं किसी को संपूर्णता में डेटा की समीक्षा करने के लिए कह सकता हूं। बड़े लोगों के लिए, यादृच्छिक नमूनों का एक सेट खींचना और किसी को डेटा पर एक विवेक जांच करने के लिए कहना अधिक उपयुक्त है।

इसके अलावा, डेटा के स्रोत और उस डेटा स्रोत पर कितना अच्छा भरोसा किया जा सकता है, इस पर सवाल उठना लाज़मी है। मेरे पास अक्सर डेटा के कई परस्पर विरोधी स्रोत होते हैं और हम "सत्य के स्रोत" को निर्धारित करने के लिए नियम बनाते हैं। कभी-कभी एक डेटा सेट में किसी दिए गए पहलू में महान डेटा होता है, लेकिन अन्य क्षेत्रों में अन्य डेटा सेट अधिक मजबूत होते हैं।

मैन्युअल रूप से दर्ज किया गया डेटा आमतौर पर वही होता है जिसके बारे में मुझे सबसे अधिक संदेह है, लेकिन कुछ मामलों में यह ऑटोमेशन के माध्यम से हासिल की जाने वाली किसी भी चीज़ से अधिक मजबूत है।


5

मुझे @Kallestad का उत्तर बहुत पसंद है, लेकिन मैं एक मेटा-स्टेप जोड़ना चाहूंगा: सुनिश्चित करें कि आप समझते हैं कि डेटा कहाँ एकत्र किया गया है, और किस प्रकार की बाधाएँ हैं। मुझे लगता है कि यह सोचना बहुत आम है कि जहां डेटा एकत्र किया जाता है, वहां कोई गैर-स्पष्ट कदम नहीं होता है, लेकिन यह मामला नहीं है: ज्यादातर समय, कुछ प्रक्रिया या अविभाज्य ने डेटा के साथ किसी तरह का काम किया, और ये कदम कर सकते हैं और इच्छाशक्ति डेटा के आकार को प्रभावित करते हैं।

दो उदाहरण: मैंने हाल ही में एक अध्ययन किया था जहां डेटा जहां दुनिया भर के विभिन्न चोर ट्रैक्टरों द्वारा एकत्र किया गया था। मैं ब्रीफिंग में नहीं था, इसलिए वह मेरे लिए अपारदर्शी था। दुर्भाग्य से, माप जहां कुछ हिस्सों के लिए बंद है: लोगों को सभी बर्फ रटना पसंद करते थे, लेकिन हमें यादृच्छिक वितरण की उम्मीद थी। इस एकरूपता का कोई स्पष्ट कारण नहीं था, इसलिए मैंने त्रुटियों का शिकार करना शुरू कर दिया। जब मैंने ठेकेदारों को समझा, तो किसी ने ब्रीफिंग को गलत समझा और अपने डेटाबेस से केवल आइसक्रीम प्रेमियों का चयन किया।

दूसरी त्रुटि अधिक चुनौतीपूर्ण थी: कुछ भौगोलिक विश्लेषण करते समय, मैंने पाया कि बहुत सारे लोगों के पास बहुत बड़े आंदोलन पैटर्न थे, जो सुझाव देते थे कि उनमें से बहुतों ने म्यूनिख से हैम्बर्ग तक मिनटों में यात्रा की। जब मैंने लोगों के साथ बात की, तो उन्होंने अपने डेटा एकत्रीकरण सॉफ्टवेयर में एक सूक्ष्म बग पाया, जो पहले किसी का ध्यान नहीं गया था।

निष्कर्ष:

  • यह मत समझो कि आपका डेटा सही प्रक्रियाओं / मनुष्यों द्वारा एकत्र किया गया था।
  • अपने डेटा प्रदाताओं की सीमाओं को समझने की कोशिश करें।
  • व्यक्तिगत पैटर्न / मूल्यों को देखें और यह निर्धारित करने का प्रयास करें कि क्या वे तार्किक हैं (आंदोलन / भौगोलिक डेटा के लिए आसान)

4

मैं आमतौर पर दो-चरणीय दृष्टिकोण रखता हूं

  1. प्रत्येक चर के लिए माध्य, श्रेणी, विचरण, लुप्त, कार्डिनलिटी इत्यादि जैसे सारांश आँकड़ों का अविभाज्य (चर द्वारा चर) गणना करें, और विषमताओं की तलाश करें (उदाहरण के लिए चर का अर्थ दिया गया प्रशंसनीय सीमा नहीं)। उन विषम चर के लिए प्लॉट हिस्टोग्राम।

  2. डेटा को प्रबंधनीय सबसेट में विभाजित करें (एक सार्थक चर चुनें और इसके अनुसार डेटा विभाजित करें। सभी सकारात्मक उदाहरण, और सभी नकारात्मक) और उन्हें नेत्रहीन (जैसे ggobi के साथ ) देखें। विशेष रूप से ब्रश और स्कैटर प्लॉट जैसे टूल का उपयोग यह समझने के लिए करें कि चर एक साथ कैसे जुड़े हुए हैं।

और जब आप मॉडल बनाना शुरू करते हैं, तो अवशिष्टों को प्लॉट करना सुनिश्चित करें, चरम त्रुटियों की तलाश करें जो एक आउटलाइयर के कारण हो सकते हैं, या भ्रम मैट्रिक्स को देखें और सुनिश्चित करें कि यह संतुलित है। अपने मॉडल को ऑप्टिमाइज़ करने के लिए के-फोल्ड क्रॉस वेलिडेशन का उपयोग करें और प्रत्येक फोल्ड के लिए प्रशिक्षण त्रुटि के विचरण को देखें, यदि एक फोल्ड दूसरों की तुलना में बहुत खराब प्रदर्शन करता है, तो इसमें आउटलेयर शामिल हो सकते हैं।


4

नीचे आप संबंधित (हालांकि, डेटा सफाई पहलू पर केंद्रित) डेटा विज्ञान StackExchange ( /datascience//a/722/2452 ) पर मेरे जवाब की एक प्रति पा सकते हैं , इसके लिए संपूर्णता प्रदान की गई है पाठकों की सुविधा। मेरा मानना ​​है कि यह आंशिक रूप से आपके प्रश्न का उत्तर देता है और आशा करता है कि यह मददगार होगा। जबकि उत्तर Rपारिस्थितिकी तंत्र पर केंद्रित है , अन्य डेटा विश्लेषण वातावरणों के लिए समान पैकेज और / या पुस्तकालयों को पाया जा सकता है । इसके अलावा, जबकि डेटा तैयारी पर दो उद्धृत पत्रों में भी आर में उदाहरण हैं, ये पेपर सामान्य वर्कफ़्लो (फ्रेमवर्क) और सर्वोत्तम प्रथाओं को प्रस्तुत करते हैं जो किसी भी पर लागू होते हैं डेटा विश्लेषण वातावरण।

आर कुछ शामिल मानक डेटा हेरफेर के लिए काम करता है, जो डेटा सफाई के लिए इस्तेमाल किया जा सकता है अपने में आधार पैकेज ( gsub, transformजैसे, आदि), और साथ ही में विभिन्न तृतीय-पक्ष संकुल, stringr , आकृति बदलें , reshape2 , और plyr । इन पैकेजों और उनके कार्यों के उपयोग के उदाहरण और सर्वोत्तम अभ्यास निम्नलिखित पेपर में वर्णित हैं: http://vita.had.co.nz/papers/tidy-data.pdf

इसके अतिरिक्त, आर कुछ पैकेज विशेष रूप से डेटा सफाई और परिवर्तन पर केंद्रित है :

आर में डेटा की सफाई के लिए एक व्यापक और सुसंगत दृष्टिकोण , जिसमें एडिट्रूल्स और डयूटीरेक्ट पैकेज के उदाहरण और उपयोग के साथ-साथ आर में डेटा सफाई के वर्कफ़्लो ( फ्रेमवर्क ) का विवरण निम्नलिखित पेपर में प्रस्तुत किया गया है, जिसे मैं अत्यधिक अनुशंसा करता हूं: http : : //cran.r-project.org/doc/contrib/de_Jonge+van_der_Loo-Introduction_to_data_cleaning_with_R.pdf


3

यहाँ दोस्तों ने बहुत अच्छे कदम बताए हैं, लेकिन मुझे लगता है कि निम्नलिखित लिंक पर बहुत अच्छी जानकारी है, जब मैं एक नया डेटा सेट प्राप्त करता हूं , जैसा कि ट्वीट के माध्यम से बताया जाता है , तो यह उन चरणों को पूरा करता है, जो लोगों ने महान @hmason प्रश्न का जवाब देते हुए ट्वीट किया है "डेटा लोग: जब आप एक नए डेटा सेट पर अपने हाथों को प्राप्त करते हैं तो आप सबसे पहले क्या करते हैं? "

आशा है कि यह उपयोगी होगा।


1

मैं एक बात जोड़ूंगा- यदि संभव हो, तो किसी अन्य स्रोत के खिलाफ डेटा की तुलना करके एक तर्कशक्ति जांच करें। ऐसा लगता है कि जब भी मैं ऐसा करने में विफल होता हूं, मैं जल जाता हूं :(

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.