الاحتمالات والإحصاء
“لغة عدم اليقين — توزيعات الاحتمالية والتقدير الأعظمي والاستدلال البايزي”
التوزيعات الاحتمالية والاحتمالية القصوى ومبرهنة بايز واختبار الفرضيات ومبرهنة النهاية المركزية — لغة عدم اليقين وراء كل دالة خسارة ومقياس تقييم.
المتطلبات الأساسية
المفاهيم المغطاة
∑الصيغ الرئيسية
نظرية بايز
تحديث الاعتقاد المسبق P(H) بالدليل E للحصول على الاحتمال اللاحق P(H|E)
تقدير الاحتمالية الأعظمية
إيجاد المعاملات التي تجعل البيانات المرصودة أكثر احتمالاً — معادلة لتقليل NLL
دالة كثافة الاحتمال العادية
منحنى الجرس — محدد تماماً بالمتوسط μ والانحراف المعياري σ
نظرية الحد المركزي
مجموع n متغير مستقل متماثل يتقارب نحو العادي عند n→∞ — سبب انتشار التوزيع العادي
▶محاكاة تفاعلية
الشك في كل مكان في تعلم الآلة
التعلم الآلي يتعلق في جوهره بالتنبؤ في ظل عدم اليقين. التصنيف يُخرج احتمالات (ليس فقط تسميات). النماذج البايزية تحافظ على توزيعات كاملة على المعاملات. بدون نظرية الاحتمالات، لا يمكنك التفكير في: هل النموذج واثق بشكل خاطئ، هل تقسيم التدريب/الاختبار يعطي تقديراً موثوقاً، أو هل النموذجان مختلفان فعلاً.
خسارة السجل (الإنتروبيا التقاطعية) هي اللوغاريتم السلبي للاحتمالية لتوزيع برنولي. تقليل الإنتروبيا التقاطعية هو تقدير الاحتمالية الأعظمية. إنهما نفس الشيء.
التوزيعات — الأهم منها
**عادية (غاوسية):** على شكل جرس، متماثلة. في كل مكان بفضل نظرية الحد المركزي. محددة بـμ (الموقع) وσ (الانتشار). **ثنائية الحدود:** عدد النجاحات في n تجربة ثنائية باحتمالية p. **بواسون:** عدد الأحداث في فترة زمنية ثابتة. **برنولي:** تجربة ثنائية واحدة. **ستيودنت-t:** كالعادية لكن بذيول أثقل — لاختبارات العينات الصغيرة. فهم أي توزيع يناسب مشكلتك مهارة أساسية.
إذا كانت X₁, X₂, …, Xₙ مستقلة متماثلة التوزيع بمتوسط μ وتباين محدود σ²، فإن √n(X̄-μ)/σ → N(0,1). هذا سبب أن كل شيء تقريباً يصبح غاوسياً بعد معدل كافٍ من العينات.
تقدير الاحتمالية الأعظمية
اختر نموذجاً احتمالياً p(x|θ) لبياناتك (مثال: عادي، ثنائي الحدود).
اكتب دالة الاحتمالية: L(θ) = ∏ᵢ p(xᵢ|θ) — احتمالية البيانات المرصودة تحت θ.
خذ اللوغاريتم: ℓ(θ) = Σᵢ log p(xᵢ|θ) — لوغاريتم الاحتمالية أسهل في التحسين (مجموع بدلاً من حاصل ضرب).
اشتق ∂ℓ/∂θ، ساوِه صفراً، حل للحصول على θ̂_AGA.
للتوزيع العادي: θ̂_AGA = (μ̂=x̄، σ̂²=Σ(xᵢ-x̄)²/n) — المتوسط والتباين المتحيز التجريبي.
للانحدار اللوجستي: لا صيغة مغلقة → استخدم الانحدار التدرجي على خسارة السجل = -ℓ(θ).
الاحتمالية مع SciPy و NumPy
import numpy as np from scipy import stats import matplotlib.pyplot as plt class="tok-comment"># ── Normal distribution ─────────────────────────────────────────────────────── mu, sigma = class="tok-num">170, class="tok-num">10 class="tok-comment"># heights in cm dist = stats.norm(mu, sigma) x = np.linspace(class="tok-num">135, class="tok-num">205, class="tok-num">500) pdf = dist.pdf(x) class="tok-comment"># Probabilities p_tall = class="tok-num">1 - dist.cdf(class="tok-num">190) class="tok-comment"># P(X > class="tok-num">190) p_range = dist.cdf(class="tok-num">180) - dist.cdf(class="tok-num">160) class="tok-comment"># P(class="tok-num">160 < X < class="tok-num">180) print(fclass="tok-str">"P(height > 190cm) = {p_tall:.4f}") print(fclass="tok-str">"P(class="tok-num">160 < height < class="tok-num">180) = {p_range:.4f}") class="tok-comment"># class="tok-num">68-class="tok-num">95-class="tok-num">99.7 rule for k in [class="tok-num">1, class="tok-num">2, class="tok-num">3]: p = dist.cdf(mu + k*sigma) - dist.cdf(mu - k*sigma) print(fclass="tok-str">"P(μ ± {k}σ) = {p:.4f}") class="tok-comment"># ≈ class="tok-num">0.68, class="tok-num">0.95, class="tok-num">0.997 class="tok-comment"># ── MLE — fitting a Normal distribution ────────────────────────────────────── data = np.random.normal(class="tok-num">170, class="tok-num">10, size=class="tok-num">100) mu_mle, sigma_mle = data.mean(), data.std() print(fclass="tok-str">"\nMLE fit: μ̂={mu_mle:.2f}, σ̂={sigma_mle:.2f}") class="tok-comment"># SciPy MLE (same result, handles any distribution) mu_fit, sigma_fit = stats.norm.fit(data) print(fclass="tok-str">"scipy fit: μ={mu_fit:.2f}, σ={sigma_fit:.2f}") class="tok-comment"># ── Bayes' theorem ──────────────────────────────────────────────────────────── class="tok-comment"># Disease testing: prevalence class="tok-num">1%, test sensitivity class="tok-num">99%, specificity class="tok-num">95% p_disease = class="tok-num">0.01 p_pos_given_disease = class="tok-num">0.99 class="tok-comment"># sensitivity p_neg_given_healthy = class="tok-num">0.95 class="tok-comment"># specificity → P(pos|healthy) = class="tok-num">0.05 p_healthy = class="tok-num">1 - p_disease p_pos_given_healthy = class="tok-num">1 - p_neg_given_healthy class="tok-comment"># P(positive) = P(pos|disease)*P(disease) + P(pos|healthy)*P(healthy) p_pos = p_pos_given_disease * p_disease + p_pos_given_healthy * p_healthy class="tok-comment"># Bayes: P(disease | positive test) p_disease_given_pos = (p_pos_given_disease * p_disease) / p_pos print(fclass="tok-str">"\nP(disease | positive test) = {p_disease_given_pos:.4f}") class="tok-comment"># ~class="tok-num">16.4%! class="tok-comment"># Counterintuitive: despite class="tok-num">99% accurate test, only class="tok-num">16% chance with +ve result class="tok-comment"># due to low base rate (prior) — base rate fallacy class="tok-comment"># ── Hypothesis testing ──────────────────────────────────────────────────────── class="tok-comment"># Are two group means different? group_a = np.random.normal(class="tok-num">5.0, class="tok-num">1.5, class="tok-num">50) group_b = np.random.normal(class="tok-num">5.5, class="tok-num">1.5, class="tok-num">50) t_stat, p_value = stats.ttest_ind(group_a, group_b) print(fclass="tok-str">"\nt-test: t={t_stat:.3f}, p={p_value:.4f}") print(class="tok-str">"Significant at α=class="tok-num">0.05:", p_value < class="tok-num">0.05) class="tok-comment"># Bootstrap confidence interval for mean (distribution-free) np.random.seed(class="tok-num">42) boot_means = [np.random.choice(group_a, size=len(group_a), replace=True).mean() for _ in range(class="tok-num">10000)] ci_low, ci_high = np.percentile(boot_means, [class="tok-num">2.5, class="tok-num">97.5]) print(fclass="tok-str">"class="tok-num">95% CI for group A mean: [{ci_low:.3f}, {ci_high:.3f}]")
قيم p ليست ما تعتقد
قيمة p < 0.05 لا تعني 'هناك احتمال 95% أن التأثير حقيقي.' تعني: 'لو كانت الفرضية الصفرية صحيحة، سنرى بيانات بهذا التطرف أقل من 5% من الوقت.' مزالق خاصة بالتعلم الآلي: (1) المقارنات المتعددة: إذا اختبرت 20 تكويناً وأبلغت عن الأفضل، صحح بـBonferroni. (2) الخلط بين الأهمية الإحصائية والأهمية العملية. (3) تنقيب البيانات: اختبار انقسامات عديدة حتى تجد واحدة 'يتفوق' فيها نموذجك على خط الأساس.
حجم التأثير (d لكوهين = (μ₁-μ₂)/σ) يخبرك إذا كان الفرق مهماً عملياً. p=0.0001 مع d=0.02 مهم إحصائياً لكن لا معنى له عملياً.
?اختبار المعرفة
يتم حفظ التقدم في متصفحك — لا حاجة لحساب.