Menu
CoddyTech

אימות K-fold

חלק מהיחידה למידה מונחית במסלול ה-Machine Learning של Coddy. שיעור 37 מתוך 58.

הפרק הזה הופך את הציונים שלך לאמינים. בסופו, תכוונן מודל באמצעות תרשימים כאלה:

עמודות של דיוק ממוצע על פני 5 קיפולים עבור k מ־1 עד 41. העמודות עולות מ־0.85 כאשר k = 1 לשיא מודגש של 0.91 כאשר k = 15, ואז יורדות

חלוקה אחת של הנתונים למבחן יכולה להיות מוצלחת במקרה. אימות צולב בשיטת K-fold מחלק את השורות לקפלים, כאן ל-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 אונליין