آموزش ماشین لرنینگ با پایتون؛ از داده تا مدل
یک مسیر پروژهمحور برای آمادهسازی داده، انتخاب مدل، ارزیابی و ساخت Pipelineهای یادگیری ماشین با Python.
سرفصل جلسات دوره
16 جلسه<div class='lesson-rich-content'> <h2>جلسه 1: مسئله یادگیری ماشین دقیقاً چیست؟</h2> <h3>تمرکز جلسه</h3> <p> تفاوت Regression، Classification و Clustering و نحوه تبدیل یک مسئله واقعی به مسئله قابل حل با داده. </p> <h3>چرا این مبحث مهم است؟</h3> <p> اگر مسئله درست تعریف نشود، حتی بهترین مدل هم خروجی مفیدی تولید نمیکند. </p> <h3>در عمل چه کار میکنیم؟</h3> <p> یک مسئله قیمتگذاری را تعریف میکنید و Target، Feature، نوع مسئله و معیار موفقیت را مشخص میکنید. </p> <h3>اشتباه رایج</h3> <p> شروع مستقیم با انتخاب الگوریتم بدون مشخص کردن هدف پیشبینی. </p> <h3>چالش جلسه</h3> <p> یک مسئله واقعی انتخاب کنید و قبل از کدنویسی، Target و معیار موفقیت را مشخص کنید. </p> <h3>ارتباط با پروژه نهایی</h3> <p> این مبحث در ادامه دوره در پروژه نهایی استفاده میشود. هدف این است که مفهوم جلسه فقط به یک مثال آموزشی محدود نماند و بتوانید آن را در یک مسئله واقعی به کار بگیرید. </p> </div>
<div class='lesson-rich-content'> <h2>جلسه 2: داده را بشناسیم قبل از اینکه مدل بسازیم</h2> <h3>تمرکز جلسه</h3> <p> تحلیل اولیه داده، نوع ستونها، توزیع، Missing Value، Outlier و روابط مهم. </p> <h3>چرا این مبحث مهم است؟</h3> <p> مدل فقط به اندازه دادهای که دریافت میکند قابل اعتماد است. </p> <h3>در عمل چه کار میکنیم؟</h3> <p> یک دیتاست واقعی را بررسی میکنید و گزارش اولیه از کیفیت داده تهیه میکنید. </p> <h3>اشتباه رایج</h3> <p> نگاه کردن به چند ردیف اول دیتاست و تصور اینکه ساختار کاملاً مشخص شده است. </p> <h3>چالش جلسه</h3> <p> یک دیتاست را تحلیل کنید و حداقل پنج نکته درباره کیفیت داده پیدا کنید. </p> <h3>ارتباط با پروژه نهایی</h3> <p> این مبحث در ادامه دوره در پروژه نهایی استفاده میشود. هدف این است که مفهوم جلسه فقط به یک مثال آموزشی محدود نماند و بتوانید آن را در یک مسئله واقعی به کار بگیرید. </p> </div>
<div class='lesson-rich-content'> <h2>جلسه 3: پاکسازی داده و آمادهسازی Featureها</h2> <h3>تمرکز جلسه</h3> <p> Imputation، Encoding، Scaling و انتخاب روش مناسب برای داده خام. </p> <h3>چرا این مبحث مهم است؟</h3> <p> مدلهای مختلف فرضهای متفاوتی درباره داده دارند. </p> <h3>در عمل چه کار میکنیم؟</h3> <p> یک Pipeline برای پردازش دادههای عددی و دستهای میسازید. </p> <h3>اشتباه رایج</h3> <p> پر کردن همه Missing Valueها با یک روش ثابت بدون بررسی معنای داده. </p> <h3>چالش جلسه</h3> <p> برای یک دیتاست دارای ستونهای عددی و دستهای، روش Preprocessing مناسب انتخاب کنید. </p> <h3>ارتباط با پروژه نهایی</h3> <p> این مبحث در ادامه دوره در پروژه نهایی استفاده میشود. هدف این است که مفهوم جلسه فقط به یک مثال آموزشی محدود نماند و بتوانید آن را در یک مسئله واقعی به کار بگیرید. </p> </div>
<div class='lesson-rich-content'> <h2>جلسه 4: Train، Validation و Test؛ مرز بین یادگیری و ارزیابی</h2> <h3>تمرکز جلسه</h3> <p> تقسیم صحیح داده و نقش مجموعههای Train، Validation و Test. </p> <h3>چرا این مبحث مهم است؟</h3> <p> مدل باید روی دادهای ارزیابی شود که در فرآیند انتخاب و آموزش آن نقش نداشته است. </p> <h3>در عمل چه کار میکنیم؟</h3> <p> یک دیتاست را به شکل اصولی تقسیم میکنید و تفاوت استفاده از هر بخش را بررسی میکنید. </p> <h3>اشتباه رایج</h3> <p> استفاده مکرر از Test Set برای انتخاب مدل. </p> <h3>چالش جلسه</h3> <p> دو روش ارزیابی طراحی کنید و نشان دهید استفاده نادرست از Test Set چه اثری دارد. </p> <h3>ارتباط با پروژه نهایی</h3> <p> این مبحث در ادامه دوره در پروژه نهایی استفاده میشود. هدف این است که مفهوم جلسه فقط به یک مثال آموزشی محدود نماند و بتوانید آن را در یک مسئله واقعی به کار بگیرید. </p> </div>
<div class='lesson-rich-content'> <h2>جلسه 5: Data Leakage؛ خطایی که مدل را بهتر از واقعیت نشان میدهد</h2> <h3>تمرکز جلسه</h3> <p> شناخت Data Leakage در Preprocessing، Feature Engineering و انتقال اطلاعات ناخواسته. </p> <h3>چرا این مبحث مهم است؟</h3> <p> Leakage میتواند یک مدل ضعیف را روی کاغذ فوقالعاده نشان دهد. </p> <h3>در عمل چه کار میکنیم؟</h3> <p> یک مثال واقعی از Leakage ایجاد میکنید و سپس همان مسئله را با روش درست حل میکنید. </p> <h3>اشتباه رایج</h3> <p> انجام Scaling یا Imputation روی کل Dataset قبل از Split. </p> <h3>چالش جلسه</h3> <p> چند مسیر احتمالی Leakage را در یک سناریو پیدا کنید. </p> <h3>ارتباط با پروژه نهایی</h3> <p> این مبحث در ادامه دوره در پروژه نهایی استفاده میشود. هدف این است که مفهوم جلسه فقط به یک مثال آموزشی محدود نماند و بتوانید آن را در یک مسئله واقعی به کار بگیرید. </p> </div>
<div class='lesson-rich-content'> <h2>جلسه 6: رگرسیون خطی؛ ساخت اولین مدل پیشبینی عددی</h2> <h3>تمرکز جلسه</h3> <p> Linear Regression و معیارهای MAE، MSE و R². </p> <h3>چرا این مبحث مهم است؟</h3> <p> مدلهای ساده یک Baseline مهم ایجاد میکنند. </p> <h3>در عمل چه کار میکنیم؟</h3> <p> مدلی برای پیشبینی یک مقدار عددی میسازید و عملکرد آن را با چند معیار مقایسه میکنید. </p> <h3>اشتباه رایج</h3> <p> انتخاب مدل پیچیده بدون مقایسه با Baseline ساده. </p> <h3>چالش جلسه</h3> <p> یک Baseline رگرسیون ایجاد کنید و معیارهای خطا را تفسیر کنید. </p> <h3>ارتباط با پروژه نهایی</h3> <p> این مبحث در ادامه دوره در پروژه نهایی استفاده میشود. هدف این است که مفهوم جلسه فقط به یک مثال آموزشی محدود نماند و بتوانید آن را در یک مسئله واقعی به کار بگیرید. </p> </div>
<div class='lesson-rich-content'> <h2>جلسه 7: Decision Tree؛ اولین مدل غیرخطی</h2> <h3>تمرکز جلسه</h3> <p> ساختار درخت تصمیم، Split، عمق درخت و رابطه پیچیدگی مدل با Overfitting. </p> <h3>چرا این مبحث مهم است؟</h3> <p> درخت تصمیم نمونه خوبی برای درک Overfitting و Trade-off است. </p> <h3>در عمل چه کار میکنیم؟</h3> <p> یک Decision Tree آموزش میدهید و اثر تغییر عمق درخت را بررسی میکنید. </p> <h3>اشتباه رایج</h3> <p> اجازه دادن به درخت برای رشد بدون محدودیت. </p> <h3>چالش جلسه</h3> <p> چند مقدار مختلف برای عمق درخت آزمایش کنید و نقطه تعادل را پیدا کنید. </p> <h3>ارتباط با پروژه نهایی</h3> <p> این مبحث در ادامه دوره در پروژه نهایی استفاده میشود. هدف این است که مفهوم جلسه فقط به یک مثال آموزشی محدود نماند و بتوانید آن را در یک مسئله واقعی به کار بگیرید. </p> </div>
<div class='lesson-rich-content'> <h2>جلسه 8: Logistic Regression؛ طبقهبندی با نگاه احتمالاتی</h2> <h3>تمرکز جلسه</h3> <p> تفاوت Classification و Regression، احتمال کلاس، Threshold و معیارهای طبقهبندی. </p> <h3>چرا این مبحث مهم است؟</h3> <p> در مسائل واقعی اشتباهات نوع اول و دوم هزینه یکسانی ندارند. </p> <h3>در عمل چه کار میکنیم؟</h3> <p> یک مسئله دودویی را مدل میکنید و Accuracy، Precision و Recall را گزارش میدهید. </p> <h3>اشتباه رایج</h3> <p> اتکا به Accuracy در دیتاستهای نامتوازن. </p> <h3>چالش جلسه</h3> <p> یک مسئله نامتوازن را بررسی کنید و معیار مناسب را انتخاب کنید. </p> <h3>ارتباط با پروژه نهایی</h3> <p> این مبحث در ادامه دوره در پروژه نهایی استفاده میشود. هدف این است که مفهوم جلسه فقط به یک مثال آموزشی محدود نماند و بتوانید آن را در یک مسئله واقعی به کار بگیرید. </p> </div>
<div class='lesson-rich-content'> <h2>جلسه 9: KNN؛ وقتی فاصله بین نمونهها مهم میشود</h2> <h3>تمرکز جلسه</h3> <p> Nearest Neighbors، مفهوم فاصله و تأثیر مقیاس Featureها بر KNN. </p> <h3>چرا این مبحث مهم است؟</h3> <p> KNN نشان میدهد حتی یک انتخاب ساده مثل مقیاس Featureها روی تصمیم مدل اثر جدی دارد. </p> <h3>در عمل چه کار میکنیم؟</h3> <p> یک طبقهبند KNN میسازید و اثر مقدار K و Scaling را بررسی میکنید. </p> <h3>اشتباه رایج</h3> <p> استفاده از KNN روی ویژگیهایی با مقیاسهای بسیار متفاوت بدون Scaling. </p> <h3>چالش جلسه</h3> <p> مقدارهای مختلف K را مقایسه کنید و نمودار عملکرد را تهیه کنید. </p> <h3>ارتباط با پروژه نهایی</h3> <p> این مبحث در ادامه دوره در پروژه نهایی استفاده میشود. هدف این است که مفهوم جلسه فقط به یک مثال آموزشی محدود نماند و بتوانید آن را در یک مسئله واقعی به کار بگیرید. </p> </div>
<div class='lesson-rich-content'> <h2>جلسه 10: Random Forest؛ ترکیب چند مدل برای تصمیم پایدارتر</h2> <h3>تمرکز جلسه</h3> <p> Ensemble Learning و نقش ترکیب چند Decision Tree. </p> <h3>چرا این مبحث مهم است؟</h3> <p> Ensembleها یکی از روشهای مهم برای رسیدن به مدلهای پایدارتر هستند. </p> <h3>در عمل چه کار میکنیم؟</h3> <p> Random Forest را با Decision Tree مقایسه میکنید و اهمیت Featureها را بررسی میکنید. </p> <h3>اشتباه رایج</h3> <p> تفسیر Feature Importance بهعنوان رابطه علت و معلولی. </p> <h3>چالش جلسه</h3> <p> دو مدل Tree-based را با معیار یکسان مقایسه کنید. </p> <h3>ارتباط با پروژه نهایی</h3> <p> این مبحث در ادامه دوره در پروژه نهایی استفاده میشود. هدف این است که مفهوم جلسه فقط به یک مثال آموزشی محدود نماند و بتوانید آن را در یک مسئله واقعی به کار بگیرید. </p> </div>
<div class='lesson-rich-content'> <h2>جلسه 11: ارزیابی حرفهای؛ Cross Validation و Confusion Matrix</h2> <h3>تمرکز جلسه</h3> <p> Cross Validation، Confusion Matrix و انتخاب معیار متناسب با هزینه خطا. </p> <h3>چرا این مبحث مهم است؟</h3> <p> یک عدد منفرد از یک Train/Test Split همیشه تصویر کاملی ارائه نمیدهد. </p> <h3>در عمل چه کار میکنیم؟</h3> <p> برای یک مسئله نامتوازن معیار مناسب انتخاب میکنید و مدل را با Cross Validation ارزیابی میکنید. </p> <h3>اشتباه رایج</h3> <p> اجرای Cross Validation روی دادهای که اطلاعات Test را وارد کرده است. </p> <h3>چالش جلسه</h3> <p> برای یک مسئله تشخیص تقلب، معیارهای مختلف را بررسی کنید. </p> <h3>ارتباط با پروژه نهایی</h3> <p> این مبحث در ادامه دوره در پروژه نهایی استفاده میشود. هدف این است که مفهوم جلسه فقط به یک مثال آموزشی محدود نماند و بتوانید آن را در یک مسئله واقعی به کار بگیرید. </p> </div>
<div class='lesson-rich-content'> <h2>جلسه 12: Feature Engineering؛ استخراج اطلاعات ارزشمند از داده خام</h2> <h3>تمرکز جلسه</h3> <p> ساخت Featureهای جدید از تاریخ، متن و ترکیب چند ستون. </p> <h3>چرا این مبحث مهم است؟</h3> <p> کیفیت Featureها میتواند از انتخاب الگوریتم پیچیدهتر مهمتر باشد. </p> <h3>در عمل چه کار میکنیم؟</h3> <p> از داده خام Featureهای جدید میسازید و قبل و بعد را مقایسه میکنید. </p> <h3>اشتباه رایج</h3> <p> ساخت Feature بدون توجه به زمان یا منبع داده که باعث Leakage میشود. </p> <h3>چالش جلسه</h3> <p> از یک ستون تاریخ چند Feature معنادار استخراج کنید. </p> <h3>ارتباط با پروژه نهایی</h3> <p> این مبحث در ادامه دوره در پروژه نهایی استفاده میشود. هدف این است که مفهوم جلسه فقط به یک مثال آموزشی محدود نماند و بتوانید آن را در یک مسئله واقعی به کار بگیرید. </p> </div>
<div class='lesson-rich-content'> <h2>جلسه 13: Hyperparameter Tuning؛ انتخاب تنظیمات بدون فریب ارزیابی</h2> <h3>تمرکز جلسه</h3> <p> Grid Search و انتخاب Hyperparameterها بر اساس معیار مشخص. </p> <h3>چرا این مبحث مهم است؟</h3> <p> تنظیم پارامترها میتواند عملکرد مدل را بهتر کند. </p> <h3>در عمل چه کار میکنیم؟</h3> <p> چند تنظیم مختلف مدل را مقایسه میکنید و بهترین ترکیب را انتخاب میکنید. </p> <h3>اشتباه رایج</h3> <p> انتخاب پارامتر بر اساس Test Set. </p> <h3>چالش جلسه</h3> <p> برای یک مدل چند Hyperparameter انتخاب و جستوجو کنید. </p> <h3>ارتباط با پروژه نهایی</h3> <p> این مبحث در ادامه دوره در پروژه نهایی استفاده میشود. هدف این است که مفهوم جلسه فقط به یک مثال آموزشی محدود نماند و بتوانید آن را در یک مسئله واقعی به کار بگیرید. </p> </div>
<div class='lesson-rich-content'> <h2>جلسه 14: Pipeline کامل؛ از داده خام تا Prediction</h2> <h3>تمرکز جلسه</h3> <p> اتصال Preprocessing و Model در یک Pipeline. </p> <h3>چرا این مبحث مهم است؟</h3> <p> Pipeline احتمال تفاوت بین محیط آموزش و واقعی را کاهش میدهد. </p> <h3>در عمل چه کار میکنیم؟</h3> <p> کل فرآیند را در یک Pipeline قرار میدهید و روی داده جدید اجرا میکنید. </p> <h3>اشتباه رایج</h3> <p> انجام بخشی از Preprocessing خارج از Pipeline. </p> <h3>چالش جلسه</h3> <p> یک Pipeline کامل بسازید که از داده خام Prediction تولید کند. </p> <h3>ارتباط با پروژه نهایی</h3> <p> این مبحث در ادامه دوره در پروژه نهایی استفاده میشود. هدف این است که مفهوم جلسه فقط به یک مثال آموزشی محدود نماند و بتوانید آن را در یک مسئله واقعی به کار بگیرید. </p> </div>
<div class='lesson-rich-content'> <h2>جلسه 15: ذخیره مدل و آمادهسازی برای استفاده در سرویس</h2> <h3>تمرکز جلسه</h3> <p> Persist کردن Model، وابستگیهای Preprocessing و نسخه داده. </p> <h3>چرا این مبحث مهم است؟</h3> <p> مدلی که فقط داخل Notebook قابل اجرا باشد هنوز Production-ready نیست. </p> <h3>در عمل چه کار میکنیم؟</h3> <p> مدل نهایی را ذخیره میکنید و یک تابع Prediction مستقل از Notebook میسازید. </p> <h3>اشتباه رایج</h3> <p> ذخیره فقط Model بدون نگهداری Preprocessing لازم. </p> <h3>چالش جلسه</h3> <p> مدل را ذخیره کنید و اسکریپتی جدا برای Prediction بنویسید. </p> <h3>ارتباط با پروژه نهایی</h3> <p> این مبحث در ادامه دوره در پروژه نهایی استفاده میشود. هدف این است که مفهوم جلسه فقط به یک مثال آموزشی محدود نماند و بتوانید آن را در یک مسئله واقعی به کار بگیرید. </p> </div>
<div class='lesson-rich-content'> <h2>جلسه 16: پروژه نهایی؛ یک خط کامل یادگیری ماشین</h2> <h3>تمرکز جلسه</h3> <p> اتصال تعریف مسئله، تحلیل داده، Preprocessing، انتخاب مدل، ارزیابی، Pipeline و خروجی. </p> <h3>چرا این مبحث مهم است؟</h3> <p> توانایی ساخت یک جریان کامل ML مهمتر از حفظ کردن الگوریتمهای متعدد است. </p> <h3>در عمل چه کار میکنیم؟</h3> <p> یک پروژه کامل را از داده خام تا مدل نهایی اجرا میکنید و انتخابهای فنی را مستند میکنید. </p> <h3>اشتباه رایج</h3> <p> ارائه Accuracy بالا بدون توضیح درباره داده، Leakage و محدودیتها. </p> <h3>چالش جلسه</h3> <p> یک مسئله واقعی انتخاب کنید، چند مدل را مقایسه کنید و گزارش نهایی ارائه دهید. </p> <h3>ارتباط با پروژه نهایی</h3> <p> این مبحث در ادامه دوره در پروژه نهایی استفاده میشود. هدف این است که مفهوم جلسه فقط به یک مثال آموزشی محدود نماند و بتوانید آن را در یک مسئله واقعی به کار بگیرید. </p> </div>