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

هل يمكن أن يكون ذلك محض صدفة؟

جزء من قسم الإحصاء لتعلّم الآلة في رحلة Machine Learning على Coddy. الدرس 43 من 64.

تفوّق خمسة قرّاء لخط sans على خمسة قرّاء لخط serif بفارق 6.6 ثوانٍ. لو لم يُغيّر الخط شيئًا، لأمكن أن يقع أي وقت في أيٍّ من المجموعتين. أجرِ خلطًا لمحاكاة ذلك:

عشرة أوقات للقراءة معروضة كخلايا، خمسة بخط serif باللون الأزرق وخمسة بخط sans باللون البرتقالي. سهم يحمل التسمية rng.permutation(pooled) يؤدي إلى القيم العشر نفسها بترتيب مختلط، مقسّمة إلى مجموعة serif وهمية بمتوسط 48.4 ومجموعة sans وهمية بمتوسط 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. اطبع الفرق الفعلي، وأول فرق وهمي، وأصغر فرق وأكبر فرق، بدقتين عشريتين.

بالنسبة إلى الكلاب الأخرى:

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 عبر الإنترنت