آموزش دیتاساینس و ماشین‌لرنینگ
1.9K subscribers
161 photos
9 videos
134 links
🔴 آموزش مباحث حوزه دیتا شامل علم داده، یادگیری ماشین و تحلیل داده (رضا شکرزاد)

🌀 کانال اخبار و منابع هوش مصنوعی:
@DSLanders

🌀 مشاوره و ارتباط مستقیم:
https://t.iss.one/dslanders_admin

یوتیوب:
Youtube.com/@RezaShokrzad

دوره‌ها:
cafetadris.com/datascience
Download Telegram
💡 تکنیک‌های پیشرفته افزایش داده

🔵با استفاده از معماری GANs میشه داده‌های مصنوعی جدید مثل تصاویر رو بدون نیاز به داده‌های اولیه تولید کرد.

🔵انتقال سبک عصبی (Neural Style Transfer) با استفاده از لایه‌های کانولوشنال تصاویر رو تجزیه می‌کنه و اجازه می‌ده تا سبک یه تصویر رو جدا کرد و به محتوای دیگه‌ای اعمال کرد.

#Data_Augmentation
#Machine_Learning

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👌72👍1
👨‍🏫 انتخاب ویژگی (Feature Selection)

توی فرآیند آموزش مدل، مفهوم انتخاب ویژگی (Feature Selection) اهمیت زیادی داره. این فرآیند با انتخاب باارزش‌ترین و کارآمدترین Featureها، دقت و قابلیت تفسیرپذیری مدل‌ رو افرایش می‌ده.

🔵 توی دیتاست‌ها به طور کلی میشه ویژگی‌ها رو به سه دسته تقسیم کرد:

🔵ویژگی‌های مرتبط (Relevant Features): این ویژگی‌ها با متغیر هدف (هدف یادگیری) مرتبط هستن و توی پیش‌بینی تأثیر گذارن.

🔵ویژگی‌های غیرمرتبط (Irrelevant Features): این ویژگی‌ها هیچ تأثیری روی متغیر هدف ندارن و تنها باعث افزایش ابعاد داده‌ها می‌شن.

🔵ویژگی‌های تکراری (Redundant Features): این ویژگی‌ها اطلاعاتی مشابه با سایر ویژگی‌ها ارائه می‌دن و باعث اتلاف فضای ذخیره‌سازی و افزایش زمان پردازش می‌شن.

🔵 تقسیم بندی کلی روش‌های انتخاب ویژگی

🔵روش‌های مبتنی بر ویژگی (Feature-based Methods): این روش‌ها ویژگی‌ها رو بر اساس معیارهایی مثل Correlation Coefficient، Mutual Information و ReliefF ارزیابی و انتخاب می‌کنن.

🔵روش‌های مبتنی بر مدل (Model-based Methods): این روش‌ها الگوریتم‌های یادگیری ماشین رو برای انتخاب ویژگی‌ها استفاده می‌کنن. الگوریتم‌های مختلفی مثل درخت تصمیم، رگرسیون لجستیک و support vector machines برای این روش استفاده میشه.

#Machine_Learning
#Feature_Selection

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9👌1👨‍💻1
کوئیز شماره ۳۱: تاثیر واریانس در Feature Selection

چرا حذف ویژگی‌ها با واریانس کم مهمه؟ کدوم متد در scikit-learn برای حذف ویژگی‌ها با واریانس کم استفاده می‌شه؟
Anonymous Quiz
5%
افزایش سرعت آموزش مدل، SelectKBest
21%
بهبود دقت پیش‌بینی مدل، VarianceThreshold
14%
جلوگیری از بیش‌برازش، SelectKBest
60%
همه موارد بالا، VarianceThreshold
😎53👌1
💡میشه از کلاس‌های موجود توی ماژول sklearn.feature_selection برای انتخاب ویژگی یا کاهش ابعاد استفاده کرد.

#Machine_Learning
#Feature_Selection

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73👌1
👨‍🏫 روش‌های تنظیم در راه‌حل‌های مبتنی به مدل

همونطور که توی پست‌های قبل گفتیم، روش‌های تنظیم توی یادگیری ماشین رو میشه به طور کلی به دو دسته تقسیم کرد: راهکارهای مبتنی به ویژگی‌ها و راهکارهای مبتنی به مدل. توی این پست می‌خوایم راهکارهای مبتنی به مدل رو بیشتر بررسی کنیم.

🔵درخت تصمیم: هرس کردن درخت

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

🔵شبکه‌های عصبی: تنظیم وزن‌ها

توی شبکه‌های عصبی، یکی از روش‌های تنظیم مدل، اعمال محدودیت روی وزن‌های شبکه‌ست. این کار معمولاً از طریق اضافه کردن یه جمله تنظیم‌کننده (Regularization Term) به تابع هزینه انجام میشه که روزهای گذشته درموردشون آموزش دادیم. دو روش محبوب تنظیم وزن‌ها، L1 و L2 هستن که به ترتیب باعث ایجاد وزن‌های کمتر و محدود کردن اندازه وزن‌هاست.

🔵ماشین‌های بردار پشتیبان: انتخاب پارامتر C

توی ماشین‌های بردار پشتیبان (SVM)، پارامتر C نقش مهم تنظیم مدل رو به عهده داره. این پارامتر میزان جریمه خطاهای دسته‌بندی رو تعیین می‌کنه. مقدار کمتر C باعث می‌شه که مدل تا حدی انعطاف‌پذیر باشه و بیش‌برازش کمتری داشته باشه، در حالی که مقدار بیشتر C به مدل اجازه می‌ده که به داده‌های آموزشی بیشتر توجه کنه، اما در نتیجه ممکنه بیش‌برازش اتفاق بیوفته.

🔵رگرسیون: کاهش ویژگی‌ها

توی مدل‌های رگرسیون، گاهی اوقات کاهش تعداد ویژگی‌ها (Feature Reduction) به عنوان یک روش تنظیم مدل به کار می‌ره. این روش شامل حذف ویژگی‌های کم اهمیت یا ترکیب ویژگی‌های مرتبط باهمه تا پیچیدگی مدل کم و عملکردش روی داده‌های جدید بهتر شه.

#Machine_Learning
#Regularization

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8👌21👨‍💻1
کوئیز شماره ۳۲: کدوم روش هرس به صورت رایج در الگوریتم‌های درخت تصمیم استفاده می‌شه؟
Anonymous Quiz
40%
هرس پیش‌بینی محور (Predictive Pruning)
29%
هرس پسین (Post-pruning)
25%
هرس تصادفی (Random Pruning)
5%
هرس بر اساس زمان (Time-based Pruning)
👍72🤔1
پست‌های هفته‌ای که گذشت رو این‌جا پیدا کنین!

🔺 آموزشی

🔵آشنایی با تکنیک L1 Regularization
👉🔗 https://t.iss.one/data_ml/97

🔵آشنایی با تکنیک L2 Regularization
👉🔗 https://t.iss.one/data_ml/100

🔵ترکیب رگولاریزاسیون L1 و L2
👉🔗 https://t.iss.one/data_ml/104

🔵افزایش داده (Data Augmentation)
👉🔗 https://t.iss.one/data_ml/106

🔵انتخاب ویژگی (Feature Selection)
👉🔗 https://t.iss.one/data_ml/110

🔵روش‌های تنظیم در راه‌حل‌های مبتنی به مدل
👉🔗 https://t.iss.one/data_ml/113

🔺 کوئیز

🔵کوئیز شماره ۲۷: تکنیک‌های تنظیم
👉🔗 https://t.iss.one/data_ml/98

🔵کوئیز شماره ۲۸: مقدار λ در تنظیم L2
👉🔗 https://t.iss.one/data_ml/102

🔵کوئیز شماره ۲۹: بهترین ترکیب از alpha و l1_ratio برای Elastic Net
👉🔗 https://t.iss.one/data_ml/105

🔵کوئیز شماره ۳۰: کتابخانه‌های افزایش داده
👉🔗 https://t.iss.one/data_ml/108

🔵کوئیز شماره ۳۱: تاثیر واریانس در Feature Selection
👉🔗 https://t.iss.one/data_ml/111

🔵کوئیز شماره ۳۲: روش هرس رایج در الگوریتم‌های درخت تصمیم
👉🔗 https://t.iss.one/data_ml/114
🔺 نکته

🔵تنظیم L1 و ارتباط بین ویژگی‌ها
👉🔗 https://t.iss.one/data_ml/99

🔵مقایسه تکنیک‌های تنظیم L1 و L2
👉🔗 https://t.iss.one/data_ml/103

🔵تکنیک‌های پیشرفته افزایش داده
👉🔗 https://t.iss.one/data_ml/109

🔵انتخاب ویژگی در sklearn
👉🔗 https://t.iss.one/data_ml/112

#Weekend
#Machine_Learning
#Regularization

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
4👨‍💻3👌2
👩‍🎓 برنامه آموزشی هفته: اعتبارسنجی متقابل یا Cross Validation

🟠شنبه: تعریف و انواع اعتبارسنجی متقابل

🔵یک‌شنبه: k-fold Cross Validation

🟢دوشنبه: Stratified Cross Validation

🔴سه‌شنبه: Time-series Cross Validation

🟠چهارشنبه: بررسی اعتبارسنجی متقابل در sklearn

🔵پنج‌شنبه: نکته و ترفند

🟢جمعه: جمع بندی

#Machine_Learning
#Cross_Validation

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
8👌2🔥1
👨‍🏫 تعریف و انواع اعتبارسنجی متقابل

اعتبارسنجی متقابل (Cross Validation) یه روش‌ مهم برای تخمین دقت مدل‌های یادگیری ماشینه و کمک می‌کنه تا درک بهتری از این داشته باشیم که مدل چطور روی داده‌های دیده نشده عمل می‌کنه. Cross Validation برای جلوگیری از overfitting و بهبود تعمیم پذیری اهمیت زیادی داره. در ادامه انواع مختلفش رو بررسی می‌کنیم:

🔵k-fold Cross Validation

توی این روش، داده‌ها به k بخش تقسیم می‌شن. هر بخش یک بار به عنوان داده تست استفاده می‌شه و k-1 بار دیگر به عنوان داده آموزش. برای مثال اگه k=5، داده‌ها به 5 بخش تقسیم می‌شن و هر بخش یه بار به عنوان داده تست و 4 بار به عنوان داده آموزش استفاده می‌شه. این روش برای داده‌هایی با توزیع یکنواخت و زمانی که حجم داده‌ها نه خیلی کم و نه خیلی زیاده، مناسبه.

🔵Stratified Cross Validation

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

🔵Time-series Cross Validation

این روش برای داده‌های سری زمانی استفاده می‌شه، جایی که ترتیب زمانی داده‌ها مهمه. توی این روش داده‌ها بر اساس ترتیب زمانی تقسیم می‌شن تا تأثیر زمان روی داده‌ها حفظ بشه و برای پیش‌بینی مالی یا هواشناسی کاربرد داره.

#Machine_Learning
#Cross_Validation

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82👨‍💻1
💡معایب Cross Validation

🔵نرخ خطای متغیر

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

🔵محدودیت استفاده از کل داده‌ها در فرایند آموزش

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

در اصل میشه گفت ویژگی‌های منحر بفرد Cross Validation در شرایطی می‌تونن جزو معایب این روش هم باشن و اینکه این روش مفید باشه یا ناکارآمد کاملا بستگی به شرایط داده‌ها داره.

#Machine_Learning
#Cross_Validation

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👌92👍1👨‍💻1
👨‍🏫 k-fold Cross-Validation

اعتبارسنجی متقابل k-برابر (k-fold Cross-Validation) یکی از انواع اعتبار سنجی متقابله و زمانی که مقدار داده‌های موجود محدودن، بسیار مفیده و کاربرد داره. این روش به ما امکان می‌ده تا ارزیابی دقیق‌تر و بدون سوگیری از مدل‌های پیچیده داشته باشیم و به درک بهتر از توانایی‌ها و محدودیت‌های مدل‌های مورد استفاده کمک می‌کنه.

🔵مراحل k-fold

تقسیم داده‌ها: در مرحله اول، داده‌ها به k بخش تقسیم می‌شن.
آموزش و آزمایش: برای هر تکرار، k-1 بخش برای آموزش و 1 بخش برای آزمایش استفاده می‌شه.
تکرار: این فرآیند برای هر یک از kها تکرار می‌شه.

🔵نکاتی مهم پیاده‌سازی k-fold

انتخاب مقدار k بسیار مهمه و به طور مستقیم روی عملکرد مدل تأثیر داره و معمولا از مقادیر 5 یا 10 برای k استفاده می‌شه. زمانیکه با داده‌های نامتوازن روبرو هستیم، استفاده از تکنیک‌های خاص (مثل Stratified K-Fold، Resampling، Data Augmentation) برای حفظ توازن توی هر بخش ضروریه. این روش‌ها به ما کمک می‌کنن تا یکنواختی و دقت بیشتری در طول فرایند اعتبارسنجی متقابل داشته باشیم و نتایج قابل اعتمادتری بگیریم.

🔵کاربردهای پیشرفته k-fold

استفاده از k-fold برای تنظیم پارامترهای مدل (hyperparameter tuning)، این امکان رو می‌ده که بهترین ترکیب پارامترها رو برای مدل پیدا کنیم. این کار با انجام آزمایش‌های متعدد و مقایسه نتایج حاصل از هر کدوم انجام می‌شه. همچنین، k-fold امکان مقایسه عملکرد چندین مدل مختلف رو ممکن می‌کنه که در نتیجه میشه بهینه‌ترین مدل رو انتخاب کرد.

#Machine_Learning
#Cross_Validation

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥64👌2👍1
💡تفاوت بین cross_val_score و KFold

🔵یه روش تقسیم‌بندی داده‌ها برای اعتبارسنجی متقابل KFold هست. KFold فقط روش تقسیم‌بندی داده‌ها رو ارائه می‌ده و خودش هیچ محاسبه‌ای درباره مدل نمی‌کنه.

from sklearn.model_selection import KFold


🔵یه تابع کمکی که فرآیند اعتبارسنجی متقابل رو انجام می‌ده، cross_val_score هست. این تابع، داده‌ها و روش تقسیم‌بندی (مثل KFold) رو به عنوان ورودی دریافت می‌کنه و امتیاز مدل رو بر اساس اعتبارسنجی متقابل محاسبه می‌کنه.

from sklearn.model_selection import cross_val_score


#Machine_Learning
#Cross_Validation

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍1👨‍💻1
👨‍🏫 Stratified Cross-Validation

اعتبار سنجی متقاطع طبقه بندی شده (Stratified Cross-Validation) روشیه که در اون داده‌ها به صورتی تقسیم می‌شن تا از توزیع یکنواخت کلاس‌ها توی هر بخش اطمینان حاصل شه. هدف از این روش، ارزیابی عملکرد مدل توی شرایطی نزدیک به داده‌های واقعی و جلوگیری از ایجاد bias ناشی از تقسیم نامناسب داده‌هاست.

🔵تفاوت اعتبارسنجی‌های Stratified و K-fold

توی K-Fold CV، داده‌ها به صورت تصادفی و بدون در نظر گرفتن توزیع کلاس‌های هدف به K گروه (Fold) تقسیم می‌شن. یعنی توی هر گروه، توزیع کلاس‌ها ممکنه با توزیع کلی کلاس‌ها توی داده‌های اصلی متفاوت باشه. در نتیجه منجر به ارزیابی‌هایی میشه که نماینده‌ی دقیق توزیع واقعی کلاس‌ها نیستن، مخصوصا اگه داده‌ها نامتوازن باشن.

توی Stratified CV توزیع کلاس‌های هدف متناسب با توزیع کلی اونها توی کل مجموعه داده‌ست. در نتیجه هر گروه نماینده‌ای واقعی‌تر از داده‌های اصلیه و اطمینان می‌ده که هر کلاس به نسبت مشابهی توی هر بخش آموزش و تست حضور داره.

🔵نکات پیشرفته Stratified Cross-Validation

این روش هم مثل K-Fold می‌تونه برای تنظیم پارامترهای مدل و پیدا کردن بهترین ترکیب پارامترها استفاده شه. با ترکیب Stratified CV با سایر روش‌ها مثل Bootstrapping دقت بیشتری توی ارزیابی‌ها حاصل میشه. Stratified CV زمان‌بره و نیاز به داده‌های با کیفیت داره.

🔵توضیحات تصویر

در سمت چپ نموداری از توزیع کلاس‌های هدف نشون داده شده که دو کلاس مرد و زن رو با نمودار میله‌ای نشون می‌ده و توی این نمودارها توزیع نامتناسب (imbalanced distribution) به وضوح دیده میشه.

در سمت راست پنج گروه از داده‌ها یا Fold وجود داره. هر Fold شامل نمونه‌هایی از داده‌هاست که در اونها توزیع کلاس‌های مرد و زن به نحویه که با توزیع کلی کلاس‌ها در داده‌های اصلی مطابقت داره و نسبت تعداد مردان به زنان نزدیک به نسبت کلی داده‌هاست.

#Machine_Learning
#Cross_Validation

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62👌1
💡 مزیت و عیب Stratified Cross-Validation

با استفاده از Stratified Cross-Validation می‌تونیم Cross-Validation رو روی دیتاست‌هایی که تعداد کلاس زیادی دارن اجرا کنیم؛ اما اعتبار سنجی متقاطع طبقه بندی شده به تغییرات کوچیک توی دیتاست حساسه و از نظر محاسباتی گرونه.

#Machine_Learning
#Cross_Validation

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👌32👨‍💻1
👨‍🏫 Time-series Cross-Validation

برای بررسی داده‌های سری زمانی نمی‌تونیم از K-Fold CV و Stratified CV استفاده کنیم چون حفظ ترتیب این نوع داده‌ها و نشت نکردن اطلاعات مربوط به آینده به فرآیند آموزش مدل ضروریه و این دو روش داده‌ها رو بدون توجه به ترتیب زمانی تقسیم‌بندی می‌کنن. در نتیجه روش‌هایی مثل اعتبارسنجی متقاطع سری زمانی (Time Series Cross-Validation) مطرح میشن که وابستگی زمانی رو حفظ می‌کنن.

اعتبارسنجی متقاطع سری زمانی (Time-series Cross-Validation) به بررسی داده‌هایی که بر پایه زمان ثبت شدن، می‌پردازه. این داده‌ها می‌تونن شامل دمای هوا طی چندین سال یا قیمت سهام توی بازه‌های زمانی مختلف باشن.

🔵 انواع Time-series Cross-Validation

🔵اعتبارسنجی متقاطع متوالی (Sequential Cross-Validation)

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

🔵اعتبارسنجی متقاطع با پنجره زمانی ثابت (Fixed Time Window Cross-Validation)

توی این روش مفهومی به نام پنجره یا Window مطرح میشه و اندازه پنجره آموزش و تست ثابته و این پنجره‌ها در طول زمان حرکت می‌کنن. برای زمانیکه داده‌های کافی برای آموزش وجود داره و نیاز به ارزیابی دقیق توی بازه‌های زمانی خاص هست، استفاده میشه. این روش به خوبی اطلاعات تاریخی رو با داده‌های جدیدتر ترکیب می‌کنه و برای مطالعه تاثیر تغییرات زمانی روی عملکرد مدل مناسبه.

🔵اعتبارسنجی متقاطع توسعه‌یافته (Expanding Time Window Cross-Validation)

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

#Machine_Learning
#Cross_Validation

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
6👌2👨‍💻2👍1
💡کاربردهای اعتبارسنجی متقابل توی یادگیری باناظر و بدون ناظر

روش‌های اعتبارسنجی متقابل K-Fold، Stratified و TimeSeries عمدتاً توی مدل‌های یادگیری نظارت شده به کار می‌رن، چون برای ارزیابی، نیاز به داده‌های برچسب دار دارن. اما نسخه‌های تغییریافته این روش‌ها می‌تونن برای مدل‌های یادگیری بدون نظارت هم استفاده شن.

برای مثال، اعتبارسنجی متقابل K-Fold می‌تونه توی یادگیری بدون نظارت برای ارزیابی وضعیت خوشه‌بندی‌ها استفاده شه. اما روش‌های Stratified و TimeSeries به دلیل تمرکز روی حفظ تعادل کلاس‌ها یا ترتیب زمانی، بیشتر به مدل‌های نظارت شده و داده‌های برچسب‌دار وابسته هستن.

#Machine_Learning
#Cross_Validation

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👌6👍31👨‍💻1
👨‍🏫 بررسی اعتبارسنجی متقابل در sklearn

🔵 k-fold Cross Validation in sklearn

کلاس KFold از sklearn.model_selection برای شروع فرآیند اعتبارسنجی متقابل استفاده می‌شه. می‌تونین تعداد تقسیم‌ها (n_splits) رو مشخص کنین که به طور پیش‌فرض 5 هست و حداقل باید 2 باشه. میشه تصمیم گرفت که قبل از تقسیم داده‌ها، اونها رو بر زد (shuffle=False به طور پیش‌فرض). روش KFold به دلیل سادگی و اینکه مدل‌محور نیست، بسیار کاربردیه و برای انواع گسترده‌ای از مجموعه داده‌ها و مدل‌ها قابل استفاده‌ست. random_state کنترل کننده ترتیب شاخص‌هاست برای زمانیکه shuffle فعاله.

from sklearn.model_selection import KFold
kf = KFold(n_splits=5, shuffle=False, random_state=None)


🔵 Stratified Cross Validation in sklearn

برای مقداردهی اولیه این فرآیند از کلاس StratifiedKFold توی sklearn.model_selection استفاده میشه. مثل `KFold`، میشه تعداد تقسیم‌ها رو مشخص کرد و مقدارش حداقل باید 2 باشه. همچنین، میشه تصمیم گرفت که آیا قبل از تقسیم، داده‌ها بر زده بشن یا نه.

from sklearn.model_selection import StratifiedKFold
skf = StratifiedKFold(n_splits=5, shuffle=False, random_state=None)


🔵 Time-series Cross Validation in sklearn

برای داده‌های سری زمانی از کلاس TimeSeriesSplit توی sklearn.model_selection استفاده میشه. این کلاس به صورت ویژه برای داده‌های زمانی طراحی شده.
import numpy as np
from sklearn.model_selection import TimeSeriesSplit
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error

X = np.array([[1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3, 4]])
y = np.array([1, 2, 3, 4, 5, 6])
tscv = TimeSeriesSplit(n_splits=3)
model = LinearRegression()

# TimeSeries Cross-Validation
for train_index, test_index in tscv.split(X):
X_train, X_test = X[train_index], X[test_index]
y_train, y_test = y[train_index], y[test_index]

model.fit(X_train, y_train)
predictions = model.predict(X_test)
mse = mean_squared_error(y_test, predictions)
print(f"Train indices: {train_index}, Test indices: {test_index}, MSE: {mse}")


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

#Machine_Learning
#Cross_Validation

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍3👨‍💻1