تعلم MNU · PR HU103
Pattern Recognition (HU103) · Assoc. Prof. Mina Younan

المادة كلها سؤال واحد: إزاي الكمبيوتر يصنّف حاجة جديدة؟

عندنا pattern (صورة، صوت، إيميل…) ← نحوله لـ features (أرقام) ← classifier يقرر هو من أنهي class.

القصة في 4 محاضرات

🔑 المفتاح اللي بيربط المادة كلها في Lec 1 (سلايد 29 – Model) الدكتور عرض عيلتين من الـ classifiers:
  • Maximum Likelihood / Discriminant ← اختار الكلاس اللي احتماله أعلى ← ده اللي اتشرح بالتفصيل في Lec 3 + Lec 4 (Bayes و Naive Bayes).
  • Minimum Distance ← اختار الكلاس الأقرب ← ده اللي اتشرح في Lec 5 (KNN وعيلة المسافات).
يعني أي سؤال في الامتحان هتلاقيه واحد من 3: مرحلة في السيستم (Lec 1)، حساب احتمالات (Lec 3/4)، أو حساب مسافات (Lec 5).

مقارنة الـ classifiers (أهم جدول في المادة)

BayesNaive BayesKNNMinimum Distance
العيلةProbabilisticProbabilisticDistance-basedDistance-based
بيقرر إزايargmax P(X|C)P(C)argmax P(C)∏P(xᵢ|C)majority vote لأقرب kأقرب class mean
الافتراض—features مستقلة بشرط الكلاسالقريب غالبًا من نفس الكلاسكل كلاس متمثل بمتوسطه
التدريبنقدّر احتمالاتعدّ + ضرب (سريع جدًا)مفيش — بيخزن الداتا (lazy)نحسب mean لكل كلاس
التوقعسريعسريعبطيء (مسافة لكل نقطة)سريع
نقطة ضعفمحتاج احتمالات كتيرzero frequency ← Laplacescale + noise + kكلاسات مش "دايرية"
⚠️ ملحوظة: محاضرة 2 مش موجودة في الملفات المحاضرات اللي معانا: 1، 3، 4، 5. لو محاضرة 2 موجودة (أو سكشن/لاب) ابعتوها عشان نضيفها للمنصة وللـ NotebookLM.

🎧 NotebookLM — فيديوهات وسلايدات وصوت

النوت بوك فيه المحاضرات الأربعة + Audio Overview بالمصري، فيديو وسلايدات لكل محاضرة، Mind Map، Flashcards، Quiz، و Study Guide.

افتح النوت بوك ↗ بيفتح للحساب صاحب النوت بوك أو للي اتعمله share.

خطة المذاكرة (علّم اللي خلصته)

الطريقة

نذاكر إزاي عشان المعلومة تثبت ونقفل الـ MCQ

القاعدة: القراية لوحدها مش مذاكرة. اللي بيثبّت المعلومة إنك تطلّعها من دماغك (active recall) وتتدرب على الأسئلة.

طريقة الـ 3 لفّات

① لفّة الصورة الكبيرة (15 د)

صفحة "الخريطة" + اسمع الـ Audio Overview من NotebookLM (ينفع وإنت في المواصلات). الهدف: تعرف كل محاضرة بتجاوب على أنهي سؤال.

② لفّة الفهم (30–40 د لكل محاضرة)

اقرا صفحة المحاضرة هنا ← اقفلها ← اشرحها بصوت عالي في دقيقتين كأنك بتشرح لصاحبك (Feynman) ← افتح "اختبر نفسك". افتح الـ PDF بس للرسومات.

③ لفّة التثبيت بالأسئلة

MCQ للمحاضرة (Practice) لحد ≥ 85% ← بعد كل المحاضرات: Exam mode مخلوط ← "مراجعة أخطائي" لحد ما تفضى.

نصايح بتفرق

⏱️ 25 / 5

25 دقيقة تركيز (موبايل بعيد) و5 راحة. كل 4 جولات خد 20 دقيقة.

🔁 Spaced repetition

الأسئلة اللي غلطت فيها ارجعلها بعد يوم وبعد 3 أيام (زرار "مراجعة أخطائي" بيحفظهم لوحده).

✍️ احسب بإيدك

أمثلة الحساب (Bayes، Naive Bayes، Laplace، KNN) لازم تتحل على ورقة مرة واحدة على الأقل من غير ما تبص — دي أسهل درجات.

👥 لو بتذاكروا مع بعض

واحد يشرح محاضرة في 5 دقايق، والباقي يسألوه أسئلة من بنك الـ MCQ. اللي يغلط يشرح السؤال اللي بعده.

🎧 NotebookLM

Audio Overview للتكرار السلبي، والـ Chat للأسئلة اللي مش فاهمها ("اشرحلي ليه LOO nearly unbiased")، والـ Quiz/Flashcards كتدريب إضافي.

🛑 ماتعملش

ماتلخّصش السلايدات تاني (الملخص موجود هنا). ماتعيدش قراية نفس الصفحة 3 مرات — اختبر نفسك بدل كده.

تكتيكات الـ MCQ في اللجنة

التكتيكإزاي
① اقرا الـ stem مرتينحط خط تحت NOT / EXCEPT / always / only / best. نص الغلط بيجي من إنك ماخدتش بالك من NOT.
② توقّع قبل ما تقرا الاختياراتحاول تجاوب في دماغك الأول، وبعدين دوّر على إجابتك. كده الـ distractors مش هتلخبطك.
③ الكلمات المطلقةفي المادة دي العبارات المطلقة غالبًا غلط: "proximity guarantees same class" ✗، "small k is always better" ✗، "scaling makes all features equally useful" ✗.
④ كلمة السركل مفهوم له كلمة بتفضحه (with replacement ← Bootstrap، K=N ← LOO، reward ← Reinforcement…). احفظ صفحة "كلمة السر".
⑤ الحساب بسرعةلو السؤال "أنهي class؟" ماتحسبش الـ evidence P(X) — قارن البسط بس. لو "احتمال كام %؟" لازم تقسم على المجموع (normalize).
⑥ الاستبعادشيل الاختيارين الأغلط الأول، وبعدين قارن الاتنين الفاضلين بكلمة السر.
⑦ الوقتالسؤال اللي واخد أكتر من دقيقة ونص: علّم عليه وارجعله في الآخر.
⚠️ أخطاء في السلايدات لازم تعرفها (راجعناها بالحساب)
  • Lec 4 سلايد 13: score الـ No مكتوب 0.00137 والصح 2/5·2/5·1/5·3/5·5/14 = 0.00686 (السلايد ضرب في 1/14 بدل 5/14). القرار لسه Yes (0.00705 > 0.00686) بس الفرق صغير جدًا (~50.7% Yes). لو جه في الامتحان كرقم ومش لاقي 0.00686 ← الدكتور قاصد رقم السلايد.
  • Lec 4 سلايد 16 vs 19: الـ test instance مكتوب Rainy، والحساب في سلايد 19 استخدم Sunny (2/9). في الحالتين النتيجة No بفرق كبير.
  • Lec 4 سلايد 18: σ للـ Humidity (Yes) الصح ≈ 5.10 مش 5.06. وخلي بالك الدكتور بيقسم على n مش n−1.
  • Lec 5: الـ Exercise بيقول "Slides 13–16" والمثال فعليًا في سلايدات 16–19. ولـ k = 1 فيه tie (B و E الاتنين 1.118).
  • Lec 1: سلايد 13 (Summary) حاطط "Isolation of patterns from background" تحت Pre-processing، وسلايد 10 حاطط فصل الـ object عن الـ background تحت Segmentation. في الامتحان: "regions of interest / separating objects" ← Segmentation.
LECTURE 01 · 33 سلايد

Introduction to Pattern Recognition

إننا نعلّم الكمبيوتر يلاحظ الـ patterns في الداتا، ويستخدمها ياخد قرار عن حاجة جديدة.

1) التعريفات الأساسية

Pattern

أي object عايزين نصنّفه: صورة رقم مكتوب بخط اليد، صوت، إيميل، قياس طبي، وش في صورة.

Class

مجموعة objects متشابهة مش متطابقة ومختلفة عن الكلاسات التانية (زي حرف A وحرف B).
Pattern class = set of patterns sharing common attributes.

Classification

إنك تحط pattern معيّن في class من كلاسات معروفة. (عشان كده الاسم classification.)

Pattern Recognition

علم بيخلي الماكينة تراقب البيئة، تتعلم تفرّق الـ patterns، وتاخد قرارات sound and reasonable عن الكلاسات.

2) General Classification System — 9 مراحل (أهم حتة في المحاضرة)

Physical Environment→Sensing→Pre-processing→Segmentation→Feature Extraction→Features→Classification→Post-processing→Decision

احفظ الترتيب كده: بيئة ← حسّاس ← تنضيف ← تقطيع ← استخراج ← فيكتور ← تصنيف ← مراجعة ← قرار. والـ Model Learning داخل على الـ Classification من الجنب (training data + prior knowledge).

المرحلةبتعمل إيهكلمة السر في السؤال
1. Physical Environmentالمصدر الحقيقي للظاهرةhandwritten document, face in front of camera, sound wave
2. Data Acquisition / Sensingتحويل الإشارة الفيزيائية لداتا رقمية (transducing)camera, microphone, scanner, pixels, sampling · issues: bandwidth, resolution
3. Pre-processingتنضيف وتحسين الإشارة وتقليل الـ noisenoise filtering, contrast enhancement, normalization, deskewing, thresholding
4. Segmentationتقسيم الداتا لمناطق مهمة وفصل الـ object عن الخلفيةisolating letters, bounding a face, detecting speech regions
5. Feature Extractionحساب قياسات قليلة ومفيدة (low-dimensional)edges, textures, shapes, spectral coefficients, embeddings · "new representation"
6. Featuresالـ feature vector اللي داخل للـ classifierx = [height, width, aspect ratio, …]
7. Classificationربط الـ feature vector بكلاس باستخدام model متعلّمSVM, Neural Nets, Decision Trees · external inputs: labeled data, prior knowledge
8. Post-processingتحسين النتيجة بالـ context وتقييم الثقةconfidence, context, combination of experts, spell-check "c-a-t-e → cat", reduce false positives
9. Decisionالـ action النهائيdisplay ASCII char, unlock device, medical alert, route defective product
⚠️ فخ Pre-processing ≠ Segmentation ≠ Feature extraction.
تنضيف الصورة (noise/contrast/deskew) = Pre-processing · قصّ الحرف من السطر = Segmentation · حساب أرقام تمثّل الحرف = Feature extraction.
و Post-processing بييجي بعد الـ classification (زي الـ spell-check بعد ما الحروف اتعرفت).

3) Design Cycle — 4 خطوات

1. Collect Data→2. Feature Selection→3. Model→4. Training & Learning

① Collect Data — السؤال الأساسي

إزاي نتأكد إن الداتا كبيرة كفاية و representative للـ true distribution؟ بـ 5 حاجات: نحدد الـ sample size (power analysis / learning curves) · diversity · random sampling (يقلل selection bias) · نقارن الـ distributions · validate على test set مستقل.

تقسيم مشهور: Training 70% · Validation 15% · Test 15%.

حساب الـ Sample Size (مسألة مضمونة)

Step 1 — الحجم المبدئي$$n_0=\frac{Z^2\,p(1-p)}{e^2}=\frac{1.96^2\times0.5\times0.5}{0.05^2}=384.16$$
Step 2 — تصحيح للـ population المحدودة (N = 1000)$$n=\frac{N\,n_0}{N+n_0-1}=\frac{1000\times384.16}{1000+384.16-1}\approx 277.7\;\Rightarrow\;\mathbf{278}$$
Confidence80%85%90%95%98%99%99.9%
Z1.2821.4401.6451.9602.3262.5763.291

p = 0.5 لما مانعرفش النسبة (بيدّي أكبر حجم). على الآلة: MENU → Distribution → Normal → InvN. والدكتور كاتب: ده sample size لـ population proportion، مش statistical power analysis لمقارنة algorithms.

Data Split Techniques (بتيجي كتير)

الطريقةالفكرةالميزةالعيب
Resubstitutiontrain و test على نفس الداتا كلهابيستخدم كل الداتا في البناءoptimistic bias — بيقيس training error فبيقلل من الـ generalization error (overfitting)
Hold-out⅔ train · ⅓ testtest على داتا ماشافهاش ← unbiased estimateبيقلل داتا التدريب و test صغير ← variance عالي مع الداتا الصغيرة
K-fold CVk أجزاء؛ كل مرة جزء test والباقي (k−1) train؛ average للـ errorالتقسيم مايفرقش أوي؛ كل نقطة test مرة واحدة و train k−1 مرةبتدرّب k models
Leave-One-OutK-fold بـ K = Nnearly unbiased (كل model بيتدرب على N−1)expensive: N models
Bootstrapاسحب N عينة with replacement؛ اللي ماتسحبش (~36.8%) = test؛ كرر (مثلًا 200) وخد averageالأحسن لما الداتا صغيرة (< 30) — rare medical datacomputationally intensive، والـ classifiers مش optimal
⚠️ فخ"with replacement" = Bootstrap بس. "K = N" = LOO. "same data" = Resubstitution. Resubstitution بيدّي نتيجة أحسن من الحقيقة (optimistic) مش أسوأ.

② Feature Selection و Curse of Dimensionality

كل ما تقيس features أكتر ← dimension أعلى ← الـ feature space حجمه بيكبر exponentially ← الداتا تبقى sparse ← computation و storage أكتر و overfitting. ده اسمه Curse of Dimensionality.

الاستراتيجية: قيس features كتير، وبعدين قلّلها واختار الـ subset الأكتر informative وشيل الـ redundant و irrelevant.

4 اعتبارات لاختيار الـ features

  • Domain dependence & prior knowledge
  • Computational feasibility & cost
  • Discriminative power: قيم متشابهة جوه الكلاس (intra) ومختلفة بين الكلاسات (inter)
  • Invariance: مايتأثرش بـ translation, rotation, scale

Feature Selection

بتختار subset d′ من الـ d features الأصلية من غير ما تغيّر تعريفها. أنواعها: Filter / Wrapper / Embedded.

Feature Extraction

بتعمل mapping لـ subspace أصغر (features جديدة). أمثلة: PCA و LDA. مثال: صورة 28×28 = 784 pixel ← 20 feature.
PCALDA
الهدفنقلل الـ features ونحافظ على أكبر varianceنقلل الـ features ونـفصل الكلاسات
الفكرةdirections بتمسك أكبر variation في الداتاmaximize between-class · minimize within-class
بيستخدم labels؟لأ (unsupervised)آه (supervised)
مثال السلايد100 features ← 10 principal componentscats vs dogs

③ Model

Feature extractor

برنامج بياخد الداتا (صورة) ويطلّع features.

Classifier

برنامج بياخد الـ feature vector ويحطه في class من الكلاسات أو في "reject" class.

Maximum Likelihood / Discriminant

يحسب دوال \(d_i(\mathbf{x})\) لكل كلاس ويختار الكلاس اللي \(d_i\) بتاعه أكبر.

Minimum Distance Classifier

يحسب المسافة بين \(\mathbf{x}\) و mean vector كل كلاس \(\mathbf{m}_i\) ويختار الأقرب.

④ Training & Learning

عندنا training set (أمثلة معروف كلاسها) وعايزين نصنف الـ test set. لازم الـ features تخلي in-class variation أقل من between-class variation.

النوعالـ labelsبيتعلم إزاي
Supervisedموجودة (teacher)من أمثلة عليها labels/cost targets
Unsupervisedمفيشبيكتشف clusters / structure لوحده
Reinforcementمفيش target صريحagent بيتعلم policy من reward / penalty

Supervised workflow: Problem formulation → Data identification → Pre-processing → Training set definition → Algorithm selection → Training & parameter tuning → Evaluation. ولو الأداء وحش (زي 55% accuracy) نرجع: hyperparameter tuning؟ feature engineering؟ داتا أكتر؟

Unsupervised (Clustering): نقسم unlabeled vectors لـ disjoint clusters (كل sample في cluster واحد). 4 أسئلة: هل فيه structure حقيقي ولا الـ algorithm بيفرضه؟ كام cluster (K)؟ نعرّف الـ similarity (distance metric) إزاي؟ نقيس جودة الـ clustering إزاي؟

اختبر نفسك

إيه الفرق بين Pre-processing و Segmentation؟Pre-processing بينضّف الإشارة كلها (noise، contrast، deskew). Segmentation بيقطّع الداتا لمناطق مهمة ويفصل الـ object عن الخلفية.
ليه Resubstitution بيدّي error أقل من الحقيقي؟لأنه بيختبر على نفس الداتا اللي اتدرب عليها ← بيقيس training error ← optimistic bias وبيخبي الـ overfitting.
إمتى أستخدم Bootstrap؟ وكام في المية بيبقى test؟لما الداتا صغيرة جدًا (< 30). حوالي 36.8% من العينات مابتتسحبش فبتبقى test.
PCA ولا LDA لو عايز أفصل الكلاسات؟LDA — بيعظّم between-class ويقلل within-class. PCA بيهتم بالـ variance بس ومابيبصش على الـ labels.
إيه هو Curse of Dimensionality؟زيادة الـ features ← الـ space بيكبر exponentially ← الداتا sparse ← computation/storage أكتر و overfitting.
Z لـ 99%؟ ولـ 90%؟2.576 و 1.645.
LECTURE 03 · 24 سلايد

Bayes Classifier

Bayes بيقلب السؤال: بدل "لو الكلاس ده، الفيتشر احتمالها كام؟" يبقى "شفت الفيتشر، الكلاس احتماله كام؟" ونختار الكلاس الأعلى.

1) أساسيات الاحتمالات

Probability

\(0 \le P(A) \le 1\) · 0 مستحيل · 1 أكيد. للنتائج المتساوية: عدد النتائج المطلوبة ÷ الكل. (60 بنت من 100 ← 0.6)

Sample space Ω

كل النتائج الممكنة. الزهر: {1,…,6}.

Event

subset من الـ sample space. "زوجي" = {2,4,6} ← 0.5. في PR: "الـ object من class ω₁".

Complement

\(P(A')=1-P(A)\). Disease 0.2 ← No disease 0.8.

Addition rule

\(P(A\cup B)=P(A)+P(B)-P(A\cap B)\)
بنطرح التقاطع عشان اتحسب مرتين. AI 0.6 + IoT 0.5 − both 0.2 = 0.9

Independent events

معرفة إن واحد حصل مابتغيرش احتمال التاني: \(P(A\cap B)=P(A)P(B)\). عملة مرتين: 0.5×0.5 = 0.25

Priors: لو 80 cat و 120 dog من 200 ← P(cat) = 0.4، P(dog) = 0.6، ومجموع الـ priors = 1. اسمها prior عشان بنحسبها قبل ما نشوف الـ features.

2) Conditional · Joint · Marginal (بالجدول ده هتحل أي سؤال)

(N = 100)Disease (A)No Disease (A′)Total
Fever (B)302050
No Fever (B′)104050
Total4060100

Joint — الاتنين مع بعض

\(P(A\cap B)=30/100=0.3\)

Marginal — واحد بس بغض النظر عن التاني

\(P(A)=P(A\cap B)+P(A\cap B')=0.3+0.1=0.4\) · \(P(B)=0.5\)

Conditional — بشرط

\(P(A|B)=\dfrac{P(A\cap B)}{P(B)}=\dfrac{0.3}{0.5}=0.6\)
من اللي عندهم حرارة، 60% عندهم المرض.

Multiplication rule

\(P(A\cap B)=P(A|B)P(B)=P(B|A)P(A)\)
\(P(B|A)=0.3/0.4=0.75\)
⚠️ فخ مشهور\(P(A|B) \ne P(B|A)\): هنا 0.6 مقابل 0.75. وكمان independent ≠ mutually exclusive (المستقلين ممكن يحصلوا مع بعض عادي).

3) Bayes' Theorem ⭐

القانون العام$$P(A|B)=\frac{P(B|A)\,P(A)}{P(B)}$$
في الـ Pattern Recognition$$\underbrace{P(C_i|X)}_{\text{posterior}}=\frac{\overbrace{P(X|C_i)}^{\text{likelihood}}\;\overbrace{P(C_i)}^{\text{prior}}}{\underbrace{P(X)}_{\text{evidence}}}\qquad P(X)=\sum_{i} P(X|C_i)P(C_i)$$
المصطلحالرمزمعناه بالبلديمن مثال الـ fever
PriorP(C)كنت مصدّق إيه قبل الدليل؟P(Disease) = 0.4
LikelihoodP(X|C)الدليل ده متوقع قد إيه لو الفرضية صح؟P(Fever|Disease) = 0.75
EvidenceP(X)احتمال الدليل عمومًا (نفسه لكل الكلاسات)P(Fever) = 0.5
PosteriorP(C|X)بقيت مصدّق إيه بعد الدليل؟P(Disease|Fever) = 0.6

مثال Cat / Dog (pointed ears)

P(Cat)=0.4، P(Dog)=0.6، P(PE|Cat)=0.8، P(PE|Dog)=0.3

$$P(PE)=0.8(0.4)+0.3(0.6)=0.5\quad\Rightarrow\quad P(Cat|PE)=\frac{0.32}{0.5}=0.64,\;\;P(Dog|PE)=0.36\;\Rightarrow\;\textbf{Cat}$$

4) Random Variables

DiscreteContinuous
القيمcountable (عدد العيوب 0,1,2,…)لا نهائية في interval (الطول 170.12…)
الدالةPMF: \(P(X=x)\)PDF: \(f(x)\)
نقطة واحدةليها احتمال\(P(X=x)=0\) ← نستخدم \(P(a\le X\le b)=\int_a^b f(x)dx\)

في PR الـ random variable = feature (age، blood pressure، pixel intensity) أو feature vector زي [height, weight, age].

قوانين احفظها (سلايد 22)$$E[X]=\sum x\,p(x)\qquad Var(X)=E[X^2]-(E[X])^2\qquad \sigma=\sqrt{Var(X)}\qquad Cov(X,Y)=E[(X-\mu_X)(Y-\mu_Y)]$$

5) من الاحتمالات للتصنيف: Bayes Decision Rule

مثال السكر (glucose x = 150): P(C₁ diabetic)=0.3، P(C₂)=0.7، p(x|C₁)=0.04، p(x|C₂)=0.01

$$0.04\times0.3=\mathbf{0.012}\;>\;0.01\times0.7=0.007\;\Rightarrow\;x=150\in C_1\ (\text{Diabetic})$$
القاعدة — الـ evidence P(X) واحدة لكل الكلاسات فبنشيلها$$C^*=\arg\max_i\;P(X|C_i)\,P(C_i)$$
⚠️ فخعشان تختار الكلاس مش محتاج P(X). لكن لو السؤال عايز قيمة الـ posterior (كام %)، لازم تقسم على P(X). ولاحظ: الكلاس اللي الـ likelihood بتاعه أعلى مش دايمًا هو اللي بيكسب — الـ prior بيفرق.

اختبر نفسك

Likelihood هو P(C|X) ولا P(X|C)؟P(X|C) — احتمال الدليل/الـ feature بشرط الكلاس. P(C|X) هو الـ posterior.
ليه نقدر نشيل P(X) في التصنيف؟لأنها نفس المقام لكل الكلاسات، فمش هتغير مين الأكبر.
من جدول الـ fever: P(No Disease | Fever)؟20/50 = 0.4 (أو 1 − 0.6).
P(X = 170) لطول (continuous) = ؟صفر. للـ continuous بنحسب احتمال interval بالتكامل على الـ PDF.
LECTURE 04 · 28 سلايد

Naive Bayes Classifier

Bayes مع features كتير: بنفترض (بسذاجة = naive) إن الـ features مستقلة عن بعض لما نعرف الكلاس، فبنضرب احتمالاتها في الـ prior.

1) التعريف واللي بيتسأل عليه

Definition

Probabilistic, supervised algorithm للـ classification. بيستخدم Bayes' theorem ويفترض إن الـ features conditionally independent given the class.

ليه مفيد؟

بسيط · بيتدرب بسرعة حتى مع داتا كبيرة · شغال كويس مع high-dimensional (خصوصًا text) · تفسير احتمالي · strong baseline.

Applications

Medical diagnosis · Sentiment analysis · Document/news categorization · Network intrusion detection · Activity recognition (sensors) · Email (spam).

Bayes vs Naive Bayes (حسب السلايد)

Bayes: event معتمد على event واحد \(P(A|B)\). Naive Bayes: event معتمد على events كتير \(P(A|B,C,D,\dots)\) ← شغال على set of features، مناسب للداتا الكبيرة.
Proportional form — المقام ثابت لكل الكلاسات فبنشيله$$P(y\,|\,x_1,\dots,x_n)\;\propto\;P(y)\prod_{i=1}^{n}P(x_i\,|\,y)\qquad\quad \hat y=\arg\max_{y}\;P(y)\prod_{i=1}^{n}P(x_i\,|\,y)$$

الداتا: Feature matrix X (كل عمود feature) + Target vector y (labels زي 0/1).

2) مثال الـ Weather (اتعلمه خطوة بخطوة)

FeatureValueYes (من 9)No (من 5)
OutlookSunny33
Overcast40
Rainy22
TemperatureHot22
Mild42
Cool31
HumidityHigh34
Normal61
WindyTrue33
False62
Prior9/145/14

Test: Outlook = Rainy, Temp = Hot, Humidity = Normal, Windy = True ← Play؟

$$\text{Yes}:\;\frac{2}{9}\cdot\frac{2}{9}\cdot\frac{6}{9}\cdot\frac{3}{9}\cdot\frac{9}{14}=0.00705\qquad \text{No}:\;\frac{2}{5}\cdot\frac{2}{5}\cdot\frac{1}{5}\cdot\frac{3}{5}\cdot\frac{5}{14}=0.00686$$

⇐ Play = Yes (0.00705 > 0.00686). الأرقام دي scores مش احتمالات؛ لو عايز الاحتمال: 0.00705 ÷ (0.00705 + 0.00686) ≈ 50.7%.

⚠️ خطأ في السلايد 13السلايد كاتب No = 0.00137 (ضرب في 1/14 بدل 5/14). الحساب الصح 0.00686. القرار في الحالتين Yes.

طريقة سريعة في اللجنة: كل كسر = (عدد مرات القيمة مع الكلاس) ÷ (عدد الكلاس). الـ prior = عدد الكلاس ÷ 14.

3) Laplace Correction (Zero-frequency problem)

P(Overcast | No) = 0/5 = 0 ← لو ضربنا فيه، الاحتمال كله يبقى صفر مهما باقي الـ features قالت! الحل: نزوّد العدّ بقيمة صغيرة (غالبًا 1) — اسمه Laplace correction أو add-one smoothing، ومعظم الـ implementations بتدعمه.

k = عدد القيم الممكنة للـ feature دي (Outlook: Sunny/Overcast/Rainy ← k = 3)$$P(x\,|\,c)=\frac{n_{c,x}+1}{n_c+k}$$
Outlook (10 obs)YesNo
Sunny13
Overcast30
Rainy21
Total64

Test = Sunny (من غير Laplace)

Yes: 0.6 × 1/6 = 0.1 · No: 0.4 × 3/4 = 0.3 ← No بـ posterior 0.3/0.4 = 75%

Test = Overcast (من غير Laplace)

Yes: 0.6 × 3/6 = 0.3 · No: 0.4 × 0/4 = 0 ← مشكلة الصفر

Overcast + Laplace

Yes: (3+1)/(6+3) = 4/9 = 0.4444 ← 0.6 × 0.4444 = 0.2667
No: (0+1)/(4+3) = 1/7 = 0.1429 ← 0.4 × 0.1429 = 0.0571
⇐ Yes بـ ≈ 82.35%
⚠️ فخk في المقام = عدد قيم الـ feature (3 لـ Outlook) — مش عدد الكلاسات ومش عدد الـ features. والـ +1 بيتضاف لكل القيم مش للصفر بس (عشان المجموع يفضل 1).

4) Feature Types

النوعمثال السلايدNaive Bayes بيحسبه إزاي
Categoricalcar models: Honda, Mazda, Volvoعدّ: \(P(x|c)=n_{c,x}/n_c\)
Numerical – Discretenumber of children (countable)نحسب mean و std لكل كلاس وبعدين Gaussian PDF
Numerical – Continuousbody weight 75.55 (measurable)

5) Gaussian PDF للـ features الرقمية

الدكتور بيقسم على n$$m=\frac1n\sum_{i=1}^n x_i\qquad \sigma^2=\frac1n\sum_{i=1}^n (x_i-m)^2\qquad f(x)=\frac{1}{\sqrt{2\pi}\,\sigma}\,e^{-\frac{(x-m)^2}{2\sigma^2}}$$

مثال الأطوال (x = 180 cm)

Class AClass B
Mean170160
σ105
Exponent−(10)²/(2·100) = −0.5−(20)²/(2·25) = −8
f(180)e^−0.5 / 25.066 ≈ 0.0242e^−8 / 12.533 ≈ 0.0000268

⇐ Class A لو الـ priors متساوية. لو الـ priors مختلفة: اضرب كل density في الـ prior بتاعه قبل المقارنة.

Weather بأرقام (Temp = 66, Humidity = 90)

Temp (Yes): m = 68.6, σ = 2.65 · (No): m = 74.6, σ = 7.06 · Humidity (Yes): m = 72, σ ≈ 5.1 · (No): m = 86.2, σ = 8.7

$$P(\text{Yes}|\dots)\propto P(\text{Sunny}|Y)\cdot f_{Temp,Y}(66)\cdot f_{Hum,Y}(90)\cdot P(\text{True}|Y)\cdot P(Y)$$

الـ categorical بالعدّ، والـ numerical بالـ Gaussian، وكله يتضرب. النتيجة هنا No بفرق كبير (Humidity 90 بعيدة جدًا عن متوسط الـ Yes = 72).

🧪 الـ Labتحسب class scores من داتا categorical · تعمل Laplace من غير مكتبة · تكتب Gaussian PDF بـ Python · تدرّب GaussianNB من scikit-learn.

اختبر نفسك

كلمة "Naive" معناها إيه بالظبط؟الافتراض إن الـ features مستقلة عن بعض بشرط الكلاس (conditional independence given the class) — افتراض "ساذج" لأنه نادرًا ما يبقى صح 100%.
إيه اللي بيحصل من غير Laplace لو feature value ماظهرتش مع كلاس؟الاحتمال = 0 فحاصل الضرب كله يبقى 0 للكلاس ده.
Laplace لـ feature ليها 4 قيم، والقيمة ظهرت 2 من 10 مع الكلاس؟(2+1)/(10+4) = 3/14.
Feature رقمية في Naive Bayes بنعمل فيها إيه؟نحسب mean و σ لكل كلاس، ونعوّض في Gaussian PDF ونستخدم الناتج مكان الاحتمال.
LECTURE 05 · 25 سلايد

Distance-Based PR: K-Nearest Neighbors

قولّي مين جيرانك أقولك إنت مين: احسب المسافة لكل نقطة تدريب، خد أقرب k، والأغلبية تكسب.

1) الفكرة

الـ pattern = feature vector \(\mathbf{x}=[x_1,\dots,x_n]\) (زهرة: petal length/width، sepal length/width). الداتا labeled: \(D=\{(\mathbf{x}_i,y_i)\}_{i=1}^N\).

الافتراض: العينات القريبة من بعض في الـ feature space غالبًا من نفس الكلاس. مسافة أصغر = proximity أكبر.

⚠️ فخProximity مابتضمنش إن العينتين من نفس الكلاس ("often more likely" بس).

2) مقاييس المسافة

Euclidean (L2) — اطرح، ربّع، اجمع، جذر$$d(\mathbf{x},\mathbf{z})=\sqrt{\sum_{i=1}^n (x_i-z_i)^2}\qquad \text{e.g. }(1,2),(2,3)\Rightarrow\sqrt2$$
المقياسالقانون / الفكرةإمتى
Manhattan (L1)\(\sum|x_i-z_i|\)مجموع الفروق المطلقة
Minkowski\(\left(\sum|x_i-z_i|^p\right)^{1/p}\)تعميم: p = 1 Manhattan · p = 2 Euclidean
Hammingعدد المواضع المختلفةcategorical / binary
Chebyshev (L∞)\(\max_i |x_i-z_i|\)أكبر فرق في بُعد واحد
Cosine distance\(1-\cos\theta\)الاتجاه مش الحجم (text)

Euclidean نقطة بداية كويسة للـ numeric، بس مش دايمًا الأحسن — المقياس المناسب بيعتمد على شكل الداتا.

3) الـ Algorithm

احسب المسافة لكل training sample→رتّب تصاعدي→خد أول k→majority vote
$$\hat y=\text{mode}\{\,y_{(1)},\dots,y_{(k)}\,\}$$

مثال: k = 5 والجيران A, A, B, A, B ← A (3 أصوات). لو حصل tie في الأصوات ← محتاج tie-breaking rule (كل implementation ليها قاعدتها).

4) المثال المحلول — Q = (3, 2.5)

SampleXYClassEuclideanالترتيب
B22Red1.1181 (tie)
E42Blue1.1181 (tie)
D31Blue1.5003
C44Red1.8034
F53Blue2.0625
A11Red2.5006

k = 3

B (Red)، E (Blue)، D (Blue) ← Blue (2 ضد 1). الـ tie في المسافة بين B و E مش مشكلة لأن الاتنين داخلين.

k = 5

B, E, D, C, F ← Blue 3 (E, D, F) ضد Red 2 (B, C) ← Blue

k = 1

B و E الاتنين 1.118 ← tie ← النتيجة بتعتمد على قاعدة كسر التعادل.

5) دور k

Small kLarge k
حساس للـ noise · حدود متعرجة (irregular boundaries) · ممكن overfitقرارات أنعم (smoother) · ممكن يتجاهل الـ local structure · ممكن underfit لو كبير أوي

k صغير مش أحسن تلقائيًا، و k كبير مش أوحش تلقائيًا ← بنختاره بالـ validation.

6) ليه KNN اسمه Instance-Based؟

Instance-based

مفيش explicit model.

Memory-based

كل نقط التدريب بتتخزن.

Lazy

مفيش training phase غير التخزين.

Local

القرار بيعتمد على الـ neighborhood بس.

Non-parametric

مفيش عدد ثابت من الـ parameters.

Training: خزّن الأمثلة وجهّز الـ preprocessing. Prediction: احسب المسافات، لاقي الجيران، قرر. ⇐ التدريب سهل لكن التوقع مكلف مع الداتا الكبيرة.

مكانه في PR: Supervised (labeled، non-parametric) + Instance-based (lazy، no explicit model) + Distance-based (similarity = proximity، local decision regions، محتاج metric space).

عيلة الـ distance-based

Methodالفكرةالدور
k-Nearest NeighborsClassification & Regressionمحور المحاضرة
Nearest Centroid / PrototypeSimple linear decisionRelated baseline
Learning Vector QuantizationPrototype adaptationSupervised compression
Distance-Weighted ClassifiersSoft voting by inverse distanceExtension of k-NN
Metric LearningLearn the distance itselfAdvanced topic

7) Feature Scaling

Age (18–80) و Income (5,000–500,000): الـ income هيسيطر على الـ Euclidean distance لأن أرقامه أكبر. الحل Standardization:

$$z=\frac{x-\mu}{\sigma}$$
⚠️ فخالـ standardization بتحط الـ features على scales متقاربة، لكن مابتضمنش إن كل feature تبقى مفيدة بنفس الدرجة.

8) Advantages vs Limitations

Advantages ✅Limitations ❌
بسيط وسهل التطبيقالتوقع بطيء مع الداتا الكبيرة
بيدعم multiclassحساس للـ feature scales
افتراضات قليلة عن شكل الـ boundaryبيتأثر بالـ noisy / irrelevant features
مفيش iterative model-fittingلازم يخزن الـ training data
baseline كويسالمسافة بتفقد معناها في high dimensions

9) Evaluation Metrics

$$\text{Accuracy}=\frac{\text{correct}}{\text{total}}\quad \text{Precision}=\frac{TP}{TP+FP}\quad \text{Recall}=\frac{TP}{TP+FN}\quad F_1=2\cdot\frac{P\cdot R}{P+R}$$

ماتقيمش بالـ accuracy لوحدها. في الـ multiclass: precision/recall/F1 بتتعمل one-vs-rest وبنعمل لها macro / micro / weighted averaging — ولازم نقول استخدمنا أنهي.

🧠 تثبيتPrecision = من اللي قلت عليهم Positive، كام صح؟ (المقام فيه FP) · Recall = من الـ Positive الحقيقيين، لقطت كام؟ (المقام فيه FN).
🧪 Lab: Iris150 sample · 4 numerical features (sepal length/width, petal length/width) · 3 classes (setosa, versicolor, virginica) · 50 لكل كلاس. Exercise: جرّب k = 3, 5, 7 وقارن accuracy و F1.

اختبر نفسك

ليه KNN بيبقى بطيء مع الداتا الكبيرة رغم إن التدريب سريع؟لأن كل prediction ممكن تحتاج حساب المسافة لكل (أو معظم) نقط التدريب.
Feature ليها range كبير جدًا هتعمل إيه في KNN؟هتسيطر على المسافة ← لازم scaling/standardization.
Manhattan بين (3, 2.5) و (1, 1)؟|3−1| + |2.5−1| = 2 + 1.5 = 3.5
ليه KNN ممكن يبوظ لو زودنا features مالهاش لازمة؟لأنها بتدخل في حساب المسافة وتشوّشها، فالجيران "الأقرب" مابقوش فعلًا الأشبه.
ليلة الامتحان

كل القوانين في صفحة واحدة

Lec 1 Sample size

$$n_0=\frac{Z^2p(1-p)}{e^2}\qquad n=\frac{N\,n_0}{N+n_0-1}\qquad (Z_{95\%}=1.96,\;p=0.5,\;e=0.05\Rightarrow 384.16\to 278)$$

Lec 3 Probability & Bayes

$$P(A')=1-P(A)\qquad P(A\cup B)=P(A)+P(B)-P(A\cap B)\qquad \text{indep: }P(A\cap B)=P(A)P(B)$$
$$P(A|B)=\frac{P(A\cap B)}{P(B)}\qquad P(A\cap B)=P(A|B)P(B)=P(B|A)P(A)\qquad P(A)=P(A\cap B)+P(A\cap B')$$
$$P(C_i|X)=\frac{P(X|C_i)P(C_i)}{P(X)}\qquad P(X)=\sum_i P(X|C_i)P(C_i)\qquad C^*=\arg\max_i P(X|C_i)P(C_i)$$
$$E[X]=\sum x\,p(x)\qquad Var(X)=E[X^2]-(E[X])^2\qquad \sigma=\sqrt{Var}\qquad Cov(X,Y)=E[(X-\mu_X)(Y-\mu_Y)]$$

Lec 4 Naive Bayes

$$\hat y=\arg\max_y P(y)\prod_i P(x_i|y)\qquad P(x|c)=\frac{n_{c,x}}{n_c}\qquad \text{Laplace: }P(x|c)=\frac{n_{c,x}+1}{n_c+k}$$
$$m=\frac1n\sum x_i\qquad \sigma^2=\frac1n\sum(x_i-m)^2\qquad f(x)=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-m)^2}{2\sigma^2}}$$

Lec 5 KNN & Metrics

$$\text{Euclid}=\sqrt{\sum(x_i-z_i)^2}\quad \text{Manhattan}=\sum|x_i-z_i|\quad \text{Minkowski}=\Big(\sum|x_i-z_i|^p\Big)^{1/p}\quad \text{Chebyshev}=\max|x_i-z_i|$$
$$z=\frac{x-\mu}{\sigma}\qquad \hat y=\text{mode}\{y_{(1..k)}\}\qquad P=\frac{TP}{TP+FP}\quad R=\frac{TP}{TP+FN}\quad F_1=\frac{2PR}{P+R}$$

أرقام لازم تبقى في دماغك

Hold-out⅔ train / ⅓ testSplit مثال70 / 15 / 15
Bootstrap unseen≈ 36.8%Bootstrap repeats≈ 200 · ينفع لـ n < 30
LOOK = NZ 95% / 99%1.96 / 2.576
Digit image28×28 = 784 → 20Iris150 · 4 · 3 · 50
أسرع طريقة لحل MCQ

كلمة السر ← الإجابة

كل مفهوم ليه كلمة بتفضحه في السؤال. اقرا الكلمة وقول الإجابة قبل ما تقلب الكارت.

القايمة كاملة

مسار سريع ومنظّم

المنهج كله في 3 ساعات

فيديو ← قراية مركّزة ← حلّ بإيدك ← MCQ. المسار بيتابعك لوحده: بيعرف شفت إيه وحلّيت كام، ومش بيعدّيك من كويز غير لما توصل 80%.

عندك وقت قد إيه؟

🧭 موقفك دلوقتي

الخطوات

من NotebookLM

المكتبة: فيديوهات، صوت، سلايدات، وكروت

اتفرج على فيديو المحاضرة الأول ← اقرا صفحتها هنا ← اتدرب. والصوت اسمعه في المواصلات.

تدريب

بنك أسئلة MCQ

…

مستواك

ابدأ