Menu
CoddyTech
flag Ar iconالعربيةdown icon

التحقق بتقسيم K

جزء من قسم التعلّم الخاضع للإشراف في رحلة Machine Learning على Coddy. الدرس 37 من 58.

يجعل هذا الفصل درجاتك موثوقة. وبحلوله نهايته، ستضبط نموذجًا باستخدام مخططات كهذا:

أعمدة لمتوسط الدقة عبر 5 طيات لقيم k من 1 إلى 41. ترتفع الأعمدة من 0.85 عند k = 1 إلى أفضل نتيجة مميزة تبلغ 0.91 عند k = 15، ثم تنخفض

قد يكون تقسيم اختبار واحد محظوظًا. التحقق المتقاطع بـ K طيات يقسم الصفوف إلى طيات، وهنا عددها 5، ويختبر كل طية بالتناوب، مع التدريب على بقية الصفوف:

خمسة صفوف من خمس خلايا. في كل تقسيم، تكون خلية واحدة، مختلفة في كل مرة، هي طية الاختبار؛ أما الخلايا الأربع الأخرى فتُستخدم للتدريب. درجات شجرة Iris بجانبها: 0.967، 0.967، 0.900، 0.967، 1.000

استدعاء واحد يشغّل التقييمات الخمسة كلها، وهنا لشجرة على أزهار السوسن:

from sklearn.model_selection import cross_val_score

tree = DecisionTreeClassifier(random_state=0)
scores = cross_val_score(tree, X, y, cv=5)
print(np.round(scores, 3))
print(f"{scores.mean():.3f} {scores.std():.3f}")

يطبع هذا:

[0.967 0.967 0.9   0.967 1.   ]
0.960 0.033

اعرض المتوسط بوصفه الدرجة، والانحراف المعياري بوصفه مقدار التذبذب.

challenge icon

التحدي

متوسط

يتنبأ مصنع كومبوتشا بالدفعات الفاسدة استنادًا إلى 5 قراءات مخبرية. ما مدى استقرار نموذجه؟ يقرأ البرنامج عدد الطيات؛ أما الكود التمهيدي فيُنشئ البيانات والنموذج.

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

للدفعات الأخرى و4:

Fold 1: 0.917
Fold 2: 0.933
Fold 3: 0.883
Fold 4: 0.917
Mean 0.912, std 0.018
Weakest fold: 3

جرّب بنفسك

import numpy as np
from sklearn.datasets import make_classification
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression

n_folds = int(input())

# لا تغيّر الأسطر أدناه: 240 دفعة من الكومبوتشا، لكل منها 5 قراءات مخبرية؛ التصنيف 1 يعني أنها فاسدة
X, y = make_classification(n_samples=240, n_features=5, n_informative=3, n_redundant=0,
                           flip_y=0.08, class_sep=0.9, random_state=2)
model = LogisticRegression(max_iter=1000)

# اكتب الكود الخاص بك أدناه
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس التعلّم الخاضع للإشراف

تدرّب بنفسك: مترجم Python عبر الإنترنت