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

التباين والانحراف المعياري

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

.std() هو المسافة المعتادة عن المتوسط. وهنا حُسب يدويًا لخمس جرعات إسبريسو:

خمس جرعات إسبريسو ممثلة بنقاط حول خط متوسط برتقالي عند 26 ثانية. يصل كل نقطة بالخط مسمار رمادي، وعليه انحرافها: -2، +1، -1، +4 و-2

كل فرق عن المتوسط هو انحراف. تتلاشى الانحرافات ويكون مجموعها 0، لذا ربّعها ثم احسب متوسطها: وهذا هو التباين.

shots = np.array([24, 27, 25, 30, 24])
deviations = shots - shots.mean()
variance = (deviations ** 2).mean()
print(deviations)
print(variance, np.round(np.sqrt(variance), 2))

يطبع هذا:

[-2.  1. -1.  4. -2.]
5.2 2.28

يعيد جذره التربيعي، الانحراف المعياري، الثوانيَ المربعة إلى ثوانٍ: 2.28. تنفّذ np.var(a) وnp.std(a) كلٌّ منهما ذلك باستدعاء واحد.

الميزة التي يكون انحرافها المعياري 0 لا تتغير أبدًا، لذا فهي لا تخبر النموذج بأي شيء.

challenge icon

التحدي

سهل

يفحص ضبط الجودة مدى انتظام آلة في ملء زجاجات العصير. يقرأ البرنامج الابتدائي ستة أحجام بالملليلتر ويطبع ما تُرجعه spread_by_hand(a)، إلى جانب np.std. أكمل هذه الدالة بحيث تُرجع:

  1. التباين: متوسط مربعات الانحرافات عن متوسط a،
  2. الانحراف المعياري، وهو الجذر التربيعي له.

للأحجام 1004 و996 و1011 و993 و1002 و998:

Variance: 34.56 ml squared
Std: 5.88 ml
Same as np.std: True

جرّب بنفسك

import numpy as np

values = []
for i in range(6):
    values.append(int(input()))
volumes = np.array(values)


# تعيد التباين والانحراف المعياري للمصفوفة a
def spread_by_hand(a):
    # اكتب الكود هنا، ثم أعد القيمتين بدلًا من 0, 0
    return 0, 0


# لا تغيّر الأسطر أدناه
variance, std = spread_by_hand(volumes)
print(f"Variance: {np.round(variance, 2)} ml squared")
print(f"Std: {np.round(std, 2)} ml")
print("Same as np.std:", np.round(std, 2) == np.round(np.std(volumes), 2))
quiz iconاختبر نفسك

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

جميع دروس الإحصاء لتعلّم الآلة

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