پیشرفتهml

یادگیری نظارت‌شده — کاربرد در ترید

15 دقیقه
یادگیری نظارت‌شده — کاربرد در ترید

Classification و Regression.

یادگیری نظارت‌شده — کاربرد در ترید: Classification و Regression

هدف یادگیری

پس از مطالعه این درس، قادر خواهید بود:
- تفاوت بنیادی بین مسائل Classification و Regression را در بستر بازارهای مالی تشخیص دهید.
- فرمول‌های ریاضی هر رویکرد را درک کرده و به داده‌های واقعی قیمتی اعمال کنید.
- معیارهای ارزیابی مناسب برای هر نوع مدل را انتخاب و تفسیر کنید.
- خطاهای رایج در پیاده‌سازی این مدل‌ها روی داده‌های سری زمانی مالی را بشناسید.

---

۱. چارچوب یادگیری نظارت‌شده در بازار مالی

یادگیری نظارت‌شده (Supervised Learning) بر این اصل استوار است: مدل از روی جفت‌های $(x_i, y_i)$ یاد می‌گیرد، که در آن $x_i$ بردار ویژگی‌ها (features) و $y_i$ برچسب یا مقدار هدف است. در ترید، $x_i$ می‌تواند شامل بازده‌های تاریخی، حجم معاملات، شاخص‌های فنی مانند RSI و MACD، و داده‌های آپشن مثل Implied Volatility باشد.

تابع هدف کلی این است:

$$\hat{f} = \arg\min_{f \in \mathcal{F}} \sum_{i=1}^{n} \mathcal{L}(y_i, f(x_i)) + \lambda \Omega(f)$$

جایی که $\mathcal{L}$ تابع زیان، $\Omega(f)$ جمله تنظیم‌کننده (regularization) و $\lambda$ ضریب کنترل پیچیدگی مدل است.

تمایز کلیدی: اگر $y_i \in \{0, 1\}$ یا $\{-1, 0, +1\}$ باشد، با Classification روبرو هستیم. اگر $y_i \in \mathbb{R}$ باشد، مسئله Regression است. انتخاب اشتباه بین این دو، کل معماری پایپ‌لاین را خراب می‌کند.

---

۲. Regression در ترید: پیش‌بینی بازده آتی

مدل خطی پایه و بسط آن

ساده‌ترین فرم، رگرسیون خطی چندگانه است:

$$r_{t+1} = \beta_0 + \beta_1 \cdot \text{RSI}_t + \beta_2 \cdot \text{Vol}_t + \beta_3 \cdot r_t + \epsilon_t$$

اما بازارهای مالی روابط غیرخطی قوی دارند. به همین دلیل در عمل از Ridge Regression استفاده می‌شود تا از overfitting جلوگیری شود:

$$\hat{\beta}_{\text{Ridge}} = \arg\min_{\beta} \left( \|y - X\beta\|_2^2 + \lambda \|\beta\|_2^2 \right)$$

حل بسته این معادله:

$$\hat{\beta}_{\text{Ridge}} = (X^\top X + \lambda I)^{-1} X^\top y$$

مثال عملی: پیش‌بینی بازده روزانه BTC/USDT

فرض کنید روی ۵۰۰ روز داده دارید. ویژگی‌های ورودی:
- $x_1$: بازده دیروز ($r_{t-1}$)
- $x_2$: نسبت حجم به میانگین ۲۰ روزه
- $x_3$: RSI 14 روزه نرمال‌شده به بازه $[-1, 1]$
- $x_4$: ATR 14 روزه (معیار نوسان)

هدف $y$: بازده فردا به درصد.

پس از fit مدل، اگر ضرایب تخمین‌زده شده باشند:
$$\hat{\beta} = [-0.03, \; 0.12, \; -0.08, \; 0.21]$$

تفسیر: به ازای یک واحد افزایش در نسبت حجم، پیش‌بینی بازده فردا ۰.۱۲٪ افزایش می‌یابد — که نشان‌دهنده همبستگی مثبت حجم با مومنتوم کوتاه‌مدت است.

معیارهای ارزیابی Regression

MAE (Mean Absolute Error):
$$\text{MAE} = \frac{1}{n} \sum_{i=1}^n |y_i - \hat{y}_i|$$

RMSE (Root Mean Squared Error):
$$\text{RMSE} = \sqrt{\frac{1}{n} \sum_{i=1}^n (y_i - \hat{y}_i)^2}$$

IC (Information Coefficient) — معیار تخصصی کوانت:
$$\text{IC} = \text{Corr}(\hat{y}_t, y_t)$$

هدف داشتن IC پایدار و مثبت است. IC بالای ۰.۰۵ در داده‌های روزانه سهام به‌طور تاریخی نادر و قابل توجه بوده است. نکته مهم: RMSE بزرگ را تنبیه می‌کند و برای بازارهایی که outlierهای شدید دارند (مثل کریپتو)، MAE معیار قابل اطمینان‌تری است.

---

۳. Classification در ترید: پیش‌بینی جهت حرکت

فرمول‌بندی مسئله

به جای پیش‌بینی مقدار دقیق بازده، برچسب جهت می‌سازیم:

$$y_t = \begin{cases} +1 & \text{اگر } r_{t+1} > \theta \\ -1 & \text{اگر } r_{t+1} < -\theta \\ 0 & \text{در غیر این صورت (بازار خنثی)} \end{cases}$$

انتخاب آستانه $\theta$ اهمیت بسیار دارد. اگر $\theta = 0$، مسئله دوکلاسه می‌شود اما نویز زیادی وارد برچسب‌ها می‌شود. معمولاً $\theta$ را بر اساس نصف ATR یا یک ضریب از انحراف معیار تنظیم می‌کنند.

Logistic Regression: پایه‌ای قوی

احتمال تعلق به کلاس مثبت:

$$P(y=1 | x) = \sigma(x^\top \beta) = \frac{1}{1 + e^{-x^\top \beta}}$$

تابع زیان Log-Loss (Cross-Entropy):

$$\mathcal{L} = -\frac{1}{n} \sum_{i=1}^n \left[ y_i \log(\hat{p}_i) + (1-y_i) \log(1-\hat{p}_i) \right]$$

مثال: سیگنال صعودی/نزولی ETH/BTC

ویژگی‌های ورودی برای ۳۰۰ کندل ۴ ساعته:
- نسبت بسته شدن به باند بولینگر بالایی
- تفاوت MACD و خط سیگنال
- OBV تغییرات ۵ دوره
- Funding Rate آتی‌های دائمی

پس از آموزش مدل Logistic با تنظیم L2، confusion matrix روی داده آزمون:

| | پیش‌بینی صعود | پیش‌بینی نزول |
|--|--|--|
| واقعی صعود | TP = 42 | FN = 18 |
| واقعی نزول | FP = 22 | TN = 38 |

محاسبه معیارها:
$$\text{Precision} = \frac{TP}{TP+FP} = \frac{42}{64} \approx 0.656$$
$$\text{Recall} = \frac{TP}{TP+FN} = \frac{42}{60} = 0.70$$
$$F_1 = \frac{2 \times 0.656 \times 0.70}{0.656 + 0.70} \approx 0.677$$

اما در ترید، Precision اهمیت بیشتری از Recall دارد — بهتر است سیگنال کمتر اما دقیق‌تر بدهید تا اینکه معاملات زیان‌ده زیادی داشته باشید.

ROC-AUC و کاربرد آن

$$\text{AUC} = \int_0^1 \text{TPR}(t) \, d\text{FPR}(t)$$

AUC معیار جامعی است که به آستانه تصمیم‌گیری وابسته نیست. AUC = 0.5 مدل تصادفی، AUC = 1.0 مدل کامل. در بازارهای مالی واقعی، AUC پایدار بالای ۰.۵۵ نشانه وجود اطلاعات ارزشمند در ویژگی‌هاست.

---

۴. دام‌های اساسی در داده‌های سری زمانی مالی

Look-Ahead Bias: کشنده‌ترین اشتباه

اگر برای ساختن ویژگی روز $t$ از اطلاعات روز $t$ یا $t+1$ استفاده کنید، مدل در زمان واقعی بی‌معنی می‌شود. مثال: محاسبه میانگین متحرک ۲۰ روزه با آخرین قیمت روز جاری، و استفاده از آن برای پیش‌بینی بازده همان روز.

نحوه صحیح Cross-Validation: Walk-Forward

به جای k-fold معمول، از Purged Walk-Forward Validation استفاده کنید:

آموزش: t=1 ... t=300
پاکسازی: t=301 ... t=310 ← (Embargo Gap)
آزمون: t=311 ... t=360

سپس:
آموزش: t=1 ... t=360
پاکسازی: t=361 ... t=370
آزمون: t=371 ... t=420

پاکسازی (Purge) و فاصله زمانی (Embargo) برای جلوگیری از نشت اطلاعات بین پنجره‌های آموزش و آزمون ضروری است، به‌خصوص وقتی ویژگی‌ها شامل میانگین‌های متحرک با پنجره‌های طولانی هستند.

Regime Change: مدل‌ها در بازار bull با bear فرق می‌کنند

یک مدل که روی داده‌های بازار صعودی ۲۰۲۰-۲۰۲۱ آموزش دیده، در بازار نزولی ۲۰۲۲ شکست می‌خورد. رویکرد پیشرفته: استفاده از HMM (Hidden Markov Model) برای تشخیص رژیم، سپس آموزش مدل‌های جداگانه برای هر رژیم.

---

۵. ساخت سیگنال قابل معامله از خروجی مدل

از احتمال به سیگنال

اگر مدل Classification احتمال $p_t = P(r_{t+1} > \theta)$ را خروجی دهد، سیگنال معاملاتی:

$$s_t = \begin{cases} \text{Long} & p_t > p_{\text{high}} \\ \text{Short} & p_t < p_{\text{low}} \\ \text{Flat} & \text{در غیر این صورت} \end{cases}$$

مثال عددی: اگر $p_{\text{high}} = 0.60$ و $p_{\text{low}} = 0.40$، تنها وقتی مدل اطمینان کافی دارد وارد معامله می‌شوید.

از Regression به سایز پوزیشن

اگر مدل Regression بازده پیش‌بینی $\hat{r}_{t+1}$ را بدهد، می‌توان سایز پوزیشن را با Kelly Fraction تعدیل کرد:

$$f^* = \frac{\hat{r}_{t+1}}{\hat{\sigma}^2_{t+1}}$$

جایی که $\hat{\sigma}^2_{t+1}$ واریانس پیش‌بینی‌شده (از مدل جداگانه‌ای مثل GARCH) است. این رویکرد به مدل اجازه می‌دهد هم جهت و هم اندازه پوزیشن را تعیین کند.

Transaction Cost Awareness

سیگنال‌های مکرر هزینه کمیسیون و اسلیپیج ایجاد می‌کنند. راه‌حل: افزودن تابع زیان تعدیل‌شده با هزینه معاملاتی در مرحله آموزش:

$$\mathcal{L}_{\text{net}} = \mathcal{L}_{\text{pred}} + \gamma \cdot \sum_t |s_t - s_{t-1}| \cdot c$$

جایی که $c$ هزینه هر بار تغییر پوزیشن و $\gamma$ وزن جریمه تعویض سیگنال است.

---

۶. مقایسه عملی: چه زمانی از کدام استفاده کنیم؟

| معیار | Regression | Classification |
|--|--|--|
| هدف | پیش‌بینی بازده عددی | پیش‌بینی جهت/رویداد |
| تابع زیان | MSE / MAE / Huber | Log-Loss / Hinge |
| معیار ارزیابی | IC, RMSE, MAE | AUC, F1, Precision |
| کاربرد | سایزبندی پوزیشن | سیگنال‌دهی |
| حساسیت به نویز | بالا | پایین‌تر |
| نیاز به کالیبراسیون | خیر | بله (Platt Scaling) |

کالیبراسیون احتمال در Classification اهمیت دارد: احتمال خروجی مدل باید با فراوانی واقعی رویدادها همخوانی داشته باشد. Platt Scaling یا Isotonic Regression برای این کار استفاده می‌شود.

---

نتیجه‌گیری

یادگیری نظارت‌شده ابزار قدرتمندی برای استخراج سیگنال از داده‌های بازار است، اما بدون درک عمیق از ساختار داده‌های سری زمانی و دام‌های مختص مالی، نتایج backtest گمراه‌کننده خواهند بود. تفاوت یک مدل ML که کار می‌کند با یکی که شکست می‌خورد، اغلب نه در الگوریتم بلکه در نحوه فرمول‌بندی مسئله، طراحی ویژگی‌ها، و validation صحیح نهفته است.

---

خلاصه نقطه‌ای

- Regression بازده عددی را پیش‌بینی می‌کند و برای سایزبندی پوزیشن با Kelly Fraction مناسب است.
- Classification جهت یا رویداد را پیش‌بینی می‌کند؛ Precision معمولاً مهم‌تر از Recall است.
- تابع زیان Ridge ($L_2$) برای Regression و Log-Loss برای Classification استاندارد عملی هستند.
- Look-Ahead Bias خطرناک‌ترین اشتباه در ساخت فیچر است — همیشه از داده‌های آینده در گذشته استفاده نکنید.
- Purged Walk-Forward Validation جایگزین اجباری k-fold در داده‌های سری زمانی است.
- خروجی مدل Regression را باید با واریانس پیش‌بینی‌شده نرمال کنید تا سایز پوزیشن معنادار شود.
- مدل‌ها در رژیم‌های مختلف بازار رفتار متفاوتی دارند؛ آموزش مدل‌های جداگانه به ازای هر رژیم رویکرد پیشرفته‌تری است.
- هزینه معاملاتی را در تابع زیان آموزش در نظر بگیرید تا از سیگنال‌دهی بیش از حد جلوگیری شود.

یادگیری نظارت‌شده — کاربرد در ترید | آکادمی تریدیار | تریدیار