اذهب إلى المحتوى
  • 0

تقسيم البيانات باستخدام أداة Repeated Stratified KFold في مكتبة Sklearn

Meezo ML

السؤال

Recommended Posts

  • 1

هذه الطريقة نادرة الاستخدام عموماً. وهي أحد طرق تقسيم الداتا مثل StratifiedKFold ولكن يختلف عنه بأنه يقوم بأخذ نسبه متساوية من كل صنف في كل مجموعة.. في  StratifiedKFold لو كان لدينا أربع عينات وكل منها يحمل 0و0و1و1 فمن الممكن أن يأخذ 0و0 والمجموعه الثانيه 1و1 وهذا تساوي أما Repeated Stratified KFold سوف يأخذ 0و1 في الأولى و1و0 في الثانية لكي تكون النسبة متساوية لكل صنف في كل مجموعة.
يتم استخدامه عبر الموديل sklearn.model_selection.

#استدعاء المكتبات
from sklearn.model_selection import RepeatedStratifiedKFold

قمنا باستدعاء المكتبة numpy لتشكيل الداتا
واستدعاء الوظيفه RepeatedStratifiedKFold  من الوحدة model_selection في مكتبة sklearn

#تشكيل الداتا الدخل والخرج
X = np.array([[1, 2], [3, 4], [5, 6], [7, 8]])
y = np.array([1, 0, 1, 0])

حيث X مصفوفة أبعادها 4 أسطر وعمودين وy عمود واحد بأربع أسطر

#RepeatedStratifiedKFold
rskf = RepeatedStratifiedKFold(n_splits=5,n_repeats=10, random_state=None)

الوسيط الأول n_splits عدد صحيح لتحديد عدد الأجزاء folds وهي افتراضية في sklearn من 3 إلى 5.
الوسيط الثاني n_repeats وهو نقطة الاختلاف عن StratifiedKFold هو عدد صحيح يمثل عدد KFolds.
الوسيط الثالث random_state للتحكم بآلية التقسيم.
نفس الأمر في StratifiedKFold مرور حلقة حيث يتم استخدام اثنين من الاندكسات في الحلقة للمرور على التدريب والاختبار  وتحوي rskf.split(X, y) هذه الاندكسات .
نقوم بطباعة الاندكس للتدريب والاختبار في كل محاولة وبعدها تخزين التدريب والاختبار
ومن ثم طباعة كل منها:

for train_index, test_index in rskf.split(X, y):    
    print("TRAIN:", train_index, "TEST:", test_index)
    X_train, X_test = X[train_index], X[test_index]
    y_train, y_test = y[train_index], y[test_index]
    print('X_train:\n '+str(X_train),end='\n\n')
    print('X_test:\n '+str(X_train),end='\n\n')
    print('y_train:\n '+str(X_train),end='\n\n')
    print('y_test:\n '+str(X_train),end='\n\n')

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...