अपने स्थानीय TensorFlow के लिए RSVP आज हर जगह घटना!
इस पेज का अनुवाद Cloud Translation API से किया गया है.
Switch to English

TensorFlow Data Validation: अपने डेटा की जाँच और विश्लेषण करना

एक बार जब आपका डेटा TFX पाइपलाइन में होता है, तो आप इसका विश्लेषण करने और इसे बदलने के लिए TFX घटकों का उपयोग कर सकते हैं। किसी मॉडल को प्रशिक्षित करने से पहले ही आप इन उपकरणों का उपयोग कर सकते हैं।

आपके डेटा का विश्लेषण और रूपांतरण करने के कई कारण हैं:

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

TFX टूल डेटा बग्स को खोजने में और फीचर इंजीनियरिंग में मदद कर सकता है।

TensorFlow Data Validation

अवलोकन

TensorFlow Data Validation प्रशिक्षण और सेवा डेटा में विसंगतियों की पहचान करता है, और स्वचालित रूप से डेटा की जांच करके एक स्कीमा बना सकता है। डेटा में विसंगतियों के विभिन्न वर्गों का पता लगाने के लिए घटक को कॉन्फ़िगर किया जा सकता है। यह

  1. उपयोगकर्ता के उम्मीदों को संहिताबद्ध करने वाले स्कीमा के विरुद्ध डेटा आँकड़ों की तुलना करके वैधता जाँचें।
  2. प्रशिक्षण और डेटा की सेवा में उदाहरणों की तुलना करके प्रशिक्षण-सेवा तिरछा का पता लगाएं।
  3. डेटा की एक श्रृंखला को देखकर डेटा बहाव का पता लगाएं।

हम इनमें से प्रत्येक कार्य को स्वतंत्र रूप से दस्तावेजित करते हैं:

स्कीम आधारित उदाहरण मान्यकरण

TensorFlow Data Validation इनपुट डेटा में किसी भी विसंगतियों की पहचान स्कीमा के विरुद्ध डेटा आँकड़ों की तुलना करके करता है। स्कीमा उन गुणों को संहिताबद्ध करती है, जिनसे इनपुट डेटा को संतुष्ट करने की उम्मीद की जाती है, जैसे डेटा प्रकार या श्रेणीबद्ध मूल्य, और उपयोगकर्ता द्वारा संशोधित या प्रतिस्थापित किया जा सकता है।

उन्नत स्कीमा सुविधाएँ

यह खंड अधिक उन्नत स्कीमा कॉन्फ़िगरेशन को कवर करता है जो विशेष सेटअप के साथ मदद कर सकता है।

विरल सुविधाएँ

उदाहरणों में एन्कोडिंग विरल सुविधाएँ आमतौर पर कई विशेषताओं का परिचय देती हैं जो सभी उदाहरणों के लिए समान रूप से मान्य होती हैं। उदाहरण के लिए स्पार्स फीचर:


WeightedCategories = [('CategoryA', 0.3), ('CategoryX', 0.7)]
इंडेक्स और वैल्यू के लिए अलग-अलग फीचर्स का उपयोग करके इनकोड किया जाएगा:

WeightedCategoriesIndex = ['CategoryA', 'CategoryX']
WeightedCategoriesValue = [0.3, 0.7]
इस प्रतिबंध के साथ कि इंडेक्स और वैल्यू फीचर की वैधता सभी उदाहरणों के लिए मेल खाना चाहिए। स्पार्स_फिट्योर: 0d6d3de7070 को परिभाषित करके स्कीमा में इस प्रतिबंध को स्पष्ट किया जा सकता है

स्पार्स फीचर परिभाषा में एक या अधिक इंडेक्स और एक वैल्यू फीचर की आवश्यकता होती है जो स्कीमा में मौजूद विशेषताओं को संदर्भित करता है। स्पष्ट रूप से विरल सुविधाओं को परिभाषित करने से टीएफडीवी यह जांचने में सक्षम होता है कि सभी संदर्भित विशेषताओं की वैधता मेल खाती है।

कुछ उपयोग के मामले सुविधाओं के बीच समान वैधता प्रतिबंधों को लागू करते हैं, लेकिन जरूरी नहीं कि एक विरल सुविधा को एनकोड करें। विरल सुविधा का उपयोग करके आपको अनब्लॉक करना चाहिए, लेकिन आदर्श नहीं है।

योजनाओं का वातावरण

डिफ़ॉल्ट मान्यताओं से यह मान लिया जाता है कि पाइपलाइन में सभी उदाहरण एकल स्कीमा का पालन करते हैं। कुछ मामलों में मामूली स्कीमा भिन्नताओं को प्रस्तुत करना आवश्यक है, उदाहरण के लिए, चूंकि प्रशिक्षण के दौरान लेबल की आवश्यकता होती है, (और इसे वैध होना चाहिए), लेकिन सेवा के दौरान गायब हैं। ऐसी आवश्यकताओं को व्यक्त करने के लिए वातावरण का उपयोग किया जा सकता है, विशेष रूप से default_environment() , in_environment() , not_in_environment()

उदाहरण के लिए, मान लें कि प्रशिक्षण के लिए 'LABEL' नामक सुविधा की आवश्यकता है, लेकिन सेवा से गायब होने की उम्मीद है। इसके द्वारा व्यक्त किया जा सकता है:

  • स्कीमा में दो अलग-अलग वातावरणों को परिभाषित करें: ["सर्विंग", "ट्रेनिंग"] और '' लेबल '' को केवल पर्यावरण "ट्रेनिंग" से जोड़ें।
  • पर्यावरण "प्रशिक्षण" के साथ प्रशिक्षण डेटा और पर्यावरण "सर्विंग" के साथ सेवारत डेटा को संबद्ध करें।
स्कीमा जनरेशन

इनपुट डेटा स्कीमा TensorFlow स्कीमा के एक उदाहरण के रूप में निर्दिष्ट किया गया है।

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

स्वचालित रूप से एक स्कीमा उत्पन्न करने के लिए TFDV में infer_schema() शामिल है। उदाहरण के लिए:

schema = tfdv.infer_schema(statistics=train_stats)
tfdv.display_schema(schema=schema)

यह निम्नलिखित नियमों के आधार पर एक स्वचालित स्कीमा पीढ़ी चलाता है:

  • यदि एक स्कीमा पहले से ही ऑटो-जेनरेट किया गया है, तो इसका उपयोग किया जाता है।

  • अन्यथा, TensorFlow Data Validation उपलब्ध डेटा आँकड़ों की जाँच करता है और डेटा के लिए एक उपयुक्त स्कीमा की गणना करता है।

नोट: ऑटो-जनरेट स्कीमा सर्वश्रेष्ठ-प्रयास है और केवल डेटा के मूल गुणों का पता लगाने की कोशिश करता है। यह अपेक्षित है कि उपयोगकर्ता समीक्षा करें और आवश्यकतानुसार इसे संशोधित करें।

ट्रेनिंग-सर्विंग स्क्यू डिटेक्शन

अवलोकन

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

उदाहरण परिदृश्य

प्रशिक्षण-सेवारत तिरछी पहचान के बारे में जानकारी के लिए TensorFlow Data Validation Get Started Guide देखें।

बहाव का पता लगाना

बहाव का पता डेटा के लगातार फैलाव (यानी, स्पैन एन और स्पैन एन + 1 के बीच) के बीच होता है, जैसे कि प्रशिक्षण के विभिन्न दिनों के डेटा के बीच। हम श्रेणीगत विशेषताओं के लिए L- अनन्तता दूरी और अंकीय सुविधाओं के साथ जेन्सेन-शैनन विचलन के लिए बहाव व्यक्त करते हैं। आप थ्रेशोल्ड की दूरी निर्धारित कर सकते हैं ताकि बहाव के स्वीकार्य होने से अधिक होने पर आपको चेतावनी मिले। सही दूरी तय करना आम तौर पर एक पुनरावृत्त प्रक्रिया है जिसमें डोमेन ज्ञान और प्रयोग की आवश्यकता होती है।

बहाव का पता लगाने के बारे में जानकारी के लिए TensorFlow Data Validation Get Started Guide देखें।

अपने डेटा की जांच करने के लिए विज़ुअलाइज़ेशन का उपयोग करना

TensorFlow Data Validation फीचर वैल्यू के वितरण की कल्पना के लिए टूल प्रदान करता है। पहलुओं का उपयोग करके एक बृहस्पति नोटबुक में इन वितरणों की जांच करके आप डेटा के साथ आम समस्याओं को पकड़ सकते हैं।

फ़ीचर आँकड़े

संदेहास्पद वितरण की पहचान करना

आप फ़ीचर मानों के संदिग्ध वितरण को देखने के लिए एक फ़ेससेट अवलोकन प्रदर्शन का उपयोग करके अपने डेटा में सामान्य बग की पहचान कर सकते हैं।

असंतुलित डेटा

एक असंतुलित विशेषता एक ऐसी विशेषता है जिसके लिए एक मूल्य प्रबल होता है। असंतुलित विशेषताएं स्वाभाविक रूप से हो सकती हैं, लेकिन यदि किसी विशेषता में हमेशा समान मूल्य होता है तो आपके पास डेटा बग हो सकता है। एक पहलू अवलोकन में असंतुलित सुविधाओं का पता लगाने के लिए, "गैर-एकरूपता" का चयन "ड्रॉपडाउन" से करें।

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

असंतुलित डेटा का दृश्य

समान रूप से वितरित डेटा

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

पहलू अवलोकन में समान रूप से वितरित सुविधाओं का पता लगाने के लिए, "ड्रॉपडाउन" द्वारा "गैर-एकरूपता" चुनें और "रिवर्स ऑर्डर" चेकबॉक्स की जांच करें:

समान डेटा का हिस्टोग्राम

यदि 20 या उससे कम अनूठे मान हैं, और 20 से अधिक अनन्य मान हैं, तो संचयी वितरण ग्राफ़ के रूप में स्ट्रिंग डेटा को बार चार्ट का उपयोग करके दर्शाया गया है। इसलिए स्ट्रिंग डेटा के लिए, समान वितरण समान फ्लैट बार ग्राफ़ के रूप में दिखाई दे सकते हैं जैसे कि ऊपर की तरफ या नीचे की तरह सीधी रेखाएँ:

लाइन ग्राफ: समरूप डेटा का संचयी वितरण

कीड़े जो समान रूप से वितरित डेटा का उत्पादन कर सकते हैं

यहां कुछ सामान्य बग हैं जो समान रूप से वितरित डेटा का उत्पादन कर सकते हैं:

  • स्ट्रिंग जैसे गैर-स्ट्रिंग डेटा प्रकारों का प्रतिनिधित्व करने के लिए स्ट्रिंग्स का उपयोग करना। उदाहरण के लिए, आपके पास "2017-03-01-11-45-03" जैसे अभ्यावेदन के साथ डेटाइम फीचर के लिए कई अनूठे मूल्य होंगे। अद्वितीय मूल्यों को समान रूप से वितरित किया जाएगा।

  • सुविधाओं के रूप में "पंक्ति संख्या" जैसे सूचकांक शामिल हैं। यहां फिर से आपके पास कई अनूठे मूल्य हैं।

खोए आँकड़े

यह जाँचने के लिए कि क्या कोई सुविधा पूरी तरह से मान गायब है:

  1. "ड्रॉप-डाउन" द्वारा "सॉर्ट मिसिंग / जीरो" चुनें।
  2. "रिवर्स ऑर्डर" चेकबॉक्स की जांच करें।
  3. किसी विशेषता के लिए लापता मानों के साथ उदाहरणों का प्रतिशत देखने के लिए "लापता" कॉलम देखें।

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

  1. दाईं ओर "ड्रॉप-डाउन मेनू" "चार्ट से दिखाने के लिए" मूल्य सूची लंबाई चुनें।

  2. चार्ट को प्रत्येक सुविधा पंक्ति के दाईं ओर देखें। चार्ट फीचर के लिए मूल्य सूची की लंबाई की सीमा दिखाता है। उदाहरण के लिए, नीचे दिए गए स्क्रीनशॉट में हाइलाइट की गई पंक्ति एक विशेषता दिखाती है जिसमें कुछ शून्य-लंबाई मान सूची होती है:

जीरो-लेंथ फीचर वैल्यू लिस्ट के साथ फीचर के साथ डिस्प्ले अवलोकन

सुविधाओं के बीच स्केल में बड़े अंतर

यदि आपकी सुविधाएँ व्यापक रूप से भिन्न होती हैं, तो मॉडल को सीखने में कठिनाई हो सकती है। उदाहरण के लिए, यदि कुछ सुविधाएँ 0 से 1 तक भिन्न हैं और अन्य 0 से 1,000,000,000 तक भिन्न हैं, तो आपके पास बड़े पैमाने पर अंतर है। व्यापक रूप से भिन्न पैमाने खोजने के लिए सुविधाओं में "अधिकतम" और "न्यूनतम" कॉलम की तुलना करें।

इन व्यापक रूपांतरों को कम करने के लिए फीचर मानों को सामान्य करने पर विचार करें।

अमान्य लेबल वाली लेबल

TensorFlow के एस्टिमेटर्स को उन डेटा के प्रकार पर प्रतिबंध है जो वे लेबल के रूप में स्वीकार करते हैं। उदाहरण के लिए, बाइनरी क्लासीफायर आमतौर पर केवल {0, 1} लेबल के साथ काम करते हैं।

पहलुओं के अवलोकन में लेबल मानों की समीक्षा करें और सुनिश्चित करें कि वे अनुमानकों की आवश्यकताओं के अनुरूप हैं।