0Pricing
Learn AI with Python · درس

بناء خطوط أنابيب المعالجة المسبقة

استخدام sklearn Pipeline وColumnTransformer ودمج المحوّلات لسير عمل معالجة مسبقة منظم.

بناء خطوط أنابيب المعالجة المسبقة درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 4 دروس في المجموع.

لماذا نستخدم المسارات؟

يربط Pipeline في scikit-learn خطوات المعالجة المسبقة والنموذج في كائن واحد. ويضمن تطبيق التحويلات نفسها على بيانات التدريب والاختبار، مما يمنع التسرب ويجنبك الشيفرة المعقدة.

مسار أساسي

يستقبل Pipeline قائمة من أزواج (الاسم، الخطوة). وعند استدعاء fit، تُنفّذ كل خطوة بالترتيب؛ وتكون الخطوة الأخيرة عادةً مقدِّرًا.

from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression

pipe = Pipeline([
    ("scale", StandardScaler()),
    ("model", LogisticRegression()),
])

fit و predict لمسار المعالجة بالكامل

تعامل مع المسار كما لو كان نموذجًا واحدًا. يتعلم fit أداة التحجيم ويدرّب النموذج؛ ويطبق predict أداة التحجيم ثم النموذج تلقائيًا وبصورة متسقة.

pipe.fit(X_train, y_train)
preds = pipe.predict(X_test)   # scaling applied automatically

لا تسرب بحكم التصميم

بما أن المسار لا يدرّب أداة التحجيم إلا أثناء fit (على بيانات التدريب)، ولا ينفذ سوى التحويل أثناء predict، فإنه يلغي تلقائيًا خطأ التدريب على بيانات الاختبار.

أنواع الأعمدة المختلطة

تجمع مجموعات البيانات الواقعية بين أعمدة رقمية وفئوية تحتاج إلى معالجة مسبقة مختلفة. يطبق ColumnTransformer أداة تحويل مختلفة على كل مجموعة فرعية من الأعمدة.

ColumnTransformer

مرّر أزواجًا من الشكل (الاسم، أداة التحويل، الأعمدة). تُحجّم الأعمدة الرقمية، وتُرمّز الأعمدة الفئوية باستخدام one-hot، وكل ذلك في خطوة واحدة.

from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder

pre = ColumnTransformer([
    ("num", StandardScaler(), ["age", "income"]),
    ("cat", OneHotEncoder(handle_unknown="ignore"), ["city"]),
])

التضمين في مسار معالجة كامل

ضع ColumnTransformer بوصفه الخطوة الأولى في Pipeline، ثم أتبعه بالنموذج، لتحصل على سير عمل كامل خالٍ من التسرب.

full = Pipeline([
    ("prep", pre),
    ("model", LogisticRegression()),
])
full.fit(X_train, y_train)

التعامل مع القيم المفقودة ضمن خطوة

أضف SimpleImputer داخل فرع الأعمدة الرقمية (وغالبًا ما يكون هذا الفرع نفسه مسارًا صغيرًا) لملء القيم المفقودة قبل التحجيم، مع إبقاء كل شيء داخل المسار.

from sklearn.impute import SimpleImputer
num_pipe = Pipeline([
    ("impute", SimpleImputer(strategy="median")),
    ("scale", StandardScaler()),
])

fit_transform على التدريب وtransform على الاختبار

تنطبق القاعدة الذهبية نفسها على مسار المعالجة بالكامل: فهو يتعلم كل معلمة من بيانات التدريب أثناء fit، ثم لا يحوّل بيانات الاختبار إلا أثناء predict أو transform.

full.fit(X_train, y_train)        # learns imputer, scaler, encoder, model
full.predict(X_test)              # transform-only path

حفظ مسار المعالجة

احفظ مسار المعالجة المدرَّب بالكامل، بما في ذلك المعالجة المسبقة والنموذج، على القرص باستخدام joblib. وعند تحميله لاحقًا، يطبق المعالجة المسبقة نفسها في بيئة الإنتاج من دون الحاجة إلى إعادة تنفيذ خطوات يدوية.

import joblib
joblib.dump(full, "model.joblib")
loaded = joblib.load("model.joblib")
loaded.predict(X_new)   # same preprocessing guaranteed

لماذا يهم ذلك في بيئة الإنتاج؟

يعني حفظ مسار المعالجة أن النموذج المنشور يعالج البيانات الواردة بالضبط كما عولجت أثناء التدريب. ويُعد هذا الاتساق أكبر وسيلة دفاع ضد أخطاء اختلاف المعالجة بين التدريب والخدمة.

اختبار سريع

اختبر معرفتك بمسارات المعالجة.

مراجعة

أدوات مسارات المعالجة:

  • يربط Pipeline المعالجة المسبقة والنموذج في كائن واحد للتدريب والتنبؤ
  • لا يحدث تسرب: تُتعلّم المعلمات أثناء fit وتُطبّق أثناء predict
  • يتعامل ColumnTransformer مع الأعمدة الرقمية والفئوية المختلطة
  • يُستخدم SimpleImputer للقيم المفقودة داخل المسار
  • احفظ المسار باستخدام joblib لضمان معالجة مسبقة متسقة في بيئة الإنتاج

الأسئلة الشائعة

هل درس «بناء خطوط أنابيب المعالجة المسبقة» مجاني؟

نعم — نص درس «بناء خطوط أنابيب المعالجة المسبقة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 4 دروس في المجموع.

ماذا ستتعلم في «بناء خطوط أنابيب المعالجة المسبقة»؟

استخدام sklearn Pipeline وColumnTransformer ودمج المحوّلات لسير عمل معالجة مسبقة منظم. تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟

لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «بناء خطوط أنابيب المعالجة المسبقة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟

نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. اكتشاف القيم الشاذة وإزالتها
  2. ترميز المتغيرات الفئوية
  3. تحجيم السمات: التطبيع والتوحيد
  4. بناء خطوط أنابيب المعالجة المسبقة
← العودة إلى Learn AI with Python