شرح مادة عال 462 (CSC 462) تعلم الالة - جامعة الملك سعود

فريق زدني فريق زدني 14 مارس 2026
9 دقائق للقراءة
شرح مادة عال 462 (CSC 462) تعلم الالة - جامعة الملك سعود

مادة عال 462 (CSC 462)، تعلم الالة (Machine Learning)، من اقوى المواد المتقدمة في قسم علوم الحاسب بجامعة الملك سعود. هذي المادة تعلّمك كيف تخلي الكمبيوتر يتعلم من البيانات بدل ما تبرمج كل قاعدة يدويا. تخيّل انك تبني نظام يكشف الايميلات المزعجة (spam) تلقائيا، او يتوقع سعر بيت بناء على مساحته وموقعه، او يقسّم العملاء لمجموعات عشان تستهدف كل مجموعة بعرض مختلف. كل هذي تطبيقات تعلم الالة.

المادة تبني على اساسيات قوية: لازم تكون فاهم خوارزميات من عال 311، وعندك خلفية كويسة في الاحصاء والاحتمالات. لو اساسياتك في بايثون والرياضيات قوية، عال 462 راح تكون من امتع المواد اللي تدرسها.

📋 ملخص سريع

  • رمز المادة: عال 462 (CSC 462): تعلم الالة (Machine Learning)
  • الساعات المعتمدة: 3 ساعات
  • المتطلب السابق: عال 311 تصميم وتحليل الخوارزميات + اساسيات الاحصاء والاحتمالات
  • اللغة المستخدمة: Python (مكتبات scikit-learn, NumPy, pandas)
  • المواضيع الرئيسية: الانحدار الخطي واللوجستي، اشجار القرار، KNN، SVM، الشبكات العصبية، K-Means، PCA، تقييم النماذج، التنظيم (Regularization)
  • الكتب المرجعية: Introduction to Machine Learning with Python (Muller & Guido)، Pattern Recognition and Machine Learning (Bishop)
  • يقود الى: مشاريع التخرج في الذكاء الاصطناعي، مسارات علم البيانات والتعلم العميق

ليش عال 462 مادة مهمة في مسارك؟

سوق العمل اليوم يطلب مهندسين يفهمون تعلم الالة بشكل متزايد. الشركات السعودية الكبرى مثل STC و Aramco و SDAIA كلها تبحث عن خريجين عندهم خبرة في هذا المجال. وهذي المادة تحديدا تفتح لك ابواب كثيرة:

  • وظائف عالية الطلب: مهندس تعلم الالة (ML Engineer) وعالم بيانات (Data Scientist) من اعلى الوظائف رواتب في السعودية
  • مشاريع التخرج: كثير من المشاريع المميزة تعتمد على تعلم الالة، سواء في الرؤية الحاسوبية او معالجة اللغات الطبيعية
  • رؤية 2030: التحول الرقمي في المملكة يعتمد بشكل كبير على تقنيات الذكاء الاصطناعي وتعلم الالة
  • البحث العلمي: لو تفكر تكمل ماجستير او دكتوراه، هذي المادة اساس لمعظم ابحاث الذكاء الاصطناعي

لو تبي تبني خلفية اقوى عن الذكاء الاصطناعي بشكل عام، راجع مقدمة في الذكاء الاصطناعي.

ℹ️ الفرق بين البرمجة التقليدية وتعلم الالة

في البرمجة التقليدية، انت تكتب القواعد: “لو الايميل فيه كلمة مجانا + رابط مشبوه = spam”. في تعلم الالة، الكمبيوتر يستنتج القواعد بنفسه من بيانات قديمة. انت تعطيه الاف الايميلات (spam وغير spam) وهو يكتشف الانماط تلقائيا. كل ما زادت البيانات، زادت دقته.

انواع تعلم الالة الثلاثة

قبل ما ندخل في الخوارزميات، لازم تفهم التصنيف الرئيسي لانواع التعلم لان كل نوع يناسب مشاكل مختلفة:

1. التعلم الموجّه (Supervised Learning)

تعطي النموذج بيانات مع الاجابات الصحيحة (labels) وهو يتعلم العلاقة بينها. مثال: تعطيه صور قطط وكلاب مع تصنيف كل صورة، وهو يتعلم يفرّق بينهم.

  • التصنيف (Classification): الناتج فئة محددة (spam / not spam، مريض / سليم)
  • الانحدار (Regression): الناتج رقم مستمر (سعر بيت، درجة حرارة)

2. التعلم غير الموجّه (Unsupervised Learning)

تعطي النموذج بيانات بدون اجابات وهو يكتشف الانماط والمجموعات بنفسه. مثال: تعطيه بيانات عملاء متجر الكتروني وهو يقسّمهم لمجموعات (عملاء كثيري الشراء، عملاء موسميين، عملاء جدد).

  • التجميع (Clustering): تجميع البيانات المتشابهة
  • تقليل الابعاد (Dimensionality Reduction): ضغط البيانات مع الحفاظ على المعلومات المهمة

3. التعلم المعزز (Reinforcement Learning)

النموذج يتعلم بالتجربة والخطا. ياخذ قرارات ويحصل على مكافاة او عقوبة. بعد فترة يتعلم الاستراتيجية المثلى. مثال: تعليم روبوت يمشي، او بناء ذكاء اصطناعي يلعب شطرنج.

1. الانحدار الخطي (Linear Regression)

الانحدار الخطي ابسط خوارزمية في تعلم الالة واكثرها استخدام. الفكرة: تحاول ترسم خط مستقيم يمثّل العلاقة بين المتغيرات.

مثال عملي: تبي تتوقع سعر بيت بناء على مساحته. عندك بيانات 100 بيت (المساحة + السعر الفعلي). الانحدار الخطي يلاقي الخط اللي يقلل الفرق بين التوقع والسعر الحقيقي.

المعادلة

المعادلة الاساسية بسيطة: y = w * x + b

  • y: القيمة المتوقعة (سعر البيت)
  • x: المدخل (المساحة)
  • w: الوزن (الميل - كم يتغير السعر مع كل متر مربع)
  • b: الانحياز (التقاطع مع المحور)

تطبيق عملي بـ scikit-learn

from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
import numpy as np

# بيانات: المساحة بالمتر المربع والسعر بالريال
X = np.array([[80], [100], [120], [150], [200], [250], [300]])
y = np.array([400000, 500000, 580000, 720000, 950000, 1200000, 1450000])

# تقسيم البيانات لتدريب واختبار
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.3, random_state=42
)

# بناء النموذج وتدريبه
model = LinearRegression()
model.fit(X_train, y_train)

# توقع سعر بيت مساحته 180 متر
predicted = model.predict([[180]])
print(f"السعر المتوقع: {predicted[0]:,.0f} ريال")
print(f"دقة النموذج: {model.score(X_test, y_test):.2%}")

💡 متى تستخدم الانحدار الخطي؟

استخدمه لما تكون العلاقة بين المتغيرات خطية تقريبا (يعني تزيد بشكل منتظم). لو العلاقة منحنية او معقدة، الانحدار الخطي ما راح يعطيك نتائج دقيقة وتحتاج خوارزميات اقوى مثل Random Forest او الشبكات العصبية.

2. الانحدار اللوجستي (Logistic Regression)

رغم ان اسمه فيه “انحدار”، الانحدار اللوجستي يستخدم للتصنيف مو الانحدار. بدل ما يتوقع رقم، يتوقع احتمال ان العنصر ينتمي لفئة معينة (بين 0 و 1).

مثال عملي: كشف الايميلات المزعجة. النموذج ياخذ خصائص الايميل (عدد الكلمات، وجود روابط، كلمات معينة) ويعطيك احتمال انه spam. لو الاحتمال اكثر من 0.5، يصنّفه spam.

from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score

# بيانات ايميلات: [عدد الروابط، عدد كلمات مشبوهة، طول الايميل]
X_train = [[5, 3, 50], [0, 0, 200], [8, 5, 30],
           [1, 0, 150], [10, 7, 20], [0, 1, 300]]
y_train = [1, 0, 1, 0, 1, 0]  # 1 = spam, 0 = ليس spam

# تدريب النموذج
clf = LogisticRegression()
clf.fit(X_train, y_train)

# اختبار على ايميل جديد
new_email = [[6, 4, 40]]
result = clf.predict(new_email)
prob = clf.predict_proba(new_email)
print(f"التصنيف: {'spam' if result[0] == 1 else 'ليس spam'}")
print(f"الاحتمال: {prob[0][1]:.2%}")

3. اشجار القرار و Random Forest

اشجار القرار (Decision Trees)

شجرة القرار تشتغل بنفس طريقة تفكيرك: سلسلة من الاسئلة بنعم/لا توصلك للقرار النهائي. كل عقدة في الشجرة تسال سؤال عن خاصية معينة، والاجابة تحدد المسار التالي.

مثال: تبي تقرر هل تروح الجامعة اليوم ولا لا؟ هل فيه محاضرة مهمة؟ نعم -> هل الجو ممطر بقوة؟ لا -> روح. هذا بالضبط منطق شجرة القرار.

Random Forest

المشكلة في شجرة قرار واحدة انها ممكن تكون حساسة جدا للبيانات (overfitting). الحل: Random Forest يبني عشرات او مئات الاشجار، كل شجرة تتدرب على عينة مختلفة من البيانات، والقرار النهائي يكون بالتصويت بين كل الاشجار.

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

# تحميل بيانات الزهور (مثال كلاسيكي)
data = load_iris()
X_train, X_test, y_train, y_test = train_test_split(
    data.data, data.target, test_size=0.3, random_state=42
)

# بناء نموذج Random Forest بـ 100 شجرة
rf = RandomForestClassifier(n_estimators=100, random_state=42)
rf.fit(X_train, y_train)

# تقييم الدقة
accuracy = rf.score(X_test, y_test)
print(f"دقة النموذج: {accuracy:.2%}")

واجب Decision Trees او Random Forest صعب عليك؟

كثير من طلاب عال 462 يحتاجون مساعدة في فهم كيف الشجرة تختار افضل تقسيم وكيف يشتغل التصويت في Random Forest. ارسل لنا السؤال ونشرح لك خطوة بخطوة مع كود بايثون.

ارسل واجبك على واتساب

4. K-Nearest Neighbors (KNN)

خوارزمية KNN من ابسط خوارزميات التصنيف. الفكرة: لما يجيك عنصر جديد تبي تصنّفه، شوف اقرب K جيران له في البيانات، وصنّفه بنفس تصنيف الاغلبية.

مثال: عندك بيانات مرضى (ضغط الدم + مستوى السكر) مع تشخيص (مريض / سليم). مريض جديد جاء، تشوف اقرب 5 مرضى له في البيانات. لو 4 منهم مرضى وواحد سليم، تصنّفه مريض.

from sklearn.neighbors import KNeighborsClassifier
from sklearn.preprocessing import StandardScaler

# بيانات: [ضغط الدم، مستوى السكر]
X_train = [[120, 80], [140, 90], [130, 85], [160, 100],
           [110, 70], [115, 75], [150, 95], [105, 65]]
y_train = [0, 1, 0, 1, 0, 0, 1, 0]  # 0=سليم، 1=مريض

# تطبيع البيانات (مهم جدا لـ KNN)
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X_train)

# بناء نموذج KNN مع K=3
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_scaled, y_train)

# تصنيف مريض جديد
new_patient = scaler.transform([[135, 88]])
print(f"التشخيص: {'مريض' if knn.predict(new_patient)[0] else 'سليم'}")

⚠️ لا تنسى تطبيع البيانات مع KNN

KNN يعتمد على المسافة بين النقاط. لو خاصية واحدة قيمها بالالاف (مثل الراتب) وخاصية ثانية قيمها بالعشرات (مثل العمر)، الراتب راح يسيطر على الحسابات ويتجاهل العمر تماما. دائما استخدم StandardScaler قبل KNN.

5. الة المتجه الداعم (Support Vector Machines - SVM)

SVM تحاول ترسم حد فاصل (hyperplane) بين الفئات بحيث تكون المسافة بين الحد واقرب نقاط من كل فئة اكبر ما يمكن. هذي النقاط القريبة اسمها “متجهات الدعم” (Support Vectors).

ليش SVM قوية؟ لانها تشتغل كويس حتى مع بيانات معقدة باستخدام kernel trick. يعني تقدر تتعامل مع بيانات ما تقدر تفصلها بخط مستقيم عن طريق تحويلها لبعد اعلى.

from sklearn.svm import SVC
from sklearn.model_selection import cross_val_score
from sklearn.datasets import load_breast_cancer

# تحميل بيانات اورام (حميد / خبيث)
data = load_breast_cancer()
X, y = data.data, data.target

# بناء نموذج SVM مع kernel RBF
svm = SVC(kernel='rbf', C=1.0, gamma='scale')

# تقييم بـ Cross-Validation (5 مجموعات)
scores = cross_val_score(svm, X, y, cv=5)
print(f"متوسط الدقة: {scores.mean():.2%}")
print(f"الانحراف المعياري: {scores.std():.2%}")

6. الشبكات العصبية (Neural Networks)

الشبكات العصبية مستوحاة من طريقة عمل الدماغ البشري. تتكون من طبقات من خلايا عصبية اصطناعية (neurons)، كل خلية تستقبل مدخلات، تعالجها، وتمرر الناتج للطبقة التالية.

البيرسبترون (Perceptron)

ابسط شبكة عصبية: خلية واحدة تاخذ مدخلات، تضربها في اوزان، تجمعها، وتمررها عبر دالة تفعيل (activation function).

المعادلة: output = activation(w1*x1 + w2*x2 + ... + b)

دوال التفعيل الرئيسية

الدالةالمعادلةالاستخدام
Sigmoid1 / (1 + e^-x)طبقة الخروج للتصنيف الثنائي
ReLUmax(0, x)الاكثر استخدام في الطبقات المخفية
Softmaxe^xi / sum(e^xj)طبقة الخروج للتصنيف المتعدد
Tanh(e^x - e^-x) / (e^x + e^-x)بديل لـ Sigmoid، قيم بين -1 و 1

بناء شبكة عصبية بسيطة

from sklearn.neural_network import MLPClassifier
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split

# تحميل بيانات ارقام مكتوبة يدويا (0-9)
digits = load_digits()
X_train, X_test, y_train, y_test = train_test_split(
    digits.data, digits.target, test_size=0.3, random_state=42
)

# شبكة عصبية بطبقتين مخفيتين (64 و 32 خلية)
nn = MLPClassifier(
    hidden_layer_sizes=(64, 32),
    activation='relu', max_iter=500, random_state=42
)
nn.fit(X_train, y_train)

print(f"دقة التدريب: {nn.score(X_train, y_train):.2%}")
print(f"دقة الاختبار: {nn.score(X_test, y_test):.2%}")

ℹ️ الشبكات العصبية في عال 462 مقابل التعلم العميق

في عال 462 تتعلم اساسيات الشبكات العصبية (Perceptron، طبقات بسيطة، backpropagation). التعلم العميق (Deep Learning) بشبكات CNN و RNN وغيرها عادة يكون في مواد متقدمة اكثر. لكن فهم الاساسيات هنا ضروري عشان تقدر تبني عليها لاحقا.

7. خوارزمية K-Means (التجميع)

K-Means اشهر خوارزمية تعلم غير موجّه. تقسّم البيانات لـ K مجموعة بحيث كل نقطة تنتمي للمجموعة اللي مركزها اقرب لها.

مثال عملي: عندك متجر الكتروني وتبي تقسّم العملاء لمجموعات بناء على سلوكهم الشرائي (عدد المشتريات الشهرية + متوسط قيمة الطلب). K-Means تلقائيا تلاقي المجموعات: مثلا عملاء VIP (كثير مشتريات + قيمة عالية)، عملاء موسميين (قليل مشتريات + قيمة متوسطة)، عملاء جدد (مشتريات قليلة + قيمة منخفضة).

كيف تشتغل K-Means؟

  1. اختار K مراكز عشوائية
  2. كل نقطة بيانات تنتمي لاقرب مركز
  3. حدّث المراكز (احسب المتوسط لكل مجموعة)
  4. كرر الخطوات 2 و 3 حتى المراكز ما تتغير
from sklearn.cluster import KMeans
import numpy as np

# بيانات عملاء: [مشتريات شهرية، متوسط قيمة الطلب]
X = np.array([[2, 50], [3, 60], [15, 300], [18, 350],
              [20, 400], [1, 30], [8, 150], [12, 200],
              [25, 500], [2, 40]])

# تقسيم لـ 3 مجموعات
kmeans = KMeans(n_clusters=3, random_state=42, n_init=10)
kmeans.fit(X)

# عرض التصنيفات
labels = ["عملاء عاديين", "عملاء متوسطين", "عملاء VIP"]
for i, point in enumerate(X):
    print(f"عميل {i+1}: مجموعة {kmeans.labels_[i]}")

💡 كيف تختار عدد المجموعات K؟

استخدم Elbow Method: جرب قيم مختلفة لـ K (من 2 الى 10 مثلا)، ولكل قيمة احسب مجموع المسافات داخل المجموعات (inertia). ارسمها على رسم بياني. النقطة اللي يبدا فيها الانحناء يقل بشكل واضح (مثل الكوع) هي عدد المجموعات المناسب.

8. تقليل الابعاد (PCA)

لما تكون عندك بيانات فيها 50 او 100 خاصية (feature)، يصير صعب تفهمها او ترسمها. تحليل المكونات الرئيسية (PCA) يقلل عدد الابعاد مع الحفاظ على اكبر قدر من المعلومات.

مثال: عندك بيانات طلاب فيها 20 خاصية (درجات مواد مختلفة). PCA يقدر يقلّلها لـ 2 او 3 ابعاد عشان تقدر ترسمها وتشوف الانماط بعينك.

from sklearn.decomposition import PCA
from sklearn.datasets import load_iris
import numpy as np

# بيانات الزهور (4 ابعاد)
data = load_iris()
print(f"الابعاد الاصلية: {data.data.shape}")  # (150, 4)

# تقليل الى بعدين
pca = PCA(n_components=2)
X_reduced = pca.fit_transform(data.data)
print(f"الابعاد بعد PCA: {X_reduced.shape}")  # (150, 2)

# نسبة المعلومات المحفوظة
info = sum(pca.explained_variance_ratio_)
print(f"المعلومات المحفوظة: {info:.2%}")

9. تقييم النماذج (Model Evaluation)

بناء النموذج سهل. تقييمه صح هو الصعب. لو ما تقيّم نموذجك بالطريقة الصحيحة، ممكن تفكر انه ممتاز وهو فعليا ما يسوى شيء.

تقسيم البيانات (Train/Test Split)

القاعدة الذهبية: لا تقيّم النموذج على نفس البيانات اللي تدرب عليها. دائما قسّم بياناتك: 70-80% للتدريب و 20-30% للاختبار.

التحقق المتقاطع (Cross-Validation)

بدل تقسيم واحد، قسّم البيانات لـ K اجزاء، وكل مرة استخدم جزء مختلف كاختبار والباقي كتدريب. النتيجة اكثر موثوقية.

مصفوفة الارتباك (Confusion Matrix)

لو عندك نموذج يكشف مرض معين، اربع حالات ممكنة:

توقع: مريضتوقع: سليم
فعلا مريضTrue Positive (TP)False Negative (FN)
فعلا سليمFalse Positive (FP)True Negative (TN)

مقاييس الاداء

  • الدقة (Precision): من كل اللي النموذج قال عنهم “مريض”، كم فعلا مريض؟ TP / (TP + FP)
  • الاستدعاء (Recall): من كل المرضى الفعليين، كم النموذج اكتشف؟ TP / (TP + FN)
  • F1-Score: المتوسط التوافقي بين Precision و Recall: 2 * (P * R) / (P + R)
from sklearn.metrics import classification_report, confusion_matrix
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_breast_cancer

# بيانات اورام
data = load_breast_cancer()
X_train, X_test, y_train, y_test = train_test_split(
    data.data, data.target, test_size=0.3, random_state=42
)

model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)
y_pred = model.predict(X_test)

# تقرير كامل
print(confusion_matrix(y_test, y_pred))
print(classification_report(y_test, y_pred))

⚠️ الدقة (Accuracy) وحدها ما تكفي

لو عندك بيانات غير متوازنة (مثلا 95% سليم و 5% مريض)، نموذج يقول “سليم” لكل شخص يحقق 95% accuracy بس ما اكتشف ولا مريض واحد. في الحالات هذي، Precision و Recall و F1-Score اهم بكثير من الدقة العامة.

مشروع عال 462 محتاج مساعدة؟

سواء كان مشروعك عن تصنيف صور، تحليل مشاعر، او توقع اسعار، فريقنا يقدر يساعدك في اختيار الخوارزمية المناسبة وبناء النموذج مع تقرير تقييم كامل.

تواصل معنا على واتساب

10. الافراط في التعلم والتنظيم (Overfitting & Regularization)

الافراط في التعلم (Overfitting) اكبر مشكلة في تعلم الالة. يعني النموذج حفظ بيانات التدريب بالتفصيل الممل (حتى الضوضاء والاخطاء) بدل ما يتعلم الانماط الحقيقية. النتيجة: اداء ممتاز على بيانات التدريب واداء سيء على بيانات جديدة.

كيف تعرف ان نموذجك عنده Overfitting؟

  • دقة التدريب 99% لكن دقة الاختبار 70% = فرق كبير = overfitting
  • النموذج معقد جدا (شجرة قرار عميقة جدا مثلا)
  • البيانات قليلة مقارنة بعدد الخصائص

التنظيم (Regularization)

التنظيم يضيف عقوبة على تعقيد النموذج عشان يمنعه من الحفظ:

النوعالاسمالطريقةالاستخدام
L1Lassoيجمع القيم المطلقة للاوزانيصفّر بعض الاوزان (اختيار خصائص)
L2Ridgeيجمع مربعات الاوزانيصغّر كل الاوزان (لا يحذف)
L1 + L2ElasticNetيجمع الاثنينمزيج من المميزات
from sklearn.linear_model import Ridge, Lasso
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_diabetes

# بيانات مرض السكري
data = load_diabetes()
X_train, X_test, y_train, y_test = train_test_split(
    data.data, data.target, test_size=0.3, random_state=42
)

# مقارنة بدون تنظيم ومع L2 (Ridge)
from sklearn.linear_model import LinearRegression
lr = LinearRegression().fit(X_train, y_train)
ridge = Ridge(alpha=1.0).fit(X_train, y_train)

print(f"بدون تنظيم - تدريب: {lr.score(X_train, y_train):.2%}")
print(f"بدون تنظيم - اختبار: {lr.score(X_test, y_test):.2%}")
print(f"مع Ridge - تدريب: {ridge.score(X_train, y_train):.2%}")
print(f"مع Ridge - اختبار: {ridge.score(X_test, y_test):.2%}")

طرق اخرى لمنع Overfitting

  • زيادة البيانات: كل ما زادت البيانات، قل الافراط في التعلم
  • تقليل تعقيد النموذج: مثلا تحدد عمق شجرة القرار بـ max_depth=5
  • Early Stopping: توقف التدريب لما اداء الاختبار يبدا ينزل
  • Dropout: في الشبكات العصبية، تطفي خلايا عشوائية اثناء التدريب

اخطاء شائعة في عال 462

كل فصل، طلاب كثير يقعون في نفس الاخطاء. تجنبها من البداية:

  1. عدم تقسيم البيانات: تدرّب وتختبر على نفس البيانات وتفكر النموذج ممتاز. دائما استخدم train/test split
  2. تجاهل تطبيع البيانات: خوارزميات مثل KNN و SVM تتاثر كثير بمقاييس الخصائص المختلفة
  3. اختيار accuracy فقط للتقييم: خصوصا مع بيانات غير متوازنة. استخدم F1-Score و confusion matrix
  4. حشو خصائص كثيرة بدون تحليل: خصائص اكثر مو بالضرورة نتائج افضل. احيانا تسبب curse of dimensionality
  5. عدم ضبط المعاملات (Hyperparameter Tuning): القيم الافتراضية مو دائما الافضل. جرب GridSearchCV
  6. تجاهل تحليل البيانات اولا: قبل ما تبني نموذج، افهم بياناتك بالاحصائيات والرسوم البيانية

خطة مذاكرة فعالة لـ عال 462

  1. افهم الرياضيات اولا: كل خوارزمية مبنية على مفهوم رياضي. لو فهمت المعادلة، فهمت الخوارزمية
  2. طبّق بالكود مباشرة: بعد ما تفهم النظري، نزّل Jupyter Notebook وجرب بنفسك. لا تكتفي بالقراءة
  3. استخدم بيانات حقيقية: بعد ما تتمرن على الامثلة البسيطة، جرب بيانات من Kaggle
  4. قارن الخوارزميات: لكل مشكلة، جرب اكثر من خوارزمية وقارن النتائج. هذا يعمّق فهمك
  5. اشتغل على مشروع جانبي: بيّن لك نموذج يتوقع اسعار سيارات مستعملة؟ ابنيه من الصفر
  6. راجع اسبوعيا: تعلم الالة مترابط جدا. المفاهيم تتراكم واللي تنساه يصعّب عليك اللي بعده

خطوات بناء مشروع تعلم الالة متكامل

  1. حدد المشكلة بوضوح: ايش بالضبط تبي تتوقع او تصنّف؟ هل هي مشكلة تصنيف ولا انحدار؟
  2. اجمع البيانات ونظفها: حمّل البيانات، تعامل مع القيم الناقصة، حوّل النصوص لارقام
  3. حلل البيانات واستكشفها: ارسم رسوم بيانية، احسب الاحصائيات، افهم توزيع البيانات
  4. قسّم البيانات: train/test split او cross-validation
  5. اختار وجرب خوارزميات: ابدا بالبسيط (Logistic Regression) وروح للمعقد (Random Forest، SVM)
  6. قيّم وحسّن: استخدم F1-Score، جرب hyperparameter tuning، تاكد ما فيه overfitting

ربط عال 462 بمسارك الاكاديمي والمهني

عال 462 مو مجرد مادة تعدّيها. هي بوابة لمسار كامل:

  • التعلم العميق (Deep Learning): لو حبيت تتعمق في الشبكات العصبية (CNN للصور، RNN للنصوص)
  • معالجة اللغات الطبيعية (NLP): تطبيقات المحادثة الذكية والترجمة الالية تعتمد على ML
  • الرؤية الحاسوبية (Computer Vision): كشف الوجوه، السيارات ذاتية القيادة، التحليل الطبي للصور
  • مشاريع التخرج: بناء نظام توصيات، كشف احتيال، تحليل مشاعر التغريدات
  • شهادات معتمدة: بعد المادة تقدر تاخذ شهادات مثل Google ML Engineer او AWS ML Specialty

لو تبي تقوّي اساسياتك في بايثون قبل المادة، شوف دليل بايثون للمبتدئين. ولو تحتاج دروس خصوصية تشرح لك المفاهيم الصعبة، راجع خدمة الدروس الخصوصية في البرمجة.

خلاصة

عال 462 مادة تغيّر طريقة تفكيرك في البرمجة. بدل ما تكتب قواعد صريحة، تبني انظمة تتعلم بنفسها. المادة تجمع بين الرياضيات والبرمجة والتفكير التحليلي، وهذا اللي يخليها ممتعة وصعبة في نفس الوقت. ركّز على فهم المفاهيم الاساسية قبل الكود، تمرّن على بيانات حقيقية، ولا تنسى ان تقييم النموذج اهم من بنائه. لو سويت كل هذا، ان شاء الله تعدّي المادة بتقدير ممتاز وتطلع منها بمهارات تفيدك في سوق العمل.

تحتاج مساعدة في مادة عال 462 تعلم الالة؟

سواء كان الواجب عن Linear Regression او SVM او Neural Networks، فريقنا متخصص في مواد الذكاء الاصطناعي وتعلم الالة بجامعة الملك سعود. ارسل لنا الواجب ونرد عليك بعرض سعر خلال ساعة.

ارسل واجبك على واتساب
هل تحتاج خصوصي؟