معانقة قطار الوجه ومجموعة البيانات المقسمة

M Anqt Qtar Alwjh Wmjmw T Albyanat Almqsmt



لا تحتوي مكتبة Hugging Face على وظيفة محددة تسمى Train_test_split. ومع ذلك، عندما يتعلق الأمر بتقسيم البيانات للتدريب والاختبار في مهام التعلم الآلي، تُستخدم وظيفة Train_test_split بشكل شائع في المكتبات الشائعة الأخرى مثل scikit-learn. سنشرح هنا المعلمات المستخدمة عادةً في وظيفة Train_test_split من scikit-learn.

تُستخدم طريقة Train_test_split في مكتبة مجموعة بيانات Hugging Face لتقسيم مجموعة البيانات إلى مجموعتين فرعيتين: مجموعة فرعية للتدريب ومجموعة فرعية للاختبار. تُستخدم هذه الطريقة بشكل شائع في التعلم الآلي لتقييم أداء النموذج على البيانات غير المرئية. يتم استخدام مجموعة التدريب الفرعية لتدريب النموذج، بينما يتم استخدام مجموعة الاختبار الفرعية لتقييم أدائها وقدراتها على التعميم.







فيما يلي نظرة عامة على طريقة Train_test_split في Hugging Face:



  1. test_size (numpy.random.Generator، اختياري) : يتم تحديد حجم تقسيم الاختبار من خلال هذا الخيار. يمكن أن يكون النوع إما عائمًا أو عددًا صحيحًا.
  • إذا تم تقديمها كتعويم، فيجب أن تعكس النسبة المئوية لمجموعة البيانات المراد تضمينها في تقسيم الاختبار وأن تكون بين 0.0 و1.0.
  • يتم تمثيل العدد الدقيق لعينات الاختبار بالقيمة إذا تم توفيرها كعدد صحيح.
  • إذا تم تعيينه على لا شيء، فسيتم استخدام مكمل حجم القطار كقيمة.
  • إذا كان حجم القطار أيضًا لا شيء، فسيتم تعيينه على 0.25 (25% من مجموعة البيانات).
  • Train_size (numpy.random.Generator، اختياري): يتم تحديد حجم تقسيم القطار بواسطة هذه المعلمة. يتبع نفس الإرشادات مثل test_size.
    • إذا تم تقديمها كتعويم، فيجب أن تعكس النسبة المئوية لمجموعة البيانات المراد تضمينها في تقسيم القطار وأن تكون بين 0.0 و1.0.
    • يتم تمثيل العدد الدقيق لعينات القطار بالقيمة إذا تم توفيرها كعدد صحيح.
    • إذا تم تعيينها على لا شيء، فسيتم تغيير القيمة تلقائيًا إلى تكملة حجم الاختبار.
  • خلط عشوائي (منطقي، اختياري، الافتراضي هو True)
    • تحدد هذه المعلمة ما إذا كان سيتم خلط البيانات قبل التقسيم أم لا.
    • إذا تم تعيينه على True، فسيتم خلط البيانات بشكل عشوائي قبل التقسيم.
    • إذا تم تعيينه على خطأ، فسيتم تقسيم البيانات دون خلط.
  • stratify_by_column (str، اختياري، الافتراضي هو لا شيء)
    • يتم استخدام هذه المعلمة للتقسيم الطبقي للبيانات بناءً على عمود محدد.
    • إذا تم تحديده، فيجب أن يكون اسم عمود التسميات أو الفئات.
    • سيتم تقسيم البيانات بطريقة تحافظ على نفس التوزيع للتسميات أو الفئات في تقسيمات التدريب والاختبار.
  • البذور (كثافة العمليات، اختياري)
    • تسمح لك هذه المعلمة بتعيين بذرة لتهيئة BitGenerator الافتراضي.
    • إذا تم ضبطه على لا شيء، فسيتم سحب إنتروبيا جديدة وغير متوقعة من نظام التشغيل.
    • إذا تم تمرير عدد صحيح أو أعداد صحيحة تشبه المصفوفة، فسيتم استخدامها لاشتقاق حالة BitGenerator الأولية.
  • مولد (numpy.random.Generator، اختياري)
    • تسمح لك هذه المعلمة بتحديد مولد عشوائي NumPy لحساب تبديل صفوف مجموعة البيانات.
    • إذا تم تعيينه على لا شيء (افتراضي)، فإنه يستخدم np.random.default_rng وهو BitGenerator (PCG64) الافتراضي لـ NumPy.
  • keep_in_memory (منطقي، الافتراضي هو خطأ)
    • تحدد هذه المعلمة ما إذا كان سيتم الاحتفاظ بمؤشرات الانقسام في الذاكرة بدلاً من كتابتها في ملف ذاكرة التخزين المؤقت.
    • إذا تم ضبطه على True، فسيتم تخزين مؤشرات التقسيم في الذاكرة أثناء عملية التقسيم.
    • إذا تم تعيينه على False، فسيتم كتابة الفهارس المقسمة إلى ملف ذاكرة التخزين المؤقت لاستخدامها لاحقًا.
  • Load_from_cache_file (اختياري[bool]، القيمة الافتراضية هي True إذا تم تمكين التخزين المؤقت)
    • تحدد هذه المعلمة ما إذا كان سيتم استخدام ملف ذاكرة التخزين المؤقت لتحميل المؤشرات المقسمة بدلاً من إعادة حسابها.
    • إذا تم تعيينه على True ويمكن تحديد ملف ذاكرة التخزين المؤقت الذي يخزن المؤشرات المقسمة، فسيتم استخدامه.
    • إذا تم تعيينه على False، فسيتم إعادة حساب مؤشرات الانقسام حتى في حالة وجود ملف ذاكرة تخزين مؤقت.
    • القيمة الافتراضية هي True إذا تم تمكين التخزين المؤقت.
  • Train_cache_file_name (شارع، اختياري)
    • تسمح لك هذه المعلمة بتوفير مسار أو اسم محدد لملف ذاكرة التخزين المؤقت الذي يخزن مؤشرات تقسيم القطار.
    • إذا تم تحديده، فسيتم تخزين مؤشرات تقسيم القطار في ملف ذاكرة التخزين المؤقت هذا بدلاً من اسم ملف ذاكرة التخزين المؤقت الذي تم إنشاؤه تلقائيًا.
  • test_cache_file_name (str، اختياري)
    • تسمح لك هذه المعلمة بتوفير مسار أو اسم محدد لملف ذاكرة التخزين المؤقت الذي يخزن مؤشرات تقسيم الاختبار.
    • إذا تم تحديده، فسيتم تخزين مؤشرات تقسيم الاختبار في ملف ذاكرة التخزين المؤقت هذا بدلاً من اسم ملف ذاكرة التخزين المؤقت الذي تم إنشاؤه تلقائيًا.
  • Writer_batch_size (عدد صحيح، القيمة الافتراضية هي 1000)
    • تحدد هذه المعلمة عدد الصفوف لكل عملية كتابة لكاتب ملف ذاكرة التخزين المؤقت.
    • إنها مقايضة بين استخدام الذاكرة وسرعة المعالجة.
    • تعمل القيم الأعلى على تقليل عدد عمليات الكتابة ولكنها تستهلك المزيد من الذاكرة أثناء المعالجة.
    • تستهلك القيم المنخفضة ذاكرة مؤقتة أقل ولكنها قد تؤثر بشكل طفيف على سرعة المعالجة.
  • Train_new_fingerprint (str، اختياري، الافتراضي هو لا شيء)
    • تمثل هذه المعلمة البصمة الجديدة لمجموعة القطار بعد تطبيق التحويل.
    • إذا تم تحديده، فإنه يوفر بصمة جديدة لمجموعة القطار.
    • إذا تم تعيينها على لا شيء، فسيتم حساب بصمة الإصبع الجديدة باستخدام تجزئة البصمة السابقة ووسائط التحويل.
  • test_new_fingerprint (str، اختياري، الافتراضي هو لا شيء)
    • تمثل هذه المعلمة البصمة الجديدة لمجموعة الاختبار بعد تطبيق التحويل.
    • إذا تم تحديده، فإنه يوفر بصمة جديدة لمجموعة الاختبار.
    • إذا تم تعيينها على لا شيء، فسيتم حساب بصمة الإصبع الجديدة باستخدام تجزئة البصمة السابقة ووسائط التحويل.

    بناء الجملة:

    من sklearn.model_selection استيراد Train_test_split

    X_train، X_test، y_train، y_test = Train_test_split(X، y، test_size=0.2، Random_state=42)

    X : يمثل هذا ميزات الإدخال أو المتغيرات المستقلة لمجموعة البيانات الخاصة بك.



    • و : يمثل هذا الناتج أو المتغير التابع الذي تحاول التنبؤ به.
    • test_size : تحدد هذه المعلمة نسبة مجموعة البيانات التي سيتم تخصيصها للاختبار. ويمكن تحديده كعدد عائم (على سبيل المثال، 0.2 لـ 20%) أو عدد صحيح (على سبيل المثال، 200 لـ 200 عينة).
    • Random_state : هذه معلمة اختيارية تسمح لك بتعيين بذرة لمولد الأرقام العشوائية. إنه يضمن أن التقسيم قابل للتكرار مما يعني أنك ستحصل على نفس التقسيم إذا كنت تستخدم نفس قيمة الحالة العشوائية.

    تقوم الدالة Train_test_split بإرجاع أربع مجموعات من البيانات:





    • X_train : مجموعة التدريب على ميزات الإدخال.
    • X_test : مجموعة اختبار ميزات الإدخال.
    • y_train : مجموعة التدريب على تسميات الإخراج.
    • y_test : مجموعة اختبار تسميات الإخراج.

    مثال : يتم حفظ البرنامج المثال التالي باسم ' test.py '.

    من sklearn.model_selection استيراد Train_test_split

    من مجموعات البيانات قم باستيراد Load_dataset

    # الخطوة 1: تحميل مجموعة البيانات

    مجموعة البيانات = Load_dataset('imdb')

    X = مجموعة البيانات ['القطار'] ['نص']

    y = مجموعة البيانات['القطار']['التسمية']

    # الخطوة الثانية: تقسيم مجموعة البيانات

    X_train، X_test، y_train، y_test = Train_test_split(X، y، test_size=0.2،

    خلط ورق اللعب = صحيح، حالة عشوائية = 42)

    # الخطوة 3: استكشاف مجموعة البيانات

    طباعة ('عدد الأمثلة في مجموعة البيانات الأصلية:'، len(X))

    طباعة ('عدد الأمثلة في مجموعة بيانات القطار:'، len(X_train))

    طباعة ('عدد الأمثلة في مجموعة بيانات الاختبار:'، len(X_test))

    # الخطوة 4: الوصول إلى بيانات المثال وطباعتها

    طباعة('\nمثال من مجموعة بيانات القطار:')

    طباعة (X_train [0]، y_train [0])

    طباعة ('\nمثال من مجموعة بيانات الاختبار:')

    طباعة (X_test[0]، y_test[0])

    بيان الاستيراد هذا مأخوذ من scikit-learn، وليس من مكتبة مجموعات بيانات Hugging Face. يرجى التأكد من تثبيت scikit-learn في بيئتك. يمكنك تثبيته باستخدام الأمر التالي:



    نقطة تثبيت scikit-تعلم

    شرح: أولاً، نقوم باستيراد الوحدة الضرورية: Train_test_split من scikit-learn.

    • نقوم بتحميل مجموعة بيانات IMDb باستخدام Load_dataset('imdb') ونخصصها لمتغير مجموعة البيانات.
    • لاستخدام Train_test_split، نحتاج إلى فصل ميزات الإدخال (X) والتسميات المقابلة (y). في هذه الحالة، نفترض أن مجموعة البيانات تحتوي على قسم يسمى 'القطار' مع 'النص' كميزات الإدخال و'التسمية' كتسميات مقابلة. قد تحتاج إلى ضبط المفاتيح بناءً على بنية مجموعة البيانات الخاصة بك.
    • نقوم بعد ذلك بتمرير ميزات الإدخال (X) والتسميات (y) إلى Train_test_split بالإضافة إلى المعلمات الأخرى. في هذا المثال، قمنا بتعيين test_size على 0.2 مما يعني أنه سيتم تخصيص 20% من البيانات للاختبار. يتم تعيين معلمة التبديل العشوائي على 'True' لخلط البيانات بشكل عشوائي قبل التقسيم، ويتم تعيين المعلمة Random_state على 42 من أجل إمكانية التكرار.
    • تقوم الدالة Train_test_split بإرجاع أربع مجموعات من البيانات: X_train وX_test وy_train وy_test. تمثل هذه المجموعات الفرعية للتدريب والاختبار لميزات الإدخال والتسميات، على التوالي.
    • نطبع عدد الأمثلة في مجموعة البيانات الأصلية (len(X)) ومجموعة بيانات التدريب (len(X_train)) ومجموعة بيانات الاختبار (len(X_test)). يتيح لنا ذلك التحقق من عملية التقسيم والتأكد من إنشاء المجموعات الفرعية بشكل صحيح.
    • أخيرًا، يمكننا الوصول إلى مثال من مجموعة بيانات التدريب وطباعته (X_train[0]، y_train[0]) ومثال من مجموعة بيانات الاختبار (X_test[0]، y_test[0]).

    انتاج | : نقوم بتشغيل البرنامج المحفوظ مسبقًا باستخدام Python “test.py”.

    خاتمة

    توفر وظيفة تقسيم اختبار التدريب التي توفرها مكتبة مجموعات بيانات Hugging Face، بالاشتراك مع وظيفة Train_test_split الخاصة بـ scikit-learn، طريقة مريحة وفعالة لتقسيم مجموعة البيانات إلى مجموعات فرعية منفصلة للتدريب والاختبار.

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

    تسمح لك معلمات الدالة Train_test_split بالتحكم في جوانب مختلفة من التقسيم مثل حجم مجموعة الاختبار (test_size)، وخلط البيانات (العشوائي)، وإجراء التقسيم الطبقي بناءً على أعمدة محددة (stratify_by_column). بالإضافة إلى ذلك، يمكنك تحديد قيمة أولية (بذرة) لإمكانية التكرار وتخصيص أسماء ملفات ذاكرة التخزين المؤقت لتخزين المؤشرات المقسمة (train_cache_file_name وtest_cache_file_name).

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

    بشكل عام، توفر وظيفة تقسيم اختبار التدريب في مكتبة مجموعات بيانات Hugging Face، جنبًا إلى جنب مع Train_test_split الخاص بـ scikit-learn، مجموعة أدوات قوية لتقسيم البيانات بكفاءة، وتقييم النماذج، وتطوير حلول قوية للتعلم الآلي.