4.4 · تعلم الآلة والذكاء الاصطناعي : scikit-learn و TensorFlow

المستوى 4 · التخصصات (الويب، البيانات، الذكاء الاصطناعي، الأتمتة)

4.4تعلم الآلة والذكاء الاصطناعي : scikit-learn و TensorFlow

الهدف: تدريب أول نموذج scikit-learn وتقييمه (fit/predict، والفصل تدريب/اختبار) — للتنبؤ انطلاقا من الأمثلة بدلا من ترميز القواعد، دون الوقوع في الفخاخ الكلاسيكية.
الوقت المقدّر: 15 دقيقة · قراءة ذاتية · إذا كان لديك 5 دقائق فقط: اقرأ «الأساسي في 30 ثانية» + المخطط.

الأساسي في 30 ثانية

  • تعلم الآلة = التعلم من الأمثلة : fit(X, y) يتعلم، وpredict يتنبأ، ونقيّم على بيانات لم تُرَ أبدا (train_test_split).
  • المسار في 5 أسطر : الفصل ← LogisticRegression أو RandomForest ← fit ← score ← مصفوفة الالتباس ؛ وخط أساس بسيط أولا.
  • منعكس نبيل : 100 % على التدريب و60 % في الإنتاج = قيّم على التدريب — فالفصل ليس اختياريا، والنموذج يتعلم التحيزات أيضا.

حالة مصغرة متسلسلة — نبيل يتنبأ بالديون غير المسددة

تطلب الإدارة من نبيل، في الجزائر : «هل يمكن رصد العملاء المعرضين لخطر عدم الدفع ؟» فبدلا من قواعد حرفية، درّب نبيل RandomForest مع scikit-learn على السجل : فصل 80/20 مع random_state لقابلية إعادة الإنتاج، وfit على التدريب، وscore على الاختبار الذي لم يُرَ أبدا. أول تقييم على التدريب : 100 % — وهمي ؛ وعلى الاختبار : 82 % — صادق. وسلّم خط أساس مفيدا وموثقا، مع تنقيح للتحيزات قبل أي قرار. رابع محطة في الخيط الرابط : من المحلل الذي يصف إلى النموذج الذي يتنبأ — بحذر.

تتمة حالات 4.1-4.3 — نبيل يتنبأ انطلاقا من بياناته التاريخية.

1. التعلم من الأمثلة + الفصل المقدس

يستبدل تعلم الآلة (machine learning) القواعد المرمزة يدويا بقاعدة متعلمة من أمثلة موسومة : fit(X, y) يدرّب، وpredict يتنبأ على الجديد. والقاعدة الذهبية : التقييم على بيانات لم تُرَ أبدا مع train_test_split — وإلا قسنا الذاكرة لا التعلم. وتعلمها نبيل على حسابه : 100 % على التدريب، و82 % على الاختبار — فالرقم الثاني وحده يهم. وrandom_state المثبت = نتيجة قابلة لإعادة الإنتاج.

2. scikit-learn أولا، والتعلم العميق بعد ذلك

تغطي scikit-learn ثمانين % من الحاجات المهنية الجدولية دون GPU : LogisticRegression وRandomForestClassifier، وواجهة واحدة fit/predict/score، ومصفوفة التباس لقراءة الأخطاء. وخط أساس بسيط أولا، ولا نعقد إلا إن فشل البسيط. ويدخل التعلم العميق (deep learning) (TensorFlow و PyTorch وشبكات الخلايا العصبية و GPU) للصور والنص والصوت — مع القاعدة الذهبية : الانطلاق من نماذج مدربة مسبقا (Hugging Face) وتعديلها، أبدا من الصفر. والأخلاق : فالنموذج يتعلم أحكام البيانات المسبقة — وينقح نبيل التحيزات قبل أي قرار مؤتمت.

خطأ شائع في الفهم: «دقة 100 %، نموذجي مثالي». خطأ. فمقيّما على بيانات التدريب، تقيس 100 % الذاكرة — إذ حفظ النموذج الأمثلة عن ظهر قلب. فالدرجة على بيانات لم تُرَ أبدا (الاختبار) وحدها تقول إن كان تعلم قاعدة. و100 % على التدريب إشارة إنذار لا انتصار.
مسار تعلم الآلة في 5 أوقات الفصل ← النموذج ← التدريب ← الدرجة ← التنقيح الفصل 80/20 اختبار لم يُرَأبدا، وrandom_state مثبتنموذج بسيط خط الأساس :RandomForest و Logitالتدريب (Fit) يتعلم علىالتدريب وحدهالدرجة (Score) قيّم علىالاختبار + الالتباسالتنقيح التحيزات والحدودوالقرار البشري
الفصل ← النموذج ← التدريب ← الدرجة ← التنقيح
نص المخطط (SEO / قارئات الشاشة / الترجمة): 1) يفصل نبيل بياناته : 80 % للتعلم، و20 % لم تُرَ أبدا للتقييم. 2) يختار خط أساس بسيطا (RandomForest). 3) يتعلم fit على التدريب وحده. 4) تقيس score على الاختبار + مصفوفة الالتباس. 5) ينقح التحيزات والحدود قبل القرار. الدرس : خط الأساس أولا، والفصل دائما، والمدربة مسبقا للعميق.

🔎 مثال ملموس — 🔎 مثال ملموس — خط أساس نبيل

المسار الكامل، مع الواجهات الحقيقية لـ scikit-learn :

Xtr, Xte, ytr, yte = train_test_split(X, y, test_size=0.2, random_state=0)
modele = RandomForestClassifier().fit(Xtr, ytr)  # يتعلم
print(modele.score(Xte, yte))  # ~0.96 : مقيَّم على بيانات لم تُرَ
القاعدة ← 100 % على التدريب + 60 % في الإنتاج = تسرب الفصل

القراءة : الفصل والتدريب والدرجة — ثلاثة أسطر، وصفر سحر.

الدرس : random_state = نتيجة قابلة لإعادة الإنتاج والنقاش.

مفردات القسم

تعلم الآلة (machine learning)
تعلم قاعدة من أمثلة موسومة (fit) ثم التنبؤ على الجديد (predict)، بدلا من ترميز القواعد يدويا.

مثال بسيط: يتنبأ نبيل بالديون غير المسددة من السجل بدلا من عتبات حرفية.

ما ليس كذلك: قواعد إذا/إذن مرمزة واحدة واحدة.

رد فعل: بيانات موسومة بكمية ؟ فكر في تعلم الآلة.

الفصل تدريب/اختبار (train/test split)
فصل البيانات : التعلم على التدريب، والتقييم على الاختبار الذي لم يُرَ أبدا — وإلا قسنا الذاكرة لا التعلم.

مثال بسيط: نبيل : 100 % على التدريب (ذاكرة)، و82 % على الاختبار (الواقع).

ما ليس كذلك: تقييم النموذج على أمثلة تدريبه نفسها.

رد فعل: فصل منهجي، وrandom_state مثبت.

scikit-learn (fit/predict)
مكتبة تعلم الآلة الجدولية المثالية للبدء : واجهة وحيدة fit/predict/score، ودون GPU، وخط أساس في 5 أسطر.

مثال بسيط: RandomForest نبيل في ثلاثة أسطر : الفصل والتدريب والدرجة.

ما ليس كذلك: شبكة خلايا عصبية بـ GPU لجدول عملاء.

رد فعل: خط أساس بسيط أولا، وعقّد عند الحاجة.

التعلم العميق / المدربة مسبقا
شبكات الخلايا العصبية (TensorFlow و PyTorch و GPU) للصور/النص/الصوت ؛ وننطلق من نماذج مدربة مسبقا نعدلها، أبدا من الصفر.

مثال بسيط: سيضيف نبيل نموذجا مدربا مسبقا لقراءة آراء العملاء، لا شبكة منزلية.

ما ليس كذلك: تدريب عملاق من الصفر على حاسوبه المحمول.

رد فعل: صورة/نص/صوت ؟ مدرب مسبقا + تعديل.

في التطبيق — عمليا — تدريب خط أساس

  1. حمّل مجموعة جدولية موسومة (مثلا load_iris أو بياناتك التاريخية المنظفة).
  2. افصل مع train_test_split (test_size=0.2 و random_state مثبت) : ويبقى الاختبار سليما حتى التقييم.
  3. درّب خط أساس (LogisticRegression أو RandomForestClassifier) : fit على التدريب وحده.
  4. قيّم على الاختبار (الدرجة + مصفوفة الالتباس)، وقارن مع درجة التدريب، ودوّن التحيزات والحدود قبل أي قرار.
تدرّب خط أساس وتقيّمه بأمانة : رقم على بيانات لم تُرَ، وأخطاء مقروءة، وحدود معترف بها.

نص جاهز للقول — عرض نموذجه (30 ثانية)

«معكم نبيل : خط أساس RandomForest، بـ 82 % على بيانات لم تُرَ أبدا — لا 100 % على التدريب، فتلك ذاكرة. مصفوفة الالتباس مقروءة، والتحيزات منقحة : فالنموذج يساعد القرار، ولا يعوضه.»

يُقال في اللجنة ؛ واعرض المصفوفة لا الدرجة فقط.

نموذج نسخ-لصق — خط أساس scikit-learn (كود مختبر)

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import confusion_matrix

X, y = load_iris(return_X_y=True)
Xtr, Xte, ytr, yte = train_test_split(X, y, test_size=0.2, random_state=0)

modele = RandomForestClassifier(random_state=0)
modele.fit(Xtr, ytr)  # يتعلم على التدريب وحده

print("train :", modele.score(Xtr, ytr))  # حفظ (مرجع)
print("test  :", modele.score(Xte, yte))  # تعلم (الرقم الحقيقي)
print(confusion_matrix(yte, modele.predict(Xte)))

نموذج أول

مجموعة بسيطة (iris) وخط أساس وفصل : افهم fit/predict قبل لمس بياناتك.

بيانات جدولية

مثل نبيل : تكفي scikit-learn في 80 % من الحالات المهنية — دون GPU ولا تعلم عميق.

صورة أو نص

انتقل إلى TensorFlow/PyTorch عبر نماذج مدربة مسبقا تُعدَّل، أبدا مدربة من الصفر.

قرار حساس

الائتمان والتوظيف والصحة : نقّح التحيزات، وأبق الإنسان مقررا، ووثّق الحدود.

حذر: النموذج يتعلم أيضا أحكام بياناته المسبقة : نقّح التحيزات قبل أي قرار مؤتمت وأبق البيانات الشخصية خارج المجموعات المشتركة. محتوى تعليمي، وأمثلة ببيانات وهمية.

✓ ممارسات جيدة

  • الفصل دائما : قيّم على بيانات لم تُرَ.
  • خط أساس بسيط أولا، وعقّد عند الحاجة.
  • نقّح التحيزات والحدود قبل القرار.

✗ أخطاء شائعة

  • التقييم على التدريب (100 % وهمية).
  • إخراج التعلم العميق لجدول.
  • تجاهل التحيزات المتعلمة من البيانات.

النقاط الأساسية

  • تعلم الآلة = أنماط متعلمة من الأمثلة (fit ← predict)، لا قواعد مرمزة.
  • واجهة SKLEARN : fit()/predict()/score() ؛ والفصل تدريب/اختبار إجباري.
  • خط الأساس البسيط أولا (Logit و RandomForest) : ثمانون % من المهني دون GPU.
  • العميق = شبكات الخلايا العصبية (صور/نص) عبر المدربة مسبقا ؛ والتحيزات تُنقَّح.

تحدي 48 ساعة — طبق غدا

درّب خط أساس واحدا على مجموعة جدولية : فصل 80/20 وfit ودرجة الاختبار + مصفوفة التباس مقروءة ومعلقة.

قائمة الخروج من القسم
  • أستطيع ذكر fit/predict والفصل تدريب/اختبار.
  • أعرف شرح فخ 100 % على التدريب.
  • عندي خط أساس مقيَّم على بيانات لم تُرَ.
تقييم ذاتي 1-5 : هل تقييمي على بيانات لم تُرَ ؟هل قرأت أخطائي بدلا من الدرجة وحدها ؟

أسئلة شائعة

هل تلزم الرياضيات قبل تعلم الآلة ؟

لا لخط أساس scikit-learn أول : فالمسار (الفصل والتدريب والدرجة) يُتعلم بالممارسة. ونعم بعد ذلك : فالإحصاء والجبر لاختيار نموذج وضبط معاملاته وفهم أخطائه. يتقدم نبيل مرحلة مرحلة : خط أساس مفيد أولا، والنظرية مع الحدود المصادفة.

scikit-learn أم TensorFlow للبدء ؟

scikit-learn دون تردد : جدولي وCPU وواجهة وحيدة ونتائج في 5 أسطر — ثمانون % من الحاجات المهنية. وTensorFlow أو PyTorch بعد ذلك، للصور والنص والصوت عبر نماذج مدربة مسبقا تُعدَّل. فالتعلم العميق لجدول عملاء شاحنة لتوصيل رسالة.

تحقّق من فهمك

أي مكتبة للبدء في تعلم الآلة ؟

موارد إضافية (اختياري، للتعمّق أكثر)

اختبار المستوى 4أسئلة جديدة وأصعب للتحقق من مكتسباتك