ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

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

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

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

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

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

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

نظرة عامة

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

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

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

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

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

ميزات المخطط المتقدمة

يغطي هذا القسم تكوين مخطط أكثر تقدمًا يمكن أن يساعد في عمليات الإعداد الخاصة.

ميزات متفرقة

عادةً ما يقدم ترميز الميزات المتفرقة في الأمثلة ميزات متعددة يُتوقع أن يكون لها نفس التكافؤ لجميع الأمثلة. على سبيل المثال ، الميزة المتفرقة: سيتم ترميز


WeightedCategories = [('CategoryA', 0.3), ('CategoryX', 0.7)]
باستخدام ميزات منفصلة للفهرس والقيمة:

WeightedCategoriesIndex = ['CategoryA', 'CategoryX']
WeightedCategoriesValue = [0.3, 0.7]
مع التقييد بأن تكافؤ ميزة الفهرس والقيمة يجب أن تتطابق مع جميع الأمثلة. يمكن جعل هذا التقييد صريحًا في المخطط من خلال تعريف ميزة_متناثرة:

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 تلقائيًا بإنشاء مخطط أولي بناءً على الإحصائيات المحسوبة على بيانات التدريب المتوفرة في خط الأنابيب. يمكن للمستخدمين ببساطة مراجعة هذا المخطط المُنشأ تلقائيًا ، وتعديله حسب الحاجة ، والتحقق منه في نظام التحكم في الإصدار ، ودفعه بشكل صريح إلى خط الأنابيب لمزيد من التحقق من الصحة.

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

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

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

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

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

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

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

نظرة عامة

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

Example Scenario

For instance, in order to compensate for an underrepresented slice of data,
if a biased sampling is used without upweighting the downsampled examples
appropriately, the distribution of feature values between training and
serving data gets artificially skewed.

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

كشف الانجراف

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

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

استخدام المرئيات للتحقق من بياناتك

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

احصائيات الميزة

تحديد التوزيعات المشبوهة

يمكنك تحديد الأخطاء الشائعة في بياناتك باستخدام عرض نظرة عامة على الواجهات للبحث عن التوزيعات المشبوهة لقيم الميزات.

بيانات غير متوازنة

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

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

تصور البيانات غير المتوازنة

البيانات الموزعة بشكل موحد

الميزة الموزعة بشكل موحد هي الميزة التي تظهر لها جميع القيم الممكنة بالقرب من نفس التردد. كما هو الحال مع البيانات غير المتوازنة ، يمكن أن يحدث هذا التوزيع بشكل طبيعي ، ولكن يمكن أيضًا أن ينتج عن أخطاء البيانات.

لاكتشاف الميزات الموزعة بشكل موحد في نظرة عامة على الواجهات ، اختر "عدم التماثل" من القائمة المنسدلة "فرز حسب" وحدد مربع الاختيار "ترتيب عكسي":

رسم بياني للبيانات الموحدة

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

الرسم البياني الخطي: التوزيع التراكمي للبيانات المنتظمة

الأخطاء التي يمكنها إنتاج بيانات موزعة بشكل موحد

فيما يلي بعض الأخطاء الشائعة التي يمكن أن تنتج بيانات موزعة بشكل موحد:

  • استخدام السلاسل لتمثيل أنواع البيانات غير المتسلسلة مثل التواريخ. على سبيل المثال ، سيكون لديك العديد من القيم الفريدة لميزة التاريخ والوقت مع تمثيلات مثل "2017-03-01-11-45-03". سيتم توزيع القيم الفريدة بشكل موحد.

  • بما في ذلك فهارس مثل "رقم الصف" كميزات. هنا مرة أخرى لديك العديد من القيم الفريدة.

بيانات مفقودة

للتحقق مما إذا كان العنصر يفتقد القيم بالكامل:

  1. اختر "المبلغ المفقود / صفر" من القائمة المنسدلة "فرز حسب".
  2. حدد مربع الاختيار "عكس الترتيب".
  3. انظر إلى العمود "المفقود" لمعرفة النسبة المئوية للمثيلات ذات القيم المفقودة للميزة.

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

  1. اختر "طول قائمة القيم" من القائمة المنسدلة "مخطط لعرض" على اليسار.

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

يتم عرض نظرة عامة على الواجهات مع ميزة بقوائم قيم سمات ذات طول صفري

اختلافات كبيرة في المقياس بين الميزات

إذا كانت ميزاتك تتباين بشكل كبير في الحجم ، فقد يواجه النموذج صعوبات في التعلم. على سبيل المثال ، إذا كانت بعض الميزات تختلف من 0 إلى 1 وتختلف ميزات أخرى من 0 إلى 1،000،000،000 ، فلديك اختلاف كبير في الحجم. قارن بين أعمدة "الحد الأقصى" و "الحد الأدنى" عبر الميزات للعثور على مقاييس متنوعة على نطاق واسع.

ضع في اعتبارك تسوية قيم الميزة لتقليل هذه الاختلافات الواسعة.

تسميات مع تسميات غير صالحة

يمتلك مقدمو TensorFlow قيودًا على نوع البيانات التي يقبلونها كعناوين. على سبيل المثال ، المصنفات الثنائية عادة تعمل فقط مع تسميات {0، 1}.

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