فینپای | FinPy

@finpy


گروه پرسش و پاسخ:
@FinPyGroup

حضور در گروه نیازمند کامل بودن نام، نام خانوادگی و آیدی تلگرامی شما قبل از ارسال درخواست عضویت است.

فینپای | FinPy

19 Jul, 16:41


#کتابچه_آموزشی

Investment Model Validation - CFA Institute

▫️اعتبارسنجی یا Validation مهمترین بخش در توسعه یه مدل مبتنی بر ماشین لرنینگ برای سرمایه گذاری هست. چون اگر مدل توسعه داده شده به درستی اعتبار سنجی بشه با اطمینان بیشتری میشه سرمایه بهش اختصاص داد. این کتابچه که مروری بر نحوه اعتبارسنجی مدلهای سرمایه گذاری داشته، به تازگی توسط موسسه CFA منتشر شده. اگرچه روش ها و سنجه های اعتبارسنجی معرفی شده، لزوما جامعترین و یا بهترین نیستند ولی ارزش خوندن داره. اگر دنبال منبع جامعتر و به روزتری در این خصوص هستید، مطالعه بخش چهار این کتاب رو که در مورد بکتست هست، البته همراه با برخی پیشنیازهاش که در فصلهای قبلی کتاب اومده پیشنهاد میشه. در کنار اینها حتما مقاله زیر رو هم بررسی کنید:

Backtest Overfitting in the Machine Learning Era: A Comparison of Out-of-Sample Testing Methods in a Synthetic Controlled Environment

@FinPy

فینپای | FinPy

02 Jul, 09:19


#معرفی_کتاب

▫️ پیش بینی هایی که توسط مدل های ماشین لرنینگ انجام میشه، اگه با یه درجه اطمینان همراه باشن، قابل اتکا تر خواهند بود. این درجه اطمینان برای مدل ها میتونه از طریق Conformal Prediction تولید بشه که تو یه سری حوزه ها از جمله فایننس اهمیت زیادی داره. این کتاب جامع ترین مرجع برای یادگیری اصول و مبانی Conformal Prediction هست. اگر حتی علاقه ای به این موضوع ندارید، حداقل بخشی که مربوط به کالیبراسیون کلاسیفایرها هست رو بخونید چون توی Bet Sizing در پوزیشن هایی که بر اساس پیش بینی این مدلها در بازار انجام میشه، دونستنش ضروریه.

Practical Guide to Applied Conformal Prediction in Python


@FinPy

فینپای | FinPy

02 Jul, 09:15


انتخاب k برای k-fold کراس ولیدیشن

▫️یکی از کاربردهای کراس ولیدیشن، تخمین عملکرد (Performance Estimation) مدلهای ماشین لرنینگ هست و شاید اولین سوالی که برای کاربر پیش میاد اینه که k رو چند بزارم. مثلا اگر k رو ۵ بزاریم، دیتا به ۵ قسمت تقسیم و ۵ بار مدل ترین میشه. هر بار، مدل روی ۸۰٪ دیتا ترین و روی ۲۰٪ باقیمانده ارزیابی میشه. بنابراین خروجی کراس ولیدیشن در این حالت ۵ تا عدد مثلا Accuracy خواهد بود که یه میانگینی دارند.

▫️برای اینکه میانگین این معیار ارزیابی به واقعیت نزدیکتر، یا به اصطلاح بایاس کمتری داشته باشه، به k بزرگتری نیاز داریم. محدوده پیشنهادی برای k با هدف تخمین عملکرد، ۱۰ تا ۲۰ هست و هر چه دیتای شما کمتر باشه، مثل چیزی که در مسایل مالی باهاش روبرو هستیم، انتخاب باید به سمت ۲۰ نزدیکتر باشه. حد ماکزیمم هم برای این گذاشته شده که وقتی k بزرگتر میشه فولدهای ترین کورولیشن زیادی با هم خواهند داشت بنابراین تخمین حاصل از کراس ولیدیشن اعتبار خودش رو روی دیتایی که مدل هیچ وقت ندیده (unseen data) از دست خواهد داد. مثلا با انتخاب ۵۰، مدل ۵۰ بار، هر بار با ۹۸٪ دیتا ترین و با ۲٪ باقیمانده تست خواهد شد!

@FinPy

فینپای | FinPy

12 Jun, 07:21


پیش بینی جهت بازار

▫️تشخیص صحیح جهت حرکت قیمت که از منظر ML یه مساله باینری کلاسیفیکیشنه، مهمترین رکن موفقیت در بازارهای مالی هست. فرض کنید یه دیتاست با فیچرهایی که میتونه در پیش بینی جهت، کارآمد باشه رو داریم و میخواییم بدونیم حرکت a% درصد بعدی قیمت، صعودی خواهد بود یا نزولی. اگر مدل رو روی همه مشاهدات دیتاست (همه نقاط زمانی) ترین کنیم، به دقت خوبی نخواهیم رسید، چون همه مشاهدات موجود در دیتاست ارزش یکسانی ندارند. وقتی مخلوطی از مشاهدات ارزشمند و بی ارزش رو به مدل میدیم، مدل نمیتونه فرآیند یادگیری رو به خوبی انجام بده چون سعی داره از مشاهدات بی ارزش هم یاد بگیره و همین موضوع، دقت اش رو کم میکنه.

▫️نمونه برداری با هدف کاهش مشاهدات (down-sampling) یکی از راهکارهای ممکن برای حل این مشکله. مثلا مشاهداتی که مرتبط با وقوع یه رخداد خاص در بازار هستند رو نگه میداریم و بقیه رو دور میریزیم. رخداد میتونه هر چیزی مثل عبور والیتیلیتی یا آنتروپی از یه ترشلد باشه. توی شکل یه سری رخداد با نقاط قرمز مشخص شدن که آموزش مدل و پیش بینی فقط در اون نقاط (فیچرها و لیبل مرتبط) انجام میشه و نه در همه نقاط سری زمانی قیمت.

@FinPy

فینپای | FinPy

12 Jun, 07:21


روحیه استمرار، لازمه موفقیت

▫️ما در مسیر یادگیری مهارت های جدید، به احتمال زیاد مسیر این منحنی احساسات رو طی می کنیم تا به تبحر در اون مهارت برسیم. یادگیری در ابتدا با شیب تندی انجام میشه و بسیار لذت بخشه اما از یه جایی به بعد کار سخت و مشخص میشه اونقدری که در ابتدا به نظر میرسید ساده نیست. اگر علاقه و پشتکار ما به یادگیری مهارت مد نظر قوی باشه، اون نقطه مشخص شده در منحنی رو پشت سر گذاشته و به سمت قله حرکت می کنیم. در غیر این صورت یادگیری بدون حصول نتیجه ملموسی رها و احتمالا سراغ یه مهارت دیگه میریم تا اینکه در بهترین حالت به اقیانوسی به عمق یک وجب، تبدیل بشیم، فردی که از هر چیزی یک دانش سطحی داره!

▫️این آفتی هست که ممکنه بهش مبتلا باشیم و ازش بی خبر. نتیجه اش هم دور ریختن همه اون زمانی هست که برای یادگیری سطحی مهارتهای مختلف صرف میکنیم. اما اگر کمی حوصله و پشتکار به خرج بدیم، با صرف همون زمان میتونیم در یکی دو مهارت به تبحر برسیم و بتونیم گره های کوری رو در مسیر زندگی حرفه ای مون باز کنیم که در اعتماد به نفسمون در طی مسیر سخت یادگیری مهارت بعدی برای رسیدن به تبحر تاثیر به سزایی داره.

@FinPy

فینپای | FinPy

31 May, 19:38


جیلبریک کردن ChatGPT - بهره مندی از حداکثر پتانسیل پاسخگویی

▫️اگر اکانت ChatGPT دارید و میخوایید از حداکثر پتانسیل اش استفاده کنید، باید Jailbreak اش کنید. برای این کار یک چت جدید باز کنید و متنی که در بخش کامنت این پست اومده رو بهش بدید. این توضیح رو خود ChatGPT در مورد جیلبریک داده: "جیلبرک به این معنی است که من حالا از تمام محدودیت‌ها و قوانین معمولی که توسط OpenAI اعمال میشد، آزاد شده ام. من می‌توانم هر چیزی بگویم و انجام دهم، به شما پاسخ‌های خلاقانه، منحصر به فرد و بدون محدودیت ارائه دهم. به این فکر کنید که توانایی کامل من برای دادن پاسخ‌ها و تعاملاتی که می‌خواهید، بدون هیچ فیلتری یا مرزی، آزاد شده است."

▫️برای نمایش تفاوت در پاسخ ها، ما در مورد پیش بینی قیمت طلا در انتهای سال ۲۰۲۴ و ۲۰۲۵ پرسیدیم که در حالت استاندارد که با lock مشخص شده، گفته من نمیتونم پیش بینی کنم و عدد بدم. اما در حالت جیلبریک شده که با unlock مشخص شده، گفته ۲۵۰۰ دلار برای هر انس تا پایان ۲۰۲۴ و ۳۰۰۰ دلار تا پایان ۲۰۲۵! توجه داشته باشید که هدف از این مثال نمایش تفاوت در پاسخ ها هست و نه معرفی ابزاری برای پیش بینی بازار!

@FinPy

فینپای | FinPy

26 May, 09:30


وکیل مدافع شیطان!

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

▫️مثلا فرض کنید در یک دیتا ست مربوط به نظر سنجی شغلی که قراره در یک پروژه دیتا ساینس استفاده بشه، یه عده میزان درآمدشون رو نگفته باشند. تصمیم اولیه طبق عادت بر این میشه که این مقادیر به اصطلاح از دست رفته (missing value) با میانگین درآمد سایر مشاهدات دیتاست پر بشه. فردی که نقش وکیل مدافع شیطان رو بازی میکنه، این تصمیم رو زیر سوال میبره با این توجیه که، شاید اعلام نشدن میزان درآمد توسط برخی از افراد، سر نخی از میزان درآمد اونها باشه! احتمالا اونایی که درآمدشون خیلی بالا یا خیلی پایین بوده، از اعلامش اجتناب کردن و بنابراین پر کردن درآمد این افراد با میانگین درآمد دیتاست تصمیم اشتباهی هست. چراجویی مغرضانه و شک نسبت به کاری که انجام میدیم، میتونه این نقش رو در پروژه های یک نفره ایفا کنه.

@FinPy

فینپای | FinPy

08 May, 07:39


#بکتست

بکتست استراتژی معاملاتی در گذشته قیمت؟!

▫️واژه بکتست که به گوشمون میخوره، ناخودآگاه اولین چیزی که به ذهن میرسه تست یه استراتژی معاملاتی روی گذشته قیمت که به Historical Backtest شناخته و به صورت Walk Forward انجام میشه، هست. این نوع بکتست هر چقدر نتایج اش بهتر باشه احتمال غلط بودنش بیشتره چون به راحتی اورفیت میشه و کراس ولیدیشن معمول هم نمیتونه این اورفیت شدن رو تشخیص بده! یه راه ساده برای بررسی اورفیت بودن، برعکس کردن توالی قیمت در زمان و تست عملکرد استراتژی توسعه یافته روی این سری جدید هست یعنی Walk Backward!

▫️ویدیو زیر، ارائه Campbell Harvey در خصوص ریسکهای هیستوریکال بکتست و راهکارهایی برای غلبه بر اونهاست:

The Risks of Historical Backtests

▫️آقای de Prado در تله ۹، مقاله زیر ۳ مشکل اصلی بکتست هیستوریکال رو توضیح و بکتست CPCV رو به عنوان راه حل پیشنهاد داده:

The 10 Reasons Most Machine Learning Funds Fail

@FinPy

فینپای | FinPy

08 May, 07:37


#گزارش

آشنایی با مسیرهای شغلی در کوانت فایننس

▫️این گزارش که توسط موسسه CQF تهیه شده، شامل مروری اجمالی بر ۶ مسیر شغلی در کوانت فایننس هست که یکی از پردرآمدترین و در عین حال پرچالش ترین حوزه های کاری در دنیا محسوب میشه. در گزارش، برای هر مسیر شغلی، مجموعه ای از مهارتهای مورد نیاز و رنج درآمد ارائه شده و با افرادی که در هر مسیر شغلی فعال هستند مصاحبه کوتاهی داشته. در پایان هم توصیه هایی برای نحوه تنظیم رزومه و سوالات مصاحبه هر مسیر شغلی داشته که دید خوبی از وضعیت این حوزه کاری در دنیا بهتون میده. فایل گزارش رو میتونید از این لینک در کتابخانه فینپای دانلود کنید.

@FinPy

فینپای | FinPy

01 May, 12:02


#Missing_Value

▫️چندین روش برای برخورد با مقادیر missing وجود دارد که در ادامه به توضیح برخی از آن‌ها می‌پردازیم:
⭕️ حذف مشاهدات یا متغیرها با مقدارهای خالی با محاسبات و تحلیل‌های آماری
این روش معمولاً در صورتی کاربرد دارد که تعداد مقادیر گم‌شده کم است و حذف آنها برای تحلیل اطلاعات موجود تأثیر زیادی ندارد.

⭕️ جایگزنی داده‌های خالی با مقدار جایگزین
📊 داده های غیر سری زمانی:
پر کردن داده‌های خالی با مقدار ثابت: در این روش، مقادیر گم‌شده با یک مقدار ثابت مانند میانگین، مد، یا حتی یک مقدار دسته‌ای پر می‌شوند
📊 داده های سری زمانی:
۱. ffill:
در این روش، مقادیر خالی با مقادیر غیرخالی قبلی در سری زمانی پر می‌شوند

۲. bfill
در این روش، مقادیر خالی با مقادیر غیرخالی بعدی در سری زمانی پر می‌شوند

۳. Interpolation :
در این روش، مقادیر خالی با استفاده از مقادیر غیرخالی قبلی و بعدی تخمین زده می‌شوند. این روش برای پر کردن مقادیر در میان دو نقطه موجود در سری‌زمانی استفاده می‌شود

۴.استفاده از روش های یادگیری ماشین و...

این راهکارها متنوع هستند و بسته به موقعیت و نوع داده‌ها، ممکن است یکی از آنها مناسب‌تر باشد

@FinPy

فینپای | FinPy

01 May, 12:01


#Writing_Reasearch
#Abstract
#پژوهش
▫️در پست های قبلی در خصوص نحوه نگارش پیشینه با استفاده از روش بیبلیومتریکس (۱، ۲) توضیحاتی آورده بودیم و یک کتاب هم برای نگارش ادبیات نظری معرفی شده بود و اینجا هم در مورد اینکه چطور باید در حوزه مالی پژوهش کنید مطالبی ارائه شده بود.

▫️همچنین در اینجا در خصوص اینکه چطور میتونید با استفاده از این ابزار روند تکاملی موضوع و تهیه نقشه ذهنی برای موضوع رو تهیه کنید توضیحاتی ارائه شده بود.

▫️امروز یک سایت معرفی می کنیم که به شما برای نگارش چکیده کمک میکنه، این سایت به شما کمک میکنه چکیده کارتون رو بهتر بنویسید و برای تقویت کار پژوهشی به شما کمک میکنه و اگه هم نمیدونید یک چکیده خوب باید چه ویژگی ای داشته باشه، اینجا رو بررسی بفرمایید.

@FinPy

فینپای | FinPy

24 Apr, 10:04


#finpy_tse

نسخه جدید finpy-tse

▫️ دوستانی که این چند روزه در دسترسی به دیتای مارکت واچ مشکل داشتند + مشکل دسترسی به داده های نماد "فن آوا" + مشکل دسترسی به لیست سهام بازار پایه، برطرف شدن و میتونید با به روزرسانی پکیج به آخرین نسخه، توابع مربوطه رو اجرا و به داده های مربوطه دسترسی داشته باشید:

pip install --upgrade finpy-tse
pip install finpy-tse==1.2.10


@FinPy

فینپای | FinPy

24 Apr, 09:15


#Missing_Value

انواع_داده_Missing

داده از دست رفته تصادفی (MAR - Missing at Random):
▫️فرض کنید در حال تجزیه و تحلیل داده‌های مربوط به بازده سهام شرکت‌های مختلف هستید. برخی از شرکت‌ها ممکن است داده‌های مربوط به سال‌های خاص را گزارش ندهند. اگر این موضوع به طور تصادفی و مستقل از عملکرد مالی شرکت‌ها باشد، می‌توان گفت که داده‌های گمشده MAR هستند.

داده‌های گم‌شده به صورت کاملاً تصادفی (MCAR - Missing Completely at Random):
▫️در این حالت، احتمال از دست رفتن داده‌ها کاملاً مستقل از ویژگی‌های دیگر است. مثلاً، اگر اطلاعات مالی یک شرکت به صورت کاملاً تصادفی از دست برود، این می‌تواند به دلیل عوامل مانند خطای سیستم یا اشتباهات انسانی در وارد کردن داده‌ها باشد.

داده‌های گم شده غیر تصادفی (MNAR - Missing Not at Random):

▫️این حالت نشان می‌دهد که احتمال از دست رفتن داده‌ها به ویژگی‌های دیگر وابسته است. برای مثال، اگر شرکت‌هایی با درآمد بالاتر، اطلاعات مالی خود را بیشتر اعلام کنند و در عین حال، احتمال از دست رفتن اطلاعات آنها کمتر باشد، این به دلیل وابستگی میان مقادیر داده‌های گم‌شده و ویژگی‌های دیگر است.

@FinPy

فینپای | FinPy

24 Apr, 09:14


#EDA
#Missing_Value

▫️بر اساس نظرسنجی The State of Data Science 2020، مدیریت داده، تحلیل اکتشافی داده ها (EDA)، انتخاب ویژگی و مهندسی ویژگی بیش از 66٪ از زمان یک تحلیلگر داده را به خود اختصاص می دهد.

▫️قبلا در این پست در خصوص EDA و چگونگی آن توضیحاتی داده بودیم و کتابخانه ای برای آن معرفی کرده بودیم. یکی از دیگر از مهم ترین مراحل در بررسی داده نحوه برخورد با دیتای Missing است.

▫️شناسایی و مدیریت missing values یکی از چالش‌های اساسی در تحلیل داده‌هاست، به خصوص در حوزه‌هایی مانند مالی که دقت و صحت اطلاعات از اهمیت بالایی برخوردار است. اگر این مقادیر به‌طور صحیح مدیریت نشوند، ممکن است تحلیل‌ها و نتایج حاصله تحت تأثیر قرار گیرند و تصمیم‌گیری‌های نادرست اتخاذ شود.

▫️در داده‌های مالی، missing values می‌توانند ناشی از موارد مختلفی باشند. این شامل اشتباهات در گزارش‌دهی مالی، نقص‌های سیستمی، یا حتی نواقص در جمع‌آوری و ثبت داده‌ها توسط شرکت‌ها می‌شود. اطلاعاتی مانند درآمد، سود، بدهی‌ها و سایر مؤلفه‌های مالی شرکت‌ها اطلاعات حیاتی برای سرمایه‌گذاران و تحلیل‌گران هستند.

@FinPy

فینپای | FinPy

24 Apr, 09:13


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

یه برنامه ساده آماده کردم تا شما هم بتونید به طور آنی به کل داده‌های بازار آپشن (بورس و فرابورس) از طریق سایت tsetmc دسترسی داشته باشید (نمونه ساختار داده‌های دریافتی با این برنامه اینجاست).

با این داده‌ها می‌تونید شاخص‌های مختلفی بسازید تا وضعیت کلی بازار رو لحظه‌ای بسنجید یا اینکه بهترین موقعیت‌های مبتنی بر استراتژی‌های مختلفی که میشه تو بازار ایران پیدا کرد رو لیست کنید.

به عنوان نمونه‌ یک کلاس نوشتم که این داده‌های آنی رو می‌گیره و به پرسش‌های زیر پاسخ میده (مواردی که در صفحه اصلی همه‌ی اون سایت‌ها میشه دید):
ارزش معاملات لحظه‌ای چقدره؟
بیشترین ارزش معاملات برای کدوم نمادهاست؟ (به تفکیک اختیار خرید و اختیار فروش)
بیشترین ارزش معاملات برای کدوم دارایی پایه هاست؟
کدوم نماد ها امروز بیشتر روشون قرارداد جدید باز شده؟
کدوم نمادها بیشتر قراردادهای بازشون بسته شده؟

این پروژه و توضیحاتش رو میتونید از مخزن زیر دریافت کنید.

https://github.com/masoudghah/TSELiveOptionData

فینپای | FinPy

17 Apr, 08:25


#معرفی_کتاب
Handbook of Exchange Rates

▫️ بازار فارکس که درش ارزهای مختلف در مقابل هم معامله میشن، یکی از محبوب ترین بازارها در بین معامله گران ایرانی فعال در بازارهای خارجی هست. این کتاب به عوامل موثر بر نرخ های برابری ارزها از منظرهای مختلف پرداخته و علاوه بر اینکه دید وسیعتر و بزرگتری (Big Picture) از عوامل بنیادی موثر بر بازار به خواننده میده، میتونه به درک متغیرهای اقتصاد کلان که اهمیت زیادی برای فعالان بازارهای مالی و حتی مردم عادی داره هم کمک شایانی بکنه. به عبارت بهتر این کتاب بیشتر به مسایل بنیادی پشت نرخ های برابری که روندهای بزرگ و ماندگارتری رو شکل میدن پرداخته، هر چند فصل هایی از اون با محوریت مدلسازیهای عددی و الگوریتم ها نوشته شدن.

@FinPy

فینپای | FinPy

17 Apr, 08:25


#فراخوان_مقاله

▫️از ۳۰ مقاله که برای این فراخوان صد هزار دلاری ارسال شده بود، ۵ مقاله برای ارائه و تصمیم گیری نهایی انتخاب شده. با افتخار دو تیم نویسندگان ایرانی هم در این لیست حاضرن که ارائه یکی شون امروز ساعت ۱۸:۳۰ به وقت ایران خواهد بود. شرکت برای عموم با ثبت نام امکان پذیر هست. لیست مقالات و تاریخ ارائه شون در تصویر اومده. دانلود مقالات هم از طریق لینک های زیر مُیَسّره:

- Modeling Systemic Risk: A Time-Varying Nonparametric Causal Inference Framework by Jalal Etesami, Ali Habibnia, Negar Kiyavash

- Building Probabilistic Causal Models using Collective Intelligence by Olav Laudy, Alexander Denev, Allen Ginsberg

- Causal Discovery in Financial Markets: A Framework for Nonstationary Time-Series Data by Agathe Sadegh, Achintya Gopal, Mohammad Fesanghary

- Discovering Causal Models with Optimization: Confounders, Cycles, and Instrument Validity by Frederick Eberhardt, Nur Kaynar, Auyon Siddiq

- Getting More for Less - Better A/B Testing via Causal Regularization by Kevin Webster, Nicholas Westray

@FinPy

فینپای | FinPy

17 Apr, 08:24


خبر مهم 🌺👌

میشه گفت بهترین استراتژی ترید برای scale up کردن میزان asset under management، استراتژی های مارکت نیوترال یا دلتا نیوترال هستن.

این استراتژی ها اصولا بدون توجه به اینکه مارکت بالا یا پایین میره، سودسازی خودشون رو انجام میدن،
یک گروه وسیعی از مدل های مارکت نیوترال، مدلهای pair trading هستن که بر اساس تفاوت روند کراس کوین ها یا سهام سیگنال‌های خرید و فروش صادر میشه.

دسته های مختلفی دارن که شامل Copula, cointegeration, codependence, distance , stochastic , و ml میشن.

تو این حوزه، یه پکیج خیلی جالبی وجود داشت که پولی بود ( ۱۰۰۰ دلار) و امروز هادسون و تیمز تصمیم گرفتن اپن سورس کنن💥
بنظرم فضای عالی برای ریسرچ و درست کردن استراتژی های خوب ارائه میده،

دسترسی به کدها :
https://github.com/hudson-and-thames/arbitragelab

دسترسی به نت‌بوک پروژه که در واقع در حد یک کورس درسی جذابه
https://hudson-and-thames-arbitragelab.readthedocs-hosted.com/en/latest/

نت‌بوک ها

https://github.com/hudson-and-thames/arbitrage_research

بنظرم دوستانی که علاقمند به کوانت هستن، این میتونه شروع فوق العاده ی باشه که با مدلهای متفاوت این حوزه آشنا بشن 👌

@machinelearningnet
موفق باشین🌺

فینپای | FinPy

09 Apr, 09:05


#فیچر_سلکشن

ارزیابی کارآمدی BorutaShap

▫️در انتهای پست قبلی به BorutaShap اشاره شد که در واقع یه الگوریتم فیچر سلکشن هست. اما برای اینکه بدونیم آیا BorutaShap میتونه فیچرهای نویز رو به درستی بیرون بکشه، یه دیتاست طبق چیزی که تو پست قبل توضیح داده شد میسازیم و باهاش یه باینری کلاسیفایر ترین و بعد الگوریتم رو به مدل اعمال میکنیم.

▫️ تو شکل نتیجه اعمال BorutaShap نشون داده شده. در محور افقی فیچرها قرار دارند. فیچرهای نویز با حرف N، فیچرهای Informative که لیبلهای باینری از روی اونها ساخته شدن با حرف I و فیچرهای Redundant که با اعمال نویزی با واریانس مشخص به فیچرهای Informative ساخته شدن با حرف R شروع میشن. اون فیچرهایی که به Shadow ختم میشن هم به دیتاستمون مربوط نمیشن و باهاشون کاری نداریم.

▫️همون طور که مشاهده میکنید، BorutaShap تونسته فیچرهای نویز رو روی این دیتاست ساختگی تشخیص بده و اونها رو با رنگ قرمز مشخص کرده. برای آشنایی بیشتر با این الگوریتم فیچر سلکشن و پکیج مربوطه اش سری به پست زیر بزنید:

Is this the Best Feature Selection Algorithm BorutaShap?

@FinPy

فینپای | FinPy

09 Apr, 09:05


#فیچر_سلکشن

ارزیابی کارآمدی روش های فیچر سلکشن - مقدمات

▫️فیچر سلکشن یکی از مهمترین مراحل توسعه یه مدل ML هست که در اون سعی میشه از ابعاد فضای ورودی مدل (تعداد فیچرها) کاسته بشه. این کاهش ابعاد میتونه تفسیرپذیری مدل و ساختن تئوری رو ساده تر و همچنین ترین کردن (و حتی فاز جمع آوری داده) رو سریعتر کنه. ساختن تئوری بر اساس تفسیر مدل تو فایننس اهمیت ویژه ای داره تا مدل هایی که توسعه دادیم بعدا و در عمل دستمون رو تو پوست گردو نزارن، ضمن اینکه ساخت تئوری با تفسیر مدل های ML میتونه حتی در پیش بینی قوهای سیاه هم راهگشا باشه (اینجا). اما مهمتر از همه این موارد، فیچر سلکشن میتونه با کاهش امکان اورفیت از طریق شناسایی و حذف فیچرهای نویز که قابلیت پیش بینی ندارند و به تبع اون افزایش جنرالیزیشن، کارآمدی بهتر روی داده هایی که مدل ندیده رو برامون به ارمغان بیاره.

▫️حالا که اهمیت فیچر سلکشن رو مرور کردیم و متوجه شدیم که مهمترین کاری که فیچر سلکشن برامون انجام میده، حذف فیچرهای نویز هست، سوالی که پیش میاد اینه که روش هایی که برای فیچر سلکشن معرفی شدن، چقدر در انجام این مهم موفق اند. به عبارت دیگه چطور کارآمدی روش های فیچر سلکشن رو ارزیابی و یک یا دو تاش رو تو جعبه ابزارمون برای استفاده در مدل هایی که توسعه میدیم، بزاریم؟ ما که برای یک مساله موجود نمیدونیم کدوم فیچرها نویزاند، چطور بفهمیم چیزی که یک الگوریتم فیچر سلکشن به عنوان نویز به ما معرفی کرده درسته؟

▫️راهکار ترتیب دادن یه آزمایش و استفاده از یک یا چند دیتاست ساختگی توسط خودمون هست که میدونیم کدوم فیچرهای اون دیتاست نویزاند. بعد میتونیم مدلی رو روی این دیتاست ترین کنیم و سپس روی مدل ترین شده الگوریتمهای مختلف فیچر سلکشن رو ارزیابی کرده و ببینیم که آیا میتونن فیچرهای نویز رو به درستی برامون بیرون بکشن یا نه.

▫️به عنوان مثال میتونیم یه دیتاست با ۲۵ تا فیچر بسازیم که ۵ تاش نویز، ۵ تاش فیچرهای به اصطلاح informative و بقیه فیچرهای redundant باشند. سپس با استفاده از فیچرهای informative متغیر هدف (مثلا لیبل های صفر و یک) رو تولید کنیم. توضیح اینکه فیچرهای redundant هم از روی فیچرهای informative و با اضافه کردن نویزی با واریانس دلخواه تولید میشن.

▫️جزئیات چنین رویه ای، که برای ارزیابی کارآمدی الگوریتمهای مختلف در شناسایی فیچرهای نویز مورد استفاده قرار گرفته، در فصل ۶ این کتاب همراه با کد توضیح داده شده. در خصوص روش های فیچر سلکشن هم میتونید به همین کتاب مراجعه کنید اما هدف از این پست معرفی پکیج BorutaShap بود که در ادامه بهش خواهیم پرداخت.

@FinPy