Menu
CoddyTech

האם ייתכן שזה מקרי?

חלק מהיחידה סטטיסטיקה ללמידת מכונה במסלול ה-Machine Learning של Coddy. שיעור 43 מתוך 64.

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

עשרה זמני קריאה בתאים, חמישה בגופן עם תגים בכחול וחמישה בגופן ללא תגים בכתום. חץ המסומן rng.permutation(pooled) מוביל לאותם עשרה ערכים בסדר מעורב, המחולקים לקבוצת גופן עם תגים מדומה עם ממוצע של 48.4 ולקבוצת גופן ללא תגים מדומה עם ממוצע של 49.8: פער של ‎+1.4 שניות שנוצר במקרה

rng.permutation(a) מחזירה עותק שעורבב. חזור על הפעולה 1000 פעמים ושמור כל הפרש מדומה:

serif = np.array([52, 47, 58, 50, 55])
sans = np.array([45, 49, 41, 50, 44])
pooled = np.concatenate([serif, sans])
rng = np.random.default_rng(4)
diffs = []
for i in range(1000):
    shuffled = rng.permutation(pooled)
    diffs.append(shuffled[5:].mean() - shuffled[:5].mean())

היסטוגרמה של 1000 ההפרשים לאחר ערבוב, מ־-7.8 עד 7.8 שניות, כשהם מרוכזים סביב 0, עם קו אדום המציין את ההפרש האמיתי, -6.6, סמוך לקצה השמאלי

פערי המקריות מצטברים סביב 0; הפער האמיתי נמצא סמוך לקצה. זהו מבחן פרמוטציות.

לפני שסומכים על כך שמודל אחד מנצח מודל אחר, צריך לבדוק שערבוב לעיתים רחוקות יוצר פער גדול כל כך.

challenge icon

אתגר

בינוני

כלבים למדו לשבת בשתי דרכים: clicker ו-treats מכילים את האימונים של כל כלב. קוד הפתיחה יוצר את rng ואת shuffles.

  1. חשבו את ההפרש האמיתי: ממוצע treats פחות ממוצע clicker.
  2. אחדו את clicker ואז את treats; ערבבו shuffles פעמים, חלקו בנקודה len(clicker), ושמרו על אותו סדר חיסור בכל הפרש מדומה; אל תבצעו הגרלות נוספות.
  3. הדפיסו את ההפרש האמיתי, את ההפרש המדומה הראשון, את הקטן ביותר ואת הגדול ביותר, עם 2 ספרות אחרי הנקודה העשרונית.

עבור כלבים אחרים:

Real difference: 3.0
First shuffle: -1.0
Smallest shuffled: -3.33
Largest shuffled: 3.67

נסו בעצמכם

import numpy as np

# מספר אימוני האילוף שכל כלב נזקק להם כדי ללמוד "sit"
clicker = np.array([9, 12, 8, 11, 10, 7, 13])
treats = np.array([14, 11, 15, 12, 16, 13])
# אין לשנות את השורות שלמטה
rng = np.random.default_rng(12)
shuffles = 1000

# כתבו את הקוד שלכם למטה
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה סטטיסטיקה ללמידת מכונה

תרגלו בעצמכם: קומפיילר Python אונליין