StandardScaler
جزء من قسم الإحصاء لتعلّم الآلة في رحلة Machine Learning على Coddy. الدرس 50 من 64.
يجب أن يوسّع النموذج نطاق كل عيّنة جديدة بالطريقة نفسها التي وسّع بها نطاق بيانات التدريب. تقوم StandardScaler من scikit-learn بالتوحيد القياسي وتحتفظ بمعلومات عن الطريقة:
في الشيفرة، كل مهمة لها عدد النوافذ التي تم تنظيفها والدقائق المستغرقة:
from sklearn.preprocessing import StandardScaler
X_train = np.array([[2, 8], [10, 25], [6, 20], [14, 35]])
scaler = StandardScaler()
scaler.fit(X_train)
X_new = np.array([[8, 30]]) # عينة واحدة: جدول بصف واحد
print(np.round(scaler.transform(X_new), 2))يطبع هذا:
[[0. 0.82]]تتعلّم fit متوسط كل عمود وانحرافه المعياري (بالقسمة على n، كما في np.std)، وتُحفَظ القيمتان في scaler.mean_ وscaler.scale_. وتطبّقهما transform.
لا تُجرِ الملاءمة على بيانات جديدة أبدًا: فسيكون متوسطها هو متوسطها الخاص، وستصبح [[0. 0.]]. على بيانات التدريب، تنفّذ fit_transform الأمرين معًا في استدعاء واحد.
التحدي
متوسطتعلّم فرّازٌ من حبات الأفوكادو في X_train: الوزن والصلابة وعدد الأيام منذ الحصاد. يقرأ البرنامج حبة أفوكادو جديدة في الجدول ذي الصف الواحد new_avocado، لكن التحجيم في البرنامج الابتدائي يطبع [[0. 0. 0.]] لكل حبة أفوكادو.
- أصلح ذلك: قم بتحجيم حبة الأفوكادو الجديدة باستخدام متوسطات التدريب وانحرافاته المعيارية.
- احسب عدد قياساتها التي تبعد أكثر من 2 انحراف معياري عن متوسط التدريب، في أي من الاتجاهين، واطبع النتيجة كما هو موضح أدناه.
لدفعة أخرى:
New avocado: [[2.98 0. 0.09]]
1 of 3 measurements are more than 2 std from the training avocadosجرّب بنفسك
import numpy as np
from sklearn.preprocessing import StandardScaler
# أفوكادو التدريب، صف واحد لكل حبة: الوزن بالغرامات، الصلابة من 1 إلى 10، والأيام منذ الحصاد
X_train = np.array([[210, 8, 2],
[185, 5, 6],
[240, 7, 3],
[170, 3, 9],
[225, 6, 5],
[195, 4, 7]])
# حبة أفوكادو جديدة على السير الناقل
weight = float(input())
firmness = float(input())
days = float(input())
new_avocado = np.array([[weight, firmness, days]])
# يطبع هذا [[0. 0. 0.]] لكل حبة أفوكادو: أصلحه
scaler = StandardScaler()
scaled = scaler.fit_transform(new_avocado)
print("New avocado:", np.round(scaled, 2))
# اكتب الكود الخاص بك أدناه
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الإحصاء لتعلّم الآلة
1المركز والتشتت
المتوسط والوسيطالمئينات والربيعاتالتباين والانحراف المعياريعينة أم مجتمع؟القيمة الأكثر شيوعًامراجعة: أوقات التسليم4العينات والمجتمعات الإحصائية
المجتمع والعينةتختلف متوسطات العيناتتوزيع المعاينةعينات أكبر، ضوضاء أقلمراجعة: استطلاع آراء بلدة2التوزيعات
مدرجات التكرار للكثافةأشكال البياناتالمنحنى الطبيعيقاعدة 68-95-99.7الدرجات المعيارية Zمراجعة: عمر البطارية5القيم المتطرفة
المخططات الصندوقيةقاعدة المدى الربيعي (IQR)قاعدة الدرجة المعيارية (Z-Score)التعامل مع القيم المتطرفةمراجعة: أعطال المستشعرات8مقارنة المجموعات
مخططات الصندوق حسب المجموعةالفرق بين المتوسطاتهل يمكن أن يكون ذلك محض صدفة؟القيم الاحتمالية (P-Values)اختبار tمراجعة: اختبار A/B11استكشاف مجموعة بيانات
نظرة أولىجميع السمات دفعة واحدةالسمات مقابل الوسمأفضل سمتينمراجعة: بيانات السكري3الاحتمالات بالمحاكاة
الاحتمال بوصفه تكرارًاقانون الأعداد الكبيرةمجاميع رميات النردالقيمة المتوقعةالاحتمال الشرطيمراجعة: احتمالات كشك النرد6العلاقات
قراءة المخططات المبعثرةالارتباطمصفوفة الارتباطخرائط الارتباط الحراريةالارتباط لا يعني السببيةمراجعة: الآيس كريم والشمس9تحجيم الميزات
لماذا نُحجِّم الميزات؟التحجيم من الحد الأدنى إلى الأقصىالتوحيد القياسيStandardScalerمراجعة: شركاء التسلقتدرّب بنفسك: مترجم Python عبر الإنترنت