تحجيم السمات: التطبيع والتوحيد
MinMaxScaler وStandardScaler وRobustScaler — متى تستخدم كلًّا منها ولماذا يهم ذلك.
تحجيم السمات: التطبيع والتوحيد درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
لماذا نُقيّس السمات؟
تتأثر خوارزميات كثيرة بمقدار السمة. فالسمة التي يتراوح نطاقها من 0 إلى 1,000,000 ستطغى على سمة يتراوح نطاقها من 0 إلى 1 في النماذج المعتمدة على المسافة أو التدرج. يضع التحجيم السمات ضمن نطاقات قابلة للمقارنة.
من يحتاج إلى التحجيم؟
يهم التحجيم في KNN وSVM وk-means وPCA والنماذج المعتمدة على الانحدار المتدرج، مثل الانحدار الخطي/اللوجستي والشبكات العصبية. أما النماذج القائمة على الأشجار (مثل الغابات العشوائية وgradient boosting) فهي غير متأثرة بمقياس السمات ولا تحتاج إليه.
التطبيع: MinMaxScaler
التطبيع بالحد الأدنى والحد الأقصى يعيد تحجيم كل سمة إلى نطاق ثابت، عادةً من 0 إلى 1، باستخدام (x - min) / (max - min). ويحافظ على شكل التوزيع.
from sklearn.preprocessing import MinMaxScaler
import numpy as np
X = np.array([[10.0], [20.0], [30.0], [40.0]])
scaler = MinMaxScaler()
print(scaler.fit_transform(X).ravel()) # [0. 0.333 0.667 1.]التوحيد: StandardScaler
يمنح التوحيد كل سمة متوسطًا يساوي صفرًا وتباينًا يساوي واحدًا باستخدام (x - mean) / std. والنتيجة هي درجة معيارية Z؛ إذ تتمركز القيم من دون أن تكون محصورة في نطاق محدد.
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
Xs = scaler.fit_transform(X)
print(Xs.ravel())
print(Xs.mean(), Xs.std()) # ~0 and ~1MinMax مقابل Standard
استخدم MinMax عندما تحتاج إلى نطاق محدود (مثل بكسلات الصور ومدخلات الشبكات العصبية). واستخدم Standard عندما تفترض الخوارزمية بيانات تتمركز تقريبًا حول الصفر (مثل PCA وSVM والنماذج الخطية). ويكون MinMax أكثر حساسية للقيم الشاذة.
RobustScaler للقيم الشاذة
يتمركز RobustScaler حول الوسيط ويُجري التحجيم باستخدام IQR. وبما أن كليهما يقاوم القيم الشاذة، فهو الخيار المناسب عندما تؤدي القيم المتطرفة إلى تشويه نتائج أدوات التحجيم الأخرى.
from sklearn.preprocessing import RobustScaler
Xo = np.array([[1.0], [2.0], [3.0], [4.0], [100.0]])
print(RobustScaler().fit_transform(Xo).ravel())fit مقابل transform
تتعلّم أدوات التحجيم المعلمات في fit (الحد الأدنى/الأقصى أو المتوسط/الانحراف المعياري)، وتطبّقها في transform. أما fit_transform فينفذ العمليتين في استدعاء واحد.
scaler = StandardScaler()
scaler.fit(X) # learns mean and std
Xs = scaler.transform(X) # applies themالقاعدة الذهبية: نفّذ Fit على بيانات التدريب فقط
نفّذ دائمًا fit على مجموعة التدريب، ثم لا تستخدم مع مجموعة الاختبار إلا transform بالمعلمات التي جرى تعلمها. يؤدي تنفيذ Fit على بيانات الاختبار إلى تسريب معلومات عنها إلى نموذجك.
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test) # transform only!لماذا لا ننفذ Fit على الاختبار؟
إذا أجريت التحجيم باستخدام إحصاءات تشمل مجموعة الاختبار، فسيطّلع تقييمك على معلومات لا ينبغي أن تتاح له؛ وهذا هو تسرب البيانات. وينتج عن ذلك تقديرات متفائلة وغير موثوقة للأداء.
عكس التحويل
يمكن لأدوات التحجيم عكس العملية باستخدام inverse_transform، وهو أمر مفيد لتحويل التنبؤات المحجّمة إلى وحداتها الأصلية عند إعداد التقارير.
original = scaler.inverse_transform(X_train_scaled)
# recovers the pre-scaled valuesتحجيم الهدف
عادةً ما تُحجّم السمات، لا الهدف، في التصنيف. أما في الانحدار، فقد تحجّم الهدف أيضًا، لكن تذكّر عكس التحويل للتنبؤات قبل الإبلاغ عن الأخطاء.
اختبار سريع
اختبر معرفتك بالتحجيم.
مراجعة
أدوات التحجيم:
- يهم التحجيم النماذج المعتمدة على المسافة أو التدرج؛ أما الأشجار فتتجاهله
MinMaxScaler-> نطاق محدود من 0..1؛ وStandardScaler-> متوسط صفري وتباين يساوي واحدًا- يستخدم
RobustScalerالوسيط وIQR، وهو متين أمام القيم الشاذة - نفّذ دائمًا
fit_transformعلى بيانات التدريب، وtransformفقط على بيانات الاختبار (لتجنب التسرب)
الأسئلة الشائعة
هل درس «تحجيم السمات: التطبيع والتوحيد» مجاني؟
نعم — نص درس «تحجيم السمات: التطبيع والتوحيد» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
ماذا ستتعلم في «تحجيم السمات: التطبيع والتوحيد»؟
MinMaxScaler وStandardScaler وRobustScaler — متى تستخدم كلًّا منها ولماذا يهم ذلك. تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟
لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «تحجيم السمات: التطبيع والتوحيد»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟
نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- اكتشاف القيم الشاذة وإزالتها
- ترميز المتغيرات الفئوية
- تحجيم السمات: التطبيع والتوحيد
- بناء خطوط أنابيب المعالجة المسبقة