सहायता Kaggle पर TensorFlow साथ ग्रेट बैरियर रीफ की रक्षा चैलेंज में शामिल हों

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

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

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

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

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

TensorFlow डेटा सत्यापन

अवलोकन

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

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

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

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

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

Tensorflow डेटा सत्यापन को आमतौर पर TFX पाइपलाइन के संदर्भ में कई बार लागू किया जाता है: (i) exampleGen से प्राप्त प्रत्येक विभाजन के लिए, (ii) ट्रांसफ़ॉर्म द्वारा उपयोग किए जाने वाले सभी पूर्व-रूपांतरित डेटा के लिए और (iii) द्वारा उत्पन्न सभी पोस्ट-ट्रांसफ़ॉर्म डेटा के लिए रूपांतरण। जब रूपांतरण के संदर्भ में लागू (ii-iii), सांख्यिकी विकल्प और स्कीमा आधारित बाधाओं को परिभाषित करते हुए सेट किया जा सकता stats_options_updater_fn । यह असंरचित डेटा (जैसे टेक्स्ट फीचर्स) को मान्य करते समय विशेष रूप से उपयोगी होता है। देखें उपयोगकर्ता कोड एक उदाहरण के लिए।

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

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

विरल विशेषताएं

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


WeightedCategories = [('CategoryA', 0.3), ('CategoryX', 0.7)]
: सूचकांक और मूल्य के लिए अलग विशेषताओं का प्रयोग इनकोडिंग किया जाएगा

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

sparse_feature {
  name: 'WeightedCategories'
  index_feature { name: 'WeightedCategoriesIndex' }
  value_feature { name: 'WeightedCategoriesValue' }
}

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

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

स्कीमा वातावरण

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

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

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

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

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

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

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

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

  • यदि एक स्कीमा पहले से ही स्वतः उत्पन्न हो चुकी है तो इसका उपयोग वैसे ही किया जाता है।

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

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

प्रशिक्षण-सेवा तिरछा जांच

अवलोकन

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

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

देखें TensorFlow डेटा मान्यता शुरू करने के गाइड प्रशिक्षण सेवारत तिरछा का पता लगाने के बारे में जानकारी के लिए।

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

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

देखें TensorFlow डेटा मान्यता शुरू करने के लिए गाइड बहाव का पता लगाने के बारे में जानकारी के लिए।

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

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

फ़ीचर आँकड़े

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

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

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

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

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

असंतुलित डेटा का विज़ुअलाइज़ेशन

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

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

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

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

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

रेखा ग्राफ: एकसमान डेटा का संचयी वितरण

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

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

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

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

खोए आँकड़े

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

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

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

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

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

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

सुविधाओं के बीच पैमाने में बड़े अंतर

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

इन व्यापक विविधताओं को कम करने के लिए सुविधा मानों को सामान्य बनाने पर विचार करें।

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

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

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