مساعدة في حماية الحاجز المرجاني العظيم مع TensorFlow على Kaggle تاريخ التحدي

التحقق من صحة بيانات TensorFlow: فحص وتحليل بياناتك

بمجرد أن تكون بياناتك في خط أنابيب TFX ، يمكنك استخدام مكونات TFX لتحليلها وتحويلها. يمكنك استخدام هذه الأدوات حتى قبل تدريب النموذج.

هناك العديد من الأسباب لتحليل بياناتك وتحويلها:

  • للعثور على مشاكل في البيانات الخاصة بك. تشمل المشاكل الشائعة ما يلي:
    • البيانات المفقودة ، مثل المعالم ذات القيم الفارغة.
    • يتم التعامل مع التسميات كميزات ، بحيث يتمكن نموذجك من إلقاء نظرة خاطفة على الإجابة الصحيحة أثناء التدريب.
    • ميزات ذات قيم خارج النطاق الذي تتوقعه.
    • الشذوذ في البيانات.
    • يحتوي نموذج النقل الذي تم تعلمه على معالجة مسبقة لا تتطابق مع بيانات التدريب.
  • لهندسة مجموعات ميزات أكثر فعالية. على سبيل المثال ، يمكنك تحديد:
    • ميزات إعلامية خاصة.
    • ميزات زائدة عن الحاجة.
    • الميزات التي تختلف على نطاق واسع في الحجم لدرجة أنها قد تبطئ التعلم.
    • الميزات التي تحتوي على معلومات تنبؤية قليلة أو معدومة.

يمكن لأدوات TFX المساعدة في العثور على أخطاء البيانات والمساعدة في هندسة الميزات.

التحقق من صحة بيانات TensorFlow

ملخص

يحدد التحقق من صحة بيانات TensorFlow الحالات الشاذة في بيانات التدريب والخدمة ، ويمكنه تلقائيًا إنشاء مخطط عن طريق فحص البيانات. يمكن تكوين المكون لاكتشاف فئات مختلفة من الحالات الشاذة في البيانات. يمكن

  1. قم بإجراء فحوصات الصلاحية من خلال مقارنة إحصائيات البيانات بمخطط يقنن توقعات المستخدم.
  2. اكتشف انحراف خدمة التدريب من خلال مقارنة الأمثلة في بيانات التدريب والخدمة.
  3. اكتشف انحراف البيانات من خلال النظر إلى سلسلة من البيانات.

نقوم بتوثيق كل من هذه الوظائف بشكل مستقل:

التحقق من صحة المثال المستند إلى المخطط

يحدد التحقق من صحة بيانات TensorFlow أي حالات شاذة في بيانات الإدخال من خلال مقارنة إحصائيات البيانات بمخطط. يقوم المخطط بترميز الخصائص التي من المتوقع أن تلبيها بيانات الإدخال ، مثل أنواع البيانات أو القيم الفئوية ، ويمكن تعديلها أو استبدالها من قبل المستخدم.

عادةً ما يتم استدعاء التحقق من صحة بيانات Tensorflow عدة مرات في سياق خط أنابيب TFX: (1) لكل تقسيم تم الحصول عليه من ExampleGen ، (2) لجميع البيانات المحولة مسبقًا المستخدمة بواسطة Transform و (3) لجميع بيانات ما بعد التحويل التي تم إنشاؤها بواسطة تحول. عند استدعاء في سياق تحويل (ب-ج)، خيارات الإحصاءات والقيود القائمة على مخطط يمكن تعيين من خلال تحديد 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 Data Validation. على وجه التحديد ، يقوم التحقق من صحة بيانات TensorFlow تلقائيًا بإنشاء مخطط أولي بناءً على الإحصائيات المحسوبة على بيانات التدريب المتوفرة في خط الأنابيب. يمكن للمستخدمين ببساطة مراجعة هذا المخطط المُنشأ تلقائيًا ، وتعديله حسب الحاجة ، والتحقق منه في نظام التحكم في الإصدار ، ودفعه بشكل صريح إلى خط الأنابيب لمزيد من التحقق من الصحة.

يشمل TFDV infer_schema() لإنشاء مخطط تلقائيا. فمثلا:

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

يؤدي هذا إلى إنشاء مخطط تلقائي بناءً على القواعد التالية:

  • إذا كان المخطط قد تم إنشاؤه تلقائيًا بالفعل ، فسيتم استخدامه كما هو.

  • بخلاف ذلك ، يفحص TensorFlow Data Validation إحصاءات البيانات المتاحة ويحسب مخططًا مناسبًا للبيانات.

ملاحظة: مخطط قاعدة البيانات الذي تم إنشاؤه تلقائيًا هو أفضل جهد ويحاول فقط استنتاج الخصائص الأساسية للبيانات. ومن المتوقع أن يقوم المستخدمون بمراجعتها وتعديلها حسب الحاجة.

كشف انحراف خدمة التدريب

ملخص

يمكن للتحقق من صحة بيانات TensorFlow اكتشاف انحراف التوزيع بين بيانات التدريب والخدمة. يحدث انحراف التوزيع عندما يختلف توزيع قيم السمات لبيانات التدريب بشكل كبير عن البيانات التي يتم عرضها. أحد الأسباب الرئيسية لانحراف التوزيع هو استخدام مجموعة مختلفة تمامًا لتدريب توليد البيانات للتغلب على نقص البيانات الأولية في المجموعة المطلوبة. سبب آخر هو آلية أخذ العينات الخاطئة التي تختار فقط عينة فرعية من بيانات الخدمة للتدريب عليها.

سيناريو مثال

انظر دليل TensorFlow التحقق من صحة البيانات الشروع للحصول على معلومات حول تكوين كشف تخدم التدريب الانحراف.

كشف الانجراف

يتم دعم اكتشاف الانجراف بين فترات متتالية من البيانات (أي بين الامتداد N والامتداد N + 1) ، مثل بين أيام مختلفة من بيانات التدريب. ونعرب عن الانجراف من حيث المسافة L اللانهاية لميزات الفئوية وتقريبي الاختلاف جنسن شانون لميزات رقمية. يمكنك ضبط مسافة الحد بحيث تتلقى تحذيرات عندما يكون الانحراف أعلى من المقبول. عادةً ما يكون تحديد المسافة الصحيحة عملية تكرارية تتطلب معرفة المجال والتجريب.

انظر دليل 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}.

مراجعة القيم التسمية في نظرة عامة المظاهر والتأكد من مطابقتها ل متطلبات المقدرون .