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

تقسيم البيانات باستخدام أداة StratifiedKFold في Sklearn

Meezo ML

السؤال

Recommended Posts

  • 1

هي أحد طرق تقسيم الداتا هي متل KFold ولكن يختلف عنه بأنه يقوم بأخذ مجموعات متساوية من حيث عدد الفئات في كل مجموعة في حال كانت البيانات بغرض التنصيف
يتم استخدامه عبر الموديل sklearn.model_selection.

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

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

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

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

#StratifiedKFold
Skf = StratifiedKFold(n_splits=5, *, shuffle=False, random_state=None)

الوسيط الأول n_splits عدد صحيح لتحديد عدد الأجزاء folds وهي افتراضية في sklearn من 3 إلى 5.
الوسيط الثاني shuffle تأخذ قيمه بوليانية عند وضعها True تقوم بعمل خلط عشوائي للبيانات وfalse عكس ذلك.
الوسيط الثالث random_state للتحكم بآلية التقسيم.
نفس الأمر في Kfolds مرور حلقة حيث يتم استخدام اثنين من الاندكسات في الحلقة للمرور على التدريب والاختبار  وتحوي skf.split(X) هذه الاندكسات .
نقوم بطباعة الاندكس للتدريب والاختبار في كل محاوله وبعدها تخزين التدريب والاختبار.
ومن ثم طباعة كل منها.

#استدعاء المكتبات
from sklearn.model_selection import StratifiedKFold
#تشكيل الداتا الدخل والخرج
X = np.array([[1, 2], [3, 4], [5, 6], [7, 8]])
y = np.array([1, 0, 1, 0])
#StratifiedKFold
skf = StratifiedKFold(n_splits=2, shuffle=False, random_state=None)
for train_index, test_index in skf.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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...