فاز 1 · درس 15

آمار در یادگیری ماشین: از آزمون فرض تا بوت‌استرپ

نوع
ساختنی
زمان
حدود 120 دقیقه
زبان‌ها
Python
یک ترازوی سنجش برنجی که روی یک کفه آن نمودار زنگوله‌ای توزیع احتمال و روی کفه دیگر بلوک‌های پراکنده داده قرار دارد
فهرست مطالب
  1. اهداف یادگیری
  2. صورت مسئله
  3. مفاهیم پایه
  4. آمار توصیفی: خلاصه‌سازی داده‌ها
  5. همبستگی: نحوه‌ی تغییر هم‌زمان متغیرها
  6. ماتریس کوواریانس
  7. آزمون فرض
  8. آزمون t
  9. آزمون کای‌اسکوئر
  10. آزمون A/B برای مدل‌های یادگیری ماشین
  11. معناداری آماری در برابر معناداری کاربردی
  12. مسئله‌ی مقایسه‌های چندگانه
  13. روش‌های بوت‌استرپ
  14. آزمون‌های پارامتری در برابر ناپارامتری
  15. قضیه‌ی حد مرکزی: پیامدهای عملی
  16. اشتباهات آماری رایج در مقالات یادگیری ماشین
  17. پیاده‌سازی از صفر
  18. اصطلاحات کلیدی

بسیاری از فعالان یادگیری ماشین با این سناریو روبه‌رو شده‌اند: مدلی جدید آموزش می‌دهید که روی داده‌های تست نمره‌ی بهتری می‌گیرد، اما پس از استقرار در محیط عملیاتی، عملکرد سیستم افت می‌کند. دلیل این اتفاق معمولاً غفلت از مفاهیم آماری است؛ تفاوتی جزئی در دقت یا خطا ممکن است صرفاً ناشی از نوفه‌ی تصادفی، کوچک بودن اندازه‌ی مجموعه‌ی تست یا واریانس بالای ارزیابی باشد.

علم آمار دقیقاً همان ابزاری است که مرز میان بهبودی واقعی و شانسِ تصادفی را مشخص می‌کند. به کمک آزمون‌های فرض، تحلیل واریانس و بازه‌های اطمینان می‌توانید بفهمید چقدر داده برای تصمیم‌گیری نیاز دارید و آیا تغییر مشاهده‌شده از نظر عملی ارزشمند است یا خیر.

در این درس، بدون وابستگی به کتابخانه‌های خارجی مانند numpy یا scipy و تنها با ماژول‌های پایه‌ی Python، مبانی آمار توصیفی، همبستگی‌ها، آزمون‌های t و کای‌اسکوئر، روش بازنمونه‌گیری بوت‌استرپ و شبیه‌سازی تست A/B را از پایه پیاده‌سازی می‌کنید تا تسلطی عمیق بر ارزیابی آماری مدل‌ها پیدا کنید.

آمار ابزاری است که با آن می‌فهمید مدل واقعاً خوب کار می‌کند یا صرفاً شانس آورده است.

اهداف یادگیری

  • محاسبه‌ی آمار توصیفی، همبستگی پیرسون/اسپیرمن و ماتریس کوواریانس از صفر
  • اجرای آزمون‌های فرض (آزمون t و کای‌اسکوئر) و تفسیر درست مقادیر p و بازه‌های اطمینان
  • استفاده از روش بازنمونه‌گیری بوت‌استرپ برای ساخت بازه‌های اطمینان برای هر معیاری، بدون نیاز به فرضیات توزیعی
  • تمایز قائل شدن بین معناداری آماری و معناداری کاربردی به کمک معیارهای اندازه‌ی اثر

صورت مسئله

دو مدل آموزش داده‌اید: مدل A روی مجموعه‌ی آزمون (test set) به امتیاز 0.87 می‌رسد و مدل B امتیاز 0.89 را ثبت می‌کند. مدل B را مستقر (deploy) می‌کنید؛ اما سه هفته بعد، معیارهای پروداکشن از قبل هم بدتر می‌شوند. چه اتفاقی افتاد؟

مدل B در واقعیت بهتر از مدل A عمل نکرده بود. آن تفاوت 0.02 صرفاً نوفه (noise) بود. یا مجموعه‌ی آزمون بیش از حد کوچک بوده، یا واریانس بسیار بالا بوده، یا هر دو. شما عملاً تصادفی‌بودنِ محض را در لباس بهبود عملکرد تحویل پروداکشن داده‌اید.

این سناریو مدام تکرار می‌شود: جابه‌جایی‌های شدید در جدول امتیازات کگل، مقالاتی که نتایجشان بازتولید نمی‌شود و تست‌های A/B که بر اساس چندصد نمونه برنده اعلام می‌کنند. ریشه‌ی همه‌ی این‌ها یک چیز است: نادیده‌گرفتن آمار.

علم آمار ابزارهای لازم را برای تشخیص سیگنال از نوفه در اختیارتان می‌گذارد. آمار مشخص می‌کند که آیا یک تفاوت واقعی است، چقدر باید به نتیجه مطمئن باشید و پیش از اعتماد به نتیجه به چه میزان داده نیاز دارید. تک‌تک خطوط لوله‌ی (pipeline) یادگیری ماشین، هر مقایسه‌ی مدلی و هر آزمایشی به آمار وابسته است. بدون آمار، کار شما فقط حدس و گمان است.

مفاهیم پایه

آمار توصیفی: خلاصه‌سازی داده‌ها

پیش از شروع مدل‌سازی، باید شکل و شمایل داده‌هایتان را بشناسید. آمار توصیفی (descriptive statistics) مجموعه‌داده را در چند عدد فشرده می‌کند تا شکل کلی آن مشخص شود.

معیارهای گرایش به مرکز پاسخ می‌دهند: «نقطه‌ی وسط کجاست؟»

Mean:   sum of all values / count
        mu = (1/n) * sum(x_i)

Median: middle value when sorted
        Robust to outliers. If you have [1, 2, 3, 4, 1000], the mean is 202
        but the median is 3.

Mode:   most frequent value
        Useful for categorical data. For continuous data, rarely informative.

میانگین نقطه‌ی تعادل داده‌هاست؛ میانه نقطه‌ی وسط است. هر وقت این دو از هم فاصله بگیرند، توزیع داده چوله (skewed) است. توزیع درآمد معمولاً دارای mean≫median\text{mean} \gg \text{median} است (چولگی به راست به‌دلیل حضور میلیاردرها). توزیع تابع زیان (loss) هنگام آموزش هم اغلب دارای mean≪median\text{mean} \ll \text{median} است (چولگی به چپ به‌خاطر نمونه‌های ساده).

معیارهای پراکندگی پاسخ می‌دهند: «داده‌ها چقدر پراکنده‌اند؟»

Variance:   average squared deviation from the mean
            sigma^2 = (1/n) * sum((x_i - mu)^2)

Standard deviation:  square root of variance
                     sigma = sqrt(sigma^2)
                     Same units as the data, so more interpretable.

Range:      max - min
            Sensitive to outliers. Almost never useful alone.

IQR:        Q3 - Q1 (interquartile range)
            The range of the middle 50% of the data.
            Robust to outliers. Used for box plots and outlier detection.

صدک‌ها داده‌های مرتب‌شده را به 100 بخش مساوی تقسیم می‌کنند. صدک 25ام (Q1) یعنی 25% مقادیر پایین‌تر از این نقطه‌اند. صدک 50ام همان میانه است و صدک 75ام همان Q3 نام دارد.

For latency monitoring:
  P50 = median latency        (typical user experience)
  P95 = 95th percentile       (bad but not worst case)
  P99 = 99th percentile       (tail latency, often 10x the median)

در یادگیری ماشین، صدک‌ها برای سنجش تأخیر استنتاج (inference latency)، توزیع اطمینان پیش‌بینی و درک توزیع خطا اهمیت زیادی دارند. مدلی که میانگین خطای پایینی دارد اما خطای صدک 99ام (P99) آن فاجعه‌بار است، برای کاربردهای حساس به ایمنی کاملاً بلااستفاده خواهد بود.

آماره‌های نمونه در برابر آماره‌های جامعه. هنگام محاسبه‌ی واریانس از روی یک نمونه، به جای nn بر (n−1)(n-1) تقسیم کنید. به این اصلاح، تصحیح بزل (Bessel's correction) می‌گویند. این کار اثر برابر نبودن میانگین نمونه با میانگین واقعی جامعه را جبران می‌کند. اگر در مخرج کسر nn بگذارید، واریانس واقعی را به‌طور سیستماتیک کمتر از مقدار واقعی برآورد می‌کنید؛ اما با قرار دادن (n−1)(n-1)، برآورد نااریب (unbiased) خواهد بود.

Population variance:σ2=1N∑(xi−μ)2Sample variance:s2=1n−1∑(xi−xˉ)2\begin{aligned} \text{Population variance:} \quad \sigma^2 &= \frac{1}{N} \sum (x_i - \mu)^2 \\ \text{Sample variance:} \quad s^2 &= \frac{1}{n-1} \sum (x_i - \bar{x})^2 \end{aligned}

در عمل: اگر nn بزرگ باشد (چند هزار نمونه)، این تفاوت ناچیز است؛ اما اگر nn کوچک باشد (چند ده نمونه)، این تفاوت تأثیرگذار است.

همبستگی: نحوه‌ی تغییر هم‌زمان متغیرها

همبستگی (correlation) شدت و جهت رابطه‌ی خطی بین دو متغیر را اندازه می‌گیرد.

ضریب همبستگی پیرسون میزان پیوند خطی را می‌سنجد:

r = sum((x_i - x_bar)(y_i - y_bar)) / (n * s_x * s_y)

r = +1:  perfect positive linear relationship
r = -1:  perfect negative linear relationship
r =  0:  no linear relationship (but there might be a nonlinear one!)

Range: [-1, 1]

پیرسون فرض می‌کند که رابطه خطی است و هر دو متغیر توزیعی تقریباً نرمال دارند. این ضریب به داده‌های پرت (outliers) حساس است؛ یک تک‌نقطه‌ی افراطی می‌تواند rr را از 0.1 به 0.9 تغییر دهد.

همبستگی رتبه‌ای اسپیرمن پیوند یکنواخت (monotonic) را ارزیابی می‌کند:

1. Replace each value with its rank (1, 2, 3, ...)
2. Compute Pearson correlation on the ranks

Spearman catches any monotonic relationship, not just linear.
If y = x^3, Pearson gives r < 1 but Spearman gives rho = 1.

کِی از کدام استفاده کنیم؟

Pearson:    Both variables are continuous and roughly normal.
            You care about the linear relationship specifically.
            No extreme outliers.

Spearman:   Ordinal data (rankings, ratings).
            Data is not normally distributed.
            You suspect a monotonic but not linear relationship.
            Outliers are present.

قانون طلایی: همبستگی لزوماً به‌معنای علیت نیست. فروش بستنی و موارد غرق‌شدگی با هم همبستگی دارند، چون هر دو در تابستان زیاد می‌شوند. دقت مدل شما و تعداد پارامترهای آن هم با هم همبستگی دارند، اما افزودن پارامتر لزوماً دقت را بالا نمی‌برد (نگاه کنید به: بیش‌برازش).

ماتریس کوواریانس

کوواریانس بین دو متغیر نشان می‌دهد که آن‌ها چگونه در کنار یکدیگر تغییر می‌کنند:

Cov(X, Y) = (1/n) * sum((x_i - x_bar)(y_i - y_bar))

Cov(X, Y) > 0:  X and Y tend to increase together
Cov(X, Y) < 0:  when X increases, Y tends to decrease
Cov(X, Y) = 0:  no linear co-movement

برای dd ویژگی، ماتریس کوواریانس CC یک ماتریس d×dd \times d است که در آن C[i][j]=Cov(featurei,featurej)C[i][j] = \mathop{\mathrm{Cov}}(\text{feature}_i, \text{feature}_j). درایه‌های روی قطر اصلی C[i][i]C[i][i] همان واریانس‌های هر ویژگی هستند.

C = | Var(x1)      Cov(x1,x2)  Cov(x1,x3) |
    | Cov(x2,x1)  Var(x2)      Cov(x2,x3) |
    | Cov(x3,x1)  Cov(x3,x2)  Var(x3)     |

Properties:
  - Symmetric: C[i][j] = C[j][i]
  - Positive semi-definite: all eigenvalues >= 0
  - Diagonal = variances
  - Off-diagonal = covariances

ارتباط با PCA. روش تحلیل مؤلفه‌های اصلی (PCA) ماتریس کوواریانس را از طریق تجزیه‌ی مقادیر ویژه (eigendecomposition) تحلیل می‌کند. بردارهای ویژه همان مؤلفه‌های اصلی هستند (جهت‌های بیشترین واریانس). مقادیر ویژه هم نشان می‌دهند هر مؤلفه چقدر از واریانس را پوشش می‌دهد. این دقیقاً همان مبحثی است که در درس 10 بررسی شد؛ اما حالا می‌بینید چرا ماتریس کوواریانس گزینه‌ی درستی برای تجزیه است: چون تمام روابط خطی دوبه‌دو را در داده‌ها ذخیره می‌کند.

ارتباط با همبستگی. ماتریس همبستگی در واقع همان ماتریس کوواریانسِ متغیرهای استانداردشده است (یعنی هر متغیر تقسیم بر انحراف معیار خودش شده است). همبستگی با نرمال‌سازی کوواریانس، تمام مقادیر را به بازه‌ی [−1,1][-1, 1] منتقل می‌کند.

آزمون فرض

آزمون فرض (hypothesis testing) چارچوبی برای تصمیم‌گیری در شرایط عدم قطعیت است. با یک ادعا شروع می‌کنید، داده گردآوری می‌کنید و مشخص می‌سازید که آیا داده‌ها با آن ادعا همخوانی دارند یا خیر.

روال کار:

Null hypothesis (H0):        the default assumption, usually "no effect"
Alternative hypothesis (H1): what you are trying to show

Example:
  H0: Model A and Model B have the same accuracy
  H1: Model B has higher accuracy than Model A

مقدار p احتمال مشاهده‌ی داده‌هایی به همین شدت یا شدیدتر است، با این فرض که H0 درست باشد. مقدار p احتمال درستی H0 نیست. این مورد رایج‌ترین سوءتفاهم در کل علم آمار است.

p-value = P(data this extreme | H0 is true)

If p-value < alpha (typically 0.05):
    Reject H0. The result is "statistically significant."
If p-value >= alpha:
    Fail to reject H0. You do not have enough evidence.
    This does NOT mean H0 is true.

بازه‌های اطمینان بازه‌ای از مقادیر محتمل را برای یک پارامتر نشان می‌دهند:

95% confidence interval for the mean:
    x_bar +/- z * (s / sqrt(n))

where z = 1.96 for 95% confidence

Interpretation: if you repeated this experiment many times, 95% of the
computed intervals would contain the true mean. It does NOT mean there
is a 95% probability the true mean is in this specific interval.

عرض بازه‌ی اطمینان، دقت برآورد را نشان می‌دهد. بازه‌های عریض نشان‌دهنده‌ی عدم قطعیت بالا هستند. بازه‌های باریک یعنی برآورد شما دقیق است (البته اگر داده‌هایتان اریب نباشند، لزوماً به‌معنای درست بودنِ آن نیست).

آزمون t

آزمون t میانگین‌ها را مقایسه می‌کند و چند حالت دارد.

آزمون t تک‌نمونه‌ای: آیا میانگین جامعه با یک مقدار مفروض تفاوت دارد؟

t=xˉ−μ0s/ndegrees of freedom=n−1\begin{aligned} t &= \frac{\bar{x} - \mu_0}{s / \sqrt{n}} \\[4pt] \text{degrees of freedom} &= n - 1 \end{aligned}

آزمون t دو‌نمونه‌ای (مستقل): آیا میانگین دو گروه با هم متفاوت است؟

t = (x_bar_1 - x_bar_2) / sqrt(s1^2/n1 + s2^2/n2)

This is Welch's t-test, which does not assume equal variances.
Always use Welch's unless you have a specific reason for equal variances.

آزمون t جفتی: وقتی اندازه‌گیری‌ها به‌صورت جفت باشند (ارزیابی یک مدل روی همان برش‌های داده):

Compute d_i = x_i - y_i for each pair
Then run a one-sample t-test on the d_i values against mu_0 = 0

در یادگیری ماشین، آزمون t جفتی بسیار رایج است: هر دو مدل را روی همان 10 فولد اعتبارسنجی متقاطع (cross-validation) اجرا می‌کنید و نمرات آن‌ها را دوبه‌دو می‌سنجید.

آزمون کای‌اسکوئر

آزمون کای‌اسکوئر (chi-squared) بررسی می‌کند که آیا فراوانی‌های مشاهده‌شده با فراوانی‌های مورد انتظار همخوانی دارند یا خیر. این آزمون برای داده‌های دسته‌ای کاربرد دارد.

chi^2 = sum((observed - expected)^2 / expected)

Example: does a language model's output distribution match the
training distribution across categories?

Category    Observed   Expected
Positive       120        100
Negative        80        100
chi^2 = (120-100)^2/100 + (80-100)^2/100 = 4 + 4 = 8

With 1 degree of freedom, chi^2 = 8 gives p < 0.005.
The difference is significant.

آزمون A/B برای مدل‌های یادگیری ماشین

آزمون A/B در یادگیری ماشین دقیقاً مثل آزمون‌های وب نیست. مقایسه‌ی مدل‌ها چالش‌های خاص خودش را دارد:

1. Same test set:    Both models must be evaluated on identical data.
                     Different test sets make comparison meaningless.

2. Multiple metrics: Accuracy alone is not enough. You need precision,
                     recall, F1, latency, and fairness metrics.

3. Variance:         Use cross-validation or bootstrap to estimate
                     the variance of each metric, not just point estimates.

4. Data leakage:     If the test set was used during model selection,
                     your comparison is biased. Hold out a final test set.

مراحل اجرا:

1. Define your metric and significance level (alpha = 0.05)
2. Run both models on the same k-fold cross-validation splits
3. Collect paired scores: [(a1, b1), (a2, b2), ..., (ak, bk)]
4. Compute differences: d_i = b_i - a_i
5. Run a paired t-test on the differences
6. Check: is the mean difference significantly different from 0?
7. Compute a confidence interval for the mean difference
8. Compute effect size (Cohen's d) to judge practical significance

معناداری آماری در برابر معناداری کاربردی

یک نتیجه می‌تواند از نظر آماری معنادار باشد، اما در عمل کاملاً بی‌اهمیت باشد. اگر به‌اندازه‌ی کافی داده داشته باشید، حتی جزئی‌ترین تفاوت‌ها هم از نظر آماری معنادار می‌شوند.

Example:
  Model A accuracy: 0.9234
  Model B accuracy: 0.9237
  n = 1,000,000 test samples
  p-value = 0.001

Statistically significant? Yes.
Practically significant? A 0.03% improvement is not worth the
engineering cost of deploying a new model.

اندازه‌ی اثر بزرگی تفاوت را مستقل از حجم نمونه مشخص می‌کند:

Cohen’s d=mean1−mean2pooled_stdd=0.2:small effectd=0.5:medium effectd=0.8:large effect\begin{aligned} \text{Cohen's } d &= \frac{\text{mean}_1 - \text{mean}_2}{\text{pooled\_std}} \\[4pt] d &= 0.2: \quad \text{small effect} \\ d &= 0.5: \quad \text{medium effect} \\ d &= 0.8: \quad \text{large effect} \end{aligned}

همیشه هم مقدار p و هم اندازه‌ی اثر را گزارش کنید. مقدار p می‌گوید آیا تفاوت واقعی است؛ اندازه‌ی اثر می‌گوید آیا این تفاوت اهمیتی هم دارد یا خیر.

مسئله‌ی مقایسه‌های چندگانه

وقتی فرضیه‌های زیادی را آزمون می‌کنید، برخی از آن‌ها صرفاً بر حسب تصادف «معنادار» می‌شوند. اگر 20 مورد را در سطح α=0.05\alpha = 0.05 آزمون کنید، انتظار می‌رود دست‌کم 1 نتیجه‌ی مثبت کاذب بگیرید، حتی اگر هیچ اثر واقعی در کار نباشد.

P(at least one false positive) = 1 - (1 - alpha)^m

m = 20 tests, alpha = 0.05:
P(false positive) = 1 - 0.95^20 = 0.64

You have a 64% chance of at least one false positive.

تصحیح بونفرونی: آستانه‌ی α\alpha را بر تعداد آزمون‌ها تقسیم کنید.

Adjusted alpha = alpha / m = 0.05 / 20 = 0.0025

Only reject H0 if p-value < 0.0025.
Conservative but simple. Works when tests are independent.

در یادگیری ماشین، وقتی مدلی را با چند معیار مختلف می‌سنجید، هایپرپارامترهای متعددی را آزمون می‌کنید، یا مدل را روی چند مجموعه‌داده ارزیابی می‌کنید، این موضوع اهمیت پیدا می‌کند.

روش‌های بوت‌استرپ

بوت‌استرپ (bootstrapping) توزیع نمونه‌گیری یک آماره را از طریق بازنمونه‌گیری با جایگذاری (resampling with replacement) برآورد می‌کند؛ بدون اینکه به هیچ پیش‌فرضی درباره‌ی توزیع اصلی داده‌ها نیاز داشته باشد.

الگوریتم:

1. You have n data points
2. Draw n samples WITH replacement (some points appear multiple times,
   some not at all)
3. Compute your statistic on this bootstrap sample
4. Repeat B times (typically B = 1000 to 10000)
5. The distribution of bootstrap statistics approximates the
   sampling distribution

بازه‌ی اطمینان بوت‌استرپ (روش صدک):

Sort the B bootstrap statistics
95% CI = [2.5th percentile, 97.5th percentile]

چرا بوت‌استرپ برای یادگیری ماشین حیاتی است:

- Test set accuracy is a point estimate. Bootstrap gives you
  confidence intervals.
- You cannot assume metric distributions are normal (especially
  for AUC, F1, precision at k).
- Bootstrap works for ANY statistic: median, ratio of two means,
  difference in AUC between two models.
- No closed-form formula needed.

بوت‌استرپ برای مقایسه‌ی مدل‌ها:

1. You have predictions from Model A and Model B on the same test set
2. For each bootstrap iteration:
   a. Resample test indices with replacement
   b. Compute metric_A and metric_B on the resampled set
   c. Store diff = metric_B - metric_A
3. 95% CI for the difference:
   [2.5th percentile of diffs, 97.5th percentile of diffs]
4. If the CI does not contain 0, the difference is significant

این رویکرد پایدارتر از آزمون t جفتی است، زیرا هیچ فرضی روی توزیع داده‌ها ندارد.

آزمون‌های پارامتری در برابر ناپارامتری

آزمون‌های پارامتری توزیع مشخصی (معمولاً نرمال) را برای داده‌ها فرض می‌کنند:

t-test:         assumes normally distributed data (or large n by CLT)
ANOVA:          assumes normality and equal variances
Pearson r:      assumes bivariate normality

آزمون‌های ناپارامتری هیچ فرضی برای توزیع در نظر نمی‌گیرند:

Mann-Whitney U:     compares two groups (replaces independent t-test)
Wilcoxon signed-rank: compares paired data (replaces paired t-test)
Spearman rho:       correlation on ranks (replaces Pearson)
Kruskal-Wallis:     compares multiple groups (replaces ANOVA)

کِی از آزمون‌های ناپارامتری استفاده کنیم:

- Small sample size (n < 30) and data is clearly non-normal
- Ordinal data (ratings, rankings)
- Heavy outliers you cannot remove
- Skewed distributions

کِی از آزمون‌های پارامتری استفاده کنیم:

- Large sample size (CLT makes the test statistic approximately normal)
- Data is roughly symmetric without extreme outliers
- More statistical power (better at detecting real differences)

در آزمایش‌های یادگیری ماشین، معمولاً مقدار nn کوچک است (مثلاً 5 یا 10 فولد اعتبارسنجی متقاطع)، بنابراین آزمون‌های ناپارامتری مثل آزمون رتبه‌دار ویلکاکسون اغلب مناسب‌تر از آزمون t هستند.

قضیه‌ی حد مرکزی: پیامدهای عملی

قضیه‌ی حد مرکزی (CLT) بیان می‌کند که با افزایش nn، توزیع میانگین‌های نمونه فارغ از اینکه توزیع جامعه‌ی اصلی چه باشد، به سمت توزیع نرمال میل می‌کند.

If X_1, X_2, ..., X_n are iid with mean mu and variance sigma^2:

    X_bar ~ Normal(mu, sigma^2 / n)    as n -> infinity

Works for n >= 30 in most cases.
For highly skewed distributions, you might need n >= 100.

چرا این قضیه برای یادگیری ماشین مهم است:

1. Justifies confidence intervals and t-tests on aggregated metrics
2. Explains why averaging over cross-validation folds gives stable
   estimates even when individual folds vary wildly
3. Mini-batch gradient descent works because the average gradient
   over a batch approximates the true gradient (CLT in action)
4. Ensemble methods: averaging predictions from many models gives
   more stable output than any single model

چه کارهایی از عهده‌ی CLT برنمی‌آید:

- Does NOT make your data normal. It makes the MEAN of samples normal.
- Does NOT work for heavy-tailed distributions with infinite variance
  (Cauchy distribution).
- Does NOT apply to dependent data (time series without correction).

اشتباهات آماری رایج در مقالات یادگیری ماشین

  1. ارزیابی روی مجموعه‌ی آموزش. قطعی‌بودن بیش‌برازش را به دنبال دارد. همیشه بخشی از داده را که مدل حین آموزش هرگز ندیده است کنار بگذارید.

  2. گزارش نکردن بازه‌ی اطمینان. گزارش یک عدد منفرد برای دقت بدون مشخص کردن عدم قطعیت، بازتولیدپذیری و اعتبارسنجی نتایج را ناممکن می‌کند.

  3. نادیده‌گرفتن مقایسه‌های چندگانه. آزمون 50 پیکربندی مختلف و گزارش بهترینِ آن‌ها بدون تصحیح، نرخ مثبت کاذب را به شدت بالا می‌برد.

  4. خلط معناداری آماری با معناداری کاربردی. مقدار p برابر 0.001 برای بهبود 0.01 درصدی دقت هیچ ارزش عملی ندارد.

  5. استفاده از معیار دقت روی داده‌های نامتوازن. دقت 99% روی داده‌ای که 99% آن کلاس منفی است یعنی مدل عملاً هیچ چیز یاد نگرفته است. از معیارهای precision، recall، F1 یا AUC استفاده کنید.

  6. دست‌چین کردن معیارها (Cherry-picking). گزارش دادنِ صرف معیاری که مدل شما در آن پیروز شده است. در یک ارزیابی صادقانه باید همه‌ی معیارهای مرتبط آورده شوند.

  7. نشت اطلاعات بین داده‌های آموزش و تست. نرمال‌سازی داده‌ها پیش از تقسیم‌بندی، یا استفاده از داده‌های آینده برای پیش‌بینی گذشته.

  8. مجموعه‌های تست کوچک بدون برآورد واریانس. ارزیابی روی 100 نمونه و ادعای 2% بهبود، فقط نوفه است نه سیگنال واقعی.

  9. فرض استقلال در شرایطی که داده‌ها مستقل نیستند. مثل تصاویر پزشکی متعلق به یک بیمار یا چند جمله از یک سند مشترک. مشاهدات درون یک گروه با هم پیوستگی دارند.

  10. دست‌کاری داده برای رسیدن به معناداری آماری (P-hacking). امتحان کردن پیاپی آزمون‌ها، زیرمجموعه‌ها یا معیارهای حذف داده تا زمانی که به p<0.05p < 0.05 برسید. نتیجه در این حالت حاصل جستجوی مکرر است نه واقعیتی در داده.

پیاده‌سازی از صفر

موارد زیر را پیاده‌سازی خواهید کرد:

  1. آمار توصیفی از صفر (میانگین، میانه، نما، انحراف معیار، صدک‌ها و دامنه میان‌چارکی یا IQR)
  2. توابع همبستگی (پیرسون و اسپیرمن به همراه ماتریس کوواریانس)
  3. آزمون‌های فرض (آزمون t تک‌نمونه‌ای، آزمون t دونمونه‌ای و آزمون کای‌اسکوئر)
  4. بازه‌های اطمینان بوت‌استرپ (برای هر آماره‌ای، بدون نیاز به پیش‌فرض‌های توزیعی)
  5. شبیه‌ساز آزمون A/B (تولید داده، آزمون و بررسی خطاهای نوع اول و نوع دوم)
  6. دموی معناداری آماری در برابر کاربردی (نمایش اینکه چطور یک nn بزرگ همه‌چیز را «معنادار» نشان می‌دهد)

همه‌ی این‌ها را از صفر و صرفاً با ماژول‌های math و random می‌نویسیم؛ بدون استفاده از numpy یا scipy.

بازتولید نمونه بوت‌استرپ (BOOTSTRAP RESAMPLING)نمونه‌گیری مجدد، محاسبه مجدد، تکرار
BOOTSTRAP RESAMPLINGThe bootstrap treats your sample as a stand-in for the population. Draw n points with replacement, compute the statistic, and repeat thousands of times: the resulting distribution of bootstrap means shows how much the statistic wobbles from sampling noise alone. The middle 95 percent of it is a confidence interval that needs no normality assumption.observed data (n = 10)نمونه‌گیری مجدد با جایگذاریتوزیع میانگین‌های بوت‌استرپفاصله اطمینان 95٪
روش بوت‌استرپ با نمونه شما مانند نماینده‌ای از کل جامعه آماری رفتار می‌کند. n نقطه را با جایگذاری انتخاب کنید، آماره را محاسبه کنید، و این کار را هزاران بار تکرار نمایید: توزیع به‌دست‌آمده از میانگین‌های بوت‌استرپ نشان می‌دهد که آماره صرفاً بر اثر نوفه نمونه‌گیری چقدر نوسان می‌کند. 95 درصد میانی آن، یک فاصله اطمینان است که نیازی به فرض نرمال بودن ندارد.

اصطلاحات کلیدی

اصطلاح تعریف
میانگین (Mean) مجموع مقادیر تقسیم بر تعداد آن‌ها؛ به داده‌های پرت حساس است.
میانه (Median) مقدار میانی داده‌های مرتب‌شده؛ در برابر داده‌های پرت مقاوم است.
انحراف معیار (Standard deviation) جذر واریانس؛ پراکندگی را در مقیاس واحدهای اصلی داده می‌سنجد.
صدک (Percentile) مقداری که درصد معینی از داده‌ها زیر آن قرار می‌گیرند.
دامنه میان‌چارکی (IQR) تفاضل چارک سوم و چارک اول (Q3 منهای Q1)؛ دامنه‌ی پراکندگی 50% داده‌های میانی.
همبستگی پیرسون (Pearson correlation) میزان پیوند خطی دو متغیر را در بازه‌ی [−1,1][-1, 1] می‌سنجد.
همبستگی اسپیرمن (Spearman correlation) پیوند یکنواخت بین متغیرها را بر اساس رتبه‌ی آن‌ها ارزیابی می‌کند.
ماتریس کوواریانس (Covariance matrix) ماتریسی شامل کوواریانس‌های دوبه‌دوی تمام ویژگی‌ها.
فرض صفر (Null hypothesis) فرض پیش‌فرضی که بیانگر عدم وجود اثر یا تفاوت است.
مقدار p (p-value) احتمال مشاهده‌ی داده‌هایی به همین شدت یا شدیدتر به شرط درست‌بودن فرض صفر.
بازه‌ی اطمینان (Confidence interval) بازه‌ای از مقادیر محتمل برای یک پارامتر در یک سطح اطمینان مشخص.
آزمون t (t-test) تفاوت معنادار میانگین‌ها را با استفاده از توزیع t بررسی می‌کند.
آزمون کای‌اسکوئر (Chi-squared test) تفاوت بین فراوانی‌های مشاهده‌شده و مورد انتظار را بررسی می‌کند.
اندازه‌ی اثر (Effect size) بزرگی یک تفاوت مستقل از حجم نمونه؛ شاخص d کوهن (Cohen's d) رایج‌ترین نوع آن است.
تصحیح بونفرونی (Bonferroni correction) تقسیم آستانه‌ی معناداری بر تعداد آزمون‌ها برای مهار مثبت‌های کاذب.
بوت‌استرپ (Bootstrap) روش بازنمونه‌گیری با جایگذاری برای برآورد توزیع‌های نمونه‌گیری.
خطای نوع اول (Type I error) مثبت کاذب؛ رد کردن فرض صفر وقتی که واقعاً درست است.
خطای نوع دوم (Type II error) منفی کاذب؛ رد نکردن فرض صفر وقتی که واقعاً نادرست است.
توان آماری (Statistical power) احتمال رد کردن درستِ فرض صفری که نادرست است؛ توان برابر با 1 منهای نرخ خطای نوع دوم است.
قضیه‌ی حد مرکزی (Central limit theorem) همگرایی میانگین‌های نمونه به توزیع نرمال هم‌گام با افزایش حجم نمونه.
آزمون پارامتری (Parametric test) آزمونی که توزیع مشخصی را برای داده‌ها فرض می‌کند (معمولاً نرمال).
آزمون ناپارامتری (Non-parametric test) آزمونی بدون فرض توزیعی؛ روی رتبه‌ها یا علامت مقادیر کار می‌کند.

خودآزمایی

به سؤال‌ها جواب بدهید تا ببینید چقدر از درس در ذهنتان مانده است.

  1. پیش از درسمقدار p-value برابر با 0.03 در یک آزمون فرض به چه معناست؟
  2. پیش از درسچرا هنگام محاسبه واریانس نمونه به‌جای n بر (n-1) تقسیم می‌کنیم؟
  3. پس از درسشما 20 پیکربندی مختلف مدل را در سطح alpha = 0.05 آزمایش می‌کنید. احتمال تقریبی حداقل یک مثبت کاذب چقدر است؟
  4. پس از درسمدل A امتیاز 0.9234 و مدل B امتیاز 0.9237 را روی 1 میلیون نمونه آزمایشی با p-value = 0.001 کسب می‌کنند. چه نتیجه‌ای باید بگیرید؟
  5. پس از درسبوت‌استرپ چه مزیتی نسبت به آزمون t جفتی برای مقایسه دو مدل یادگیری ماشین دارد؟

سؤالات متداول

چرا بهبود دقت مدل روی مجموعه‌ی تست همیشه قابل اعتماد نیست؟

اگر اندازه‌ی مجموعه‌ی تست کوچک یا واریانس بالا باشد، تفاوت نمرات ممکن است صرفاً نوفه‌ی تصادفی باشد؛ برای اطمینان از واقعی بودن بهبودی، باید از آزمون‌های آماری و بازه‌های اطمینان استفاده کرد.

تفاوت معناداری آماری با معناداری کاربردی چیست؟

معناداری آماری (با p-value) نشان می‌دهد تفاوت تصادفی نیست، اما با داده‌های بسیار زیاد حتی تفاوت‌های بسیار ناچیز هم معنادار می‌شوند؛ اندازه‌ی اثر (Effect Size) مشخص می‌کند که آیا این تفاوت در عمل ارزشی دارد یا خیر.

چرا روش بوت‌استرپ برای ارزیابی مدل‌های یادگیری ماشین مناسب است؟

بوت‌استرپ بدون نیاز به هیچ فرض توزیعی، از طریق بازنمونه‌گیری با جایگذاری، بازه‌ی اطمینان هر معیاری را برآورد می‌کند و برای مقایسه‌ی مدل‌ها بسیار پایدارتر از آزمون‌های پارامتری است.

ما رو توی گوگل بیشتر ببین

با افزودن نکست ادمین به «منابع ترجیحی» گوگل، درس‌ها و مطالب ما را در بخش اخبار برتر جستجو بیشتر می‌بینید.