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

التوحيد القياسي

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

تتعلّم العديد من النماذج بأفضل صورة عندما تكون قيمة كل سمة متمركزة حول 0 وبانحراف معياري قدره 1. يحقق التوحيد القياسي ذلك: إذ تصبح كل قيمة درجة z الخاصة بها ضمن عمودها.

خمسة قرعيات، الوزن بالكيلوغرام والعرض بالسنتيمتر:

صفّان من النقاط على مسطرة واحدة بوحدات الانحراف المعياري: أوزان خمس قرعيات من 8 إلى 40 كغ، وعروض خمس قرعيات من 30 إلى 65 سم، وكل صف متمركز حول متوسطه عند 0، وجميعها بين -1.6 و1.6

تُوحِّد عملية البث القياس لكل عمود دفعةً واحدة:

pumpkins = np.array([[30, 60],
                     [8, 30],
                     [22, 55],
                     [40, 65],
                     [15, 40]])
z = (pumpkins - pumpkins.mean(axis=0)) / pumpkins.std(axis=0)
print(np.round(z.mean(axis=0), 2))
print(np.round(z.std(axis=0), 2))

يطبع هذا:

[0. 0.]
[1. 1.]

قرّب قبل أن تتحقق: قد تُطبع قيمة متوسط تساوي 0 قبل التقريب على شكل 2.22044605e-17، وهو أثر ضئيل لخطأ التقريب.

على عكس التطبيع بالحد الأدنى والأقصى، لا يوجد نطاق ثابت: تقع معظم القيم بين -2 و2.

challenge icon

التحدي

متوسط

ترصد مزرعة ألبان أبقارًا غير مألوفة. كل صف في cows يمثل بقرة: الحليب (لترات في اليوم)، والوزن (كغ)، والعمر (سنوات)، والمُسماة في features. يقرأ البرنامج موضع بقرة k.

  1. أكمل standardize(X). ثم تطبع أسطر التحقق [0. 0. 0.] و[1. 1. 1.].
  2. اعثر على الدرجة المعيارية z للبقرة k الأبعد عن 0، مع تجاهل الإشارة، واطبعها كما هو موضح أدناه، بمنزلتين عشريتين.

لبقرة في مزرعة أخرى:

Column means: [0. 0. 0.]
Column stds: [1. 1. 1.]
Cow 2 stands out by weight: 1.76 std above the herd

جرّب بنفسك

import numpy as np

features = ["milk", "weight", "age"]
# صف واحد لكل بقرة: الحليب باللترات يوميًا، والوزن بالكيلوغرام، والعمر بالسنوات
cows = np.array([[28, 610, 6],
                 [22, 540, 3],
                 [35, 680, 6],
                 [31, 590, 9],
                 [19, 650, 4],
                 [26, 520, 2],
                 [30, 600, 7]])
k = int(input())


# تعيد X بعد توحيد قيم كل عمود: المتوسط 0 والانحراف المعياري 1
def standardize(X):
    # استبدل السطر أدناه بعملية توحيد القيم
    return X


# لا تغيّر الأسطر الثلاثة أدناه: فهي تختبر دالتك
z = standardize(cows)
print("Column means:", np.round(z.mean(axis=0), 2))
print("Column stds:", np.round(z.std(axis=0), 2))

# اكتب شيفرتك أدناه: ما الذي يميز البقرة k؟
quiz iconاختبر نفسك

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

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

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