chore(i18n): sync translations with latest source changes (chunk 1/1, 21 changes)

pull/935/head
localizeflow[bot] 2 months ago
parent c1a492c8ab
commit 99262dd803

@ -30,8 +30,8 @@
"language_code": "fa"
},
"1-Introduction/3-fairness/assignment.md": {
"original_hash": "dbda60e7b1fe5f18974e7858eff0004e",
"translation_date": "2025-09-03T23:31:31+00:00",
"original_hash": "c81d9affadb89d017d610eadeb6c84f9",
"translation_date": "2026-02-28T08:36:13+00:00",
"source_file": "1-Introduction/3-fairness/assignment.md",
"language_code": "fa"
},
@ -90,8 +90,8 @@
"language_code": "fa"
},
"2-Regression/3-Linear/README.md": {
"original_hash": "40e64f004f3cb50aa1d8661672d3cd92",
"translation_date": "2025-09-04T22:31:20+00:00",
"original_hash": "9a8359f1945bd3beccccb2b46592580e",
"translation_date": "2026-02-28T08:37:25+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "fa"
},
@ -186,8 +186,8 @@
"language_code": "fa"
},
"4-Classification/3-Classifiers-2/README.md": {
"original_hash": "49047911108adc49d605cddfb455749c",
"translation_date": "2025-09-04T22:43:29+00:00",
"original_hash": "d94438d71164b0ff68002812aed1a8b4",
"translation_date": "2026-02-28T08:37:50+00:00",
"source_file": "4-Classification/3-Classifiers-2/README.md",
"language_code": "fa"
},
@ -197,12 +197,24 @@
"source_file": "4-Classification/3-Classifiers-2/assignment.md",
"language_code": "fa"
},
"4-Classification/3-Classifiers-2/notebook.ipynb": {
"original_hash": "624ca6cf73d3548ff1b3059e413fa4cd",
"translation_date": "2026-02-28T08:34:03+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "fa"
},
"4-Classification/3-Classifiers-2/solution/Julia/README.md": {
"original_hash": "a39c15d63f3b2795ee2284a82b986b93",
"translation_date": "2025-09-04T00:00:56+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/Julia/README.md",
"language_code": "fa"
},
"4-Classification/3-Classifiers-2/solution/notebook.ipynb": {
"original_hash": "70f41fe4fd4253adb44cd9d291406e4f",
"translation_date": "2026-02-28T08:34:09+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "fa"
},
"4-Classification/4-Applied/README.md": {
"original_hash": "61bdec27ed2da8b098cd9065405d9bb0",
"translation_date": "2025-09-04T22:43:03+00:00",
@ -540,8 +552,8 @@
"language_code": "fa"
},
"README.md": {
"original_hash": "2f594ee136e3127a47f56d80055227bc",
"translation_date": "2026-02-06T07:34:22+00:00",
"original_hash": "3a0286e1c4858e79ff54f080dadc1426",
"translation_date": "2026-02-28T08:36:08+00:00",
"source_file": "README.md",
"language_code": "fa"
},

@ -1,16 +1,18 @@
# بررسی ابزار هوش مصنوعی مسئولانه
# بررسی جعبه‌ابزار هوش مصنوعی مسئولانه
## دستورالعمل‌ها
در این درس درباره ابزار هوش مصنوعی مسئولانه یاد گرفتید، یک پروژه "متن‌باز و مبتنی بر جامعه برای کمک به دانشمندان داده در تحلیل و بهبود سیستم‌های هوش مصنوعی." برای این تکلیف، یکی از [دفترچه‌های یادداشت](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/getting-started.ipynb) ابزار RAI را بررسی کنید و یافته‌های خود را در قالب یک مقاله یا ارائه گزارش کنید.
در این درس با جعبه‌ابزار هوش مصنوعی مسئولانه آشنا شدید، یک «پروژه متن‌باز و جامعه‌محور برای کمک به دانشمندان داده به منظور تحلیل و بهبود سیستم‌های هوش مصنوعی». برای این تمرین، یکی از [دفترچه‌های] جعبه‌ابزار RAI را بررسی کرده و یافته‌های خود را در قالب مقاله یا ارائه گزارش دهید.
## معیارها
## معیار ارزیابی
| معیار | عالی | قابل قبول | نیاز به بهبود |
| ------ | ----- | ---------- | ------------- |
| | یک مقاله یا ارائه پاورپوینت ارائه شده که سیستم‌های Fairlearn، دفترچه یادداشت اجرا شده، و نتایج حاصل از اجرای آن را مورد بحث قرار می‌دهد | یک مقاله ارائه شده بدون نتیجه‌گیری | هیچ مقاله‌ای ارائه نشده است |
| معیار | نمونه کامل | کافی | نیاز به بهبود |
| -------- | --------- | -------- | ----------------- |
| | مقاله یا ارائه پاورپوینت ارائه شده است که درباره سیستم‌های Fairlearn، دفترچه‌ای که اجرا شده، و نتایج حاصل از اجرای آن بحث می‌کند | مقاله ارائه شده است اما بدون نتایج | مقاله‌ای ارائه نشده است |
---
**سلب مسئولیت**:
این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما تلاش می‌کنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نادرستی‌ها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، توصیه می‌شود از ترجمه حرفه‌ای انسانی استفاده کنید. ما مسئولیتی در قبال سوء تفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**توضیح مهم**:
این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما برای دقت تلاش می‌کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نادرستی‌هایی باشند. سند اصلی به زبان مبدا باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، توصیه می‌شود از ترجمه حرفه‌ای انسانی استفاده کنید. ما مسئول هیچگونه سوء تفاهم یا تفسیر نادرستی که از استفاده این ترجمه ناشی شود، نیستیم.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,124 +1,137 @@
# ساخت مدل رگرسیون با استفاده از Scikit-learn: چهار روش رگرسیون
![اینفوگرافیک رگرسیون خطی و چندجمله‌ای](../../../../2-Regression/3-Linear/images/linear-polynomial.png)
## یادداشت مبتدیان
رگرسیون خطی زمانی استفاده می‌شود که بخواهیم یک **مقدار عددی** (برای مثال، قیمت خانه، دما یا فروش) را پیش‌بینی کنیم.
این روش با پیدا کردن یک خط مستقیم که بهترین نمایش‌دهنده رابطه بین ویژگی‌های ورودی و خروجی است، کار می‌کند.
در این درس، تمرکز ما بر فهم مفهوم است قبل از اینکه به تکنیک‌های پیشرفته‌تر رگرسیون بپردازیم.
![رگرسیون خطی در مقابل چندجمله‌ای](../../../../translated_images/fa/linear-polynomial.5523c7cb6576ccab.webp)
> اینفوگرافیک توسط [Dasani Madipalli](https://twitter.com/dasani_decoded)
## [آزمون پیش از درس](https://ff-quizzes.netlify.app/en/ml/)
> ### [این درس به زبان R نیز موجود است!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### مقدمه
### معرفی
تا اینجا شما با مفهوم رگرسیون آشنا شده‌اید و داده‌های نمونه‌ای از مجموعه داده‌های قیمت‌گذاری کدو تنبل را بررسی کرده‌اید که در طول این درس از آن استفاده خواهیم کرد. همچنین این داده‌ها را با استفاده از Matplotlib بصری‌سازی کرده‌اید.
تا کنون شما بررسی کرده‌اید که رگرسیون چیست با داده‌های نمونه جمع‌آوری شده از مجموعه داده قیمت کدو حلوایی که در طول این درس استفاده خواهیم کرد. همچنین آن را با استفاده از Matplotlib بصری‌سازی کرده‌اید.
اکنون آماده هستید تا به عمق بیشتری در موضوع رگرسیون برای یادگیری ماشین بپردازید. در حالی که بصری‌سازی به شما کمک می‌کند داده‌ها را درک کنید، قدرت واقعی یادگیری ماشین در _آموزش مدلها_ نهفته است. مدل‌ها بر اساس داده‌های تاریخی آموزش داده می‌شوند تا وابستگی‌های داده‌ها را به طور خودکار شناسایی کنند و به شما امکان می‌دهند نتایج را برای داده‌های جدیدی که مدل قبلاً ندیده است پیش‌بینی کنید.
حالا آماده‌اید که عمیق‌تر به رگرسیون برای یادگیری ماشین بپردازید. در حالی که بصری‌سازی به شما کمک می‌کند داده‌ها را درک کنید، قدرت واقعی یادگیری ماشین از _آموزش مدلها_ می‌آید. مدل‌ها بر اساس داده‌های تاریخی آموزش می‌بینند تا وابستگی‌های داده‌ای را به صورت خودکار ضبط کنند و به شما امکان پیش‌بینی نتایج برای داده‌های جدیدی را می‌دهند که مدل قبلاً آن‌ها را ندیده است.
در این درس، شما با دو نوع رگرسیون بیشتر آشنا خواهید شد: _رگرسیون خطی ساده_ و _رگرسیون چندجملهای_، همراه با برخی از ریاضیات پایه‌ای این تکنیک‌ها. این مدل‌ها به ما امکان می‌دهند قیمت کدو تنبل را بر اساس داده‌های ورودی مختلف پیش‌بینی کنیم.
در این درس، شما درباره دو نوع رگرسیون بیشتر خواهید آموخت: _رگرسیون خطی پایه_ و _رگرسیون چندجملهای_، همراه با برخی از ریاضیات زیرساخت این تکنیک‌ها. این مدل‌ها به ما اجازه می‌دهند قیمت کدو حلوایی را بسته به داده‌های ورودی مختلف پیش‌بینی کنیم.
[![یادگیری ماشین برای مبتدیان - درک رگرسیون خطی](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "یادگیری ماشین برای مبتدیان - درک رگرسیون خطی")
[![یادگیری ماشین برای مبتدیان درک رگرسیون خطی](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "یادگیری ماشین برای مبتدیان درک رگرسیون خطی")
> 🎥 برای مشاهده ویدئوی کوتاه درباره رگرسیون خطی، روی تصویر بالا کلیک کنید.
> 🎥 برای مشاهده ویدئوی کوتاه معرفی رگرسیون خطی روی تصویر بالا کلیک کنید.
> در طول این دوره آموزشی، ما فرض می‌کنیم که دانش ریاضی شما حداقلی است و تلاش می‌کنیم آن را برای دانش‌آموزانی که از زمینه‌های دیگر می‌آیند قابل دسترس کنیم. بنابراین به یادداشت‌ها، 🧮 نکات، نمودارها و ابزارهای یادگیری دیگر برای کمک به درک توجه کنید.
> در طول این برنامه آموزشی، فرض بر دانش حداقلی ریاضیات است و تلاش می‌شود آن را برای دانش‌آموزان رشته‌های دیگر قابل دسترسی کنیم، پس به یادداشت‌ها، 🧮 فراخوان‌ها، نمودارها و سایر ابزارهای یادگیری توجه کنید تا فهم آسان‌تر شود.
### پیش‌نیاز
تا اینجا باید با ساختار داده‌های کدو تنبل که در حال بررسی آن هستیم آشنا شده باشید. این داده‌ها در فایل _notebook.ipynb_ این درس از پیش بارگذاری و پاک‌سازی شده‌اند. در این فایل، قیمت کدو تنبل به ازای هر بوشل در یک فریم داده جدید نمایش داده شده است. مطمئن شوید که می‌توانید این نوت‌بوکها را در کرنل‌های Visual Studio Code اجرا کنید.
تا حالا باید با ساختار داده‌های کدو حلوایی که بررسی می‌کنیم آشنا شده باشید. می‌توانید این داده‌ها را در فایل _notebook.ipynb_ این درس که پیش‌بارگذاری و پاک‌سازی شده است پیدا کنید. در این فایل، قیمت کدو حلوایی به ازای هر بوشل در یک فریم داده جدید نمایش داده شده است. مطمئن شوید که می‌توانید این دفترچهها را در کرنل‌های Visual Studio Code اجرا کنید.
### آماده‌سازی
به یاد داشته باشید که شما این داده‌ها را بارگذاری می‌کنید تا سوالاتی از آن بپرسید.
به یاد داشته باشید که این داده‌ها را بارگذاری می‌کنید تا بتوانید سوالاتی از آن بپرسید.
- بهترین زمان خرید کدو حلوایی چه زمانی است؟
- چه قیمتی می‌توانم برای یک جعبه کدوهای کوچک انتظار داشته باشم؟
- آیا باید آن‌ها را در سبدهای نیم بوشل خریداری کنم یا جعبه ۱ و ۱/۹ بوشل؟
- بهترین زمان برای خرید کدو تنبل چه زمانی است؟
- چه قیمتی را می‌توانم برای یک جعبه کدو تنبل کوچک انتظار داشته باشم؟
- آیا باید آن‌ها را در سبد‌های نیم‌بوشل بخرم یا در جعبه‌های 1 1/9 بوشل؟
بیایید به بررسی این داده‌ها ادامه دهیم.
بیایید بیشتر در این داده کاوش کنیم.
در درس قبلی، شما یک فریم داده Pandas ایجاد کردید و آن را با بخشی از مجموعه داده اصلی پر کردید، قیمت‌ها را بر اساس بوشل استانداردسازی کردید. با این حال، با انجام این کار، فقط توانستید حدود 400 نقطه داده جمع‌آوری کنید و فقط برای ماه‌های پاییز.
در درس قبلی، شما یک فریم داده Pandas ایجاد کردید و آن را با بخشی از مجموعه داده اولیه پر کردید، و قیمت‌گذاری را بر اساس بوشل استاندارد کردید. اما با این کار فقط توانستید حدود ۴۰۰ نقطه داده و فقط برای ماه‌های پاییز گردآوری کنید.
به داده‌هایی که در نوت‌بوک همراه این درس از پیش بارگذاری شده‌اند نگاهی بیندازید. داده‌ها از پیش بارگذاری شده‌اند و یک نمودار پراکندگی اولیه برای نمایش داده‌های ماه رسم شده است. شاید بتوانیم با پاک‌سازی بیشتر، جزئیات بیشتری درباره ماهیت داده‌ها به دست آوریم.
نگاهی به داده‌هایی که در دفترچه همراه این درس پیش‌بارگذاری شده است بیندازید. داده‌ها آماده‌اند و یک نمودار پراکندگی اولیه برای نشان دادن داده ماه ترسیم شده است. شاید بتوانیم با پاک‌سازی بیشتر داده‌ها جزئیات بیشتری درباره طبیعت داده‌ها به دست آوریم.
## خط رگرسیون خطی
همانطور که در درس 1 یاد گرفتید، هدف یک تمرین رگرسیون خطی این است که بتوانید یک خط رسم کنید تا:
همانطور که در درس ۱ آموختید، هدف تمرین رگرسیون خطی این است که خطی ترسیم کنیم که:
- **رابطه متغیرها را نشان دهد.** رابطه بین متغیرها را نشان دهد.
- **پیش‌بینی انجام دهد.** پیش‌بینی دقیقی از اینکه یک نقطه داده جدید در رابطه با آن خط کجا قرار می‌گیرد، ارائه دهد.
رایج‌ترین نوع رگرسیون خطی، **رگرسیون حداقل مربعات** است که این نوع خط را رسم می‌کند. اصطلاح "حداقل مربعات" به فرایند کمینه کردن مجموع کل خطا در مدل اشاره دارد. برای هر نقطه داده، فاصله عمودی (که باقیمانده نامیده می‌شود) بین نقطه واقعی و خط رگرسیون اندازه‌گیری می‌شود.
- **روابط متغیرها را نشان دهید**. رابطه بین متغیرها را نشان دهید.
- **پیش‌بینی کنید**. پیش‌بینی‌های دقیقی درباره اینکه یک نقطه داده جدید در رابطه با آن خط کجا قرار می‌گیرد انجام دهید.
این فاصله‌ها به دلایل دوگانه به توان دو می‌رسند:
در رگرسیون **کمترین مربعات** معمول است که این نوع خط را رسم کنید. اصطلاح "کمترین مربعات" به این معناست که تمام نقاط داده اطراف خط رگرسیون مربع شده و سپس جمع می‌شوند. ایده‌آل این است که این مجموع نهایی تا حد ممکن کوچک باشد، زیرا ما می‌خواهیم تعداد خطاها کم باشد، یا همان `کمترین مربعات`.
1. **مقدار نسبت به جهت:** می‌خواهیم خطای -۵ را برابر با خطای +۵ در نظر بگیریم. با مربع گرفتن همه مقدارها مثبت می‌شوند.
ما این کار را انجام می‌دهیم زیرا می‌خواهیم مدلی از یک خط داشته باشیم که کمترین فاصله تجمعی از تمام نقاط داده ما را داشته باشد. همچنین قبل از جمع کردن، مقادیر را مربع می‌کنیم زیرا به بزرگی آن‌ها اهمیت می‌دهیم نه جهت آن‌ها.
2. **مجازات نقاط پرت:** توان دو دادن وزن بیشتری به خطاهای بزرگتر می‌دهد و خط را مجبور می‌کند که نزدیک به نقاط دورتر بماند.
سپس همه این مقادیر مربعی را با هم جمع می‌کنیم. هدف ما یافتن آن خط خاص است که مجموع نهایی در آن حداقل (کوچکترین مقدار ممکن) باشد — به همین دلیل به آن "حداقل مربعات" گفته می‌شود.
> **🧮 ریاضیات را به من نشان بده**
>
> این خط، که به آن _خط بهترین برازش_ گفته می‌شود، می‌تواند با [یک معادله](https://en.wikipedia.org/wiki/Simple_linear_regression) بیان شود:
>
>
> این خط که _خط بهترین برازش_ نامیده می‌شود را می‌توان با [یک معادله](https://en.wikipedia.org/wiki/Simple_linear_regression) بیان کرد:
>
> ```
> Y = a + bX
> ```
>
> `X` متغیر توضیحی است. `Y` متغیر وابسته است. شیب خط `b` است و `a` نقطه تقاطع با محور y است که به مقدار `Y` زمانی که `X = 0` اشاره دارد.
> `X` متغیر «توضیحی» است. `Y` متغیر «وابسته» است. شیب خط `b` است و `a` مقدار y-عرض از مبدأ (y-intercept) است که به مقدار `Y` هنگامی که `X = 0` اشاره دارد.
>
>![محاسبه شیب](../../../../2-Regression/3-Linear/images/slope.png)
>![محاسبه شیب](../../../../translated_images/fa/slope.f3c9d5910ddbfcf9.webp)
>
> ابتدا شیب `b` را محاسبه کنید. اینفوگرافیک توسط [Jen Looper](https://twitter.com/jenlooper)
>
> به عبارت دیگر، و با اشاره به سوال اصلی داده‌های کدو تنبل: "پیش‌بینی قیمت کدو تنبل به ازای هر بوشل بر اساس ماه"، `X` به قیمت اشاره دارد و `Y` به ماه فروش.
> به عبارت دیگر، و با اشاره به سوال اصلی داده‌های کدو حلوایی ما: «پیش‌بینی قیمت کدو حلوایی به ازای هر بوشل با توجه به ماه»، `X` اشاره به قیمت دارد و `Y` به ماه فروش اشاره می‌کند.
>
>![تکمیل معادله](../../../../2-Regression/3-Linear/images/calculation.png)
>![معادله را کامل کنید](../../../../translated_images/fa/calculation.a209813050a1ddb1.webp)
>
> مقدار `Y` را محاسبه کنید. اگر حدود 4 دلار پرداخت می‌کنید، باید ماه آوریل باشد! اینفوگرافیک توسط [Jen Looper](https://twitter.com/jenlooper)
> مقدار Y را محاسبه کنید. اگر حدود ۴ دلار پرداخت می‌کنید، حتماً ماه آوریل است! اینفوگرافیک توسط [Jen Looper](https://twitter.com/jenlooper)
>
> ریاضیات محاسبه خط باید شیب خط را نشان دهد، که همچنین به نقطه تقاطع وابسته است، یا جایی که `Y` زمانی که `X = 0` قرار دارد.
> ریاضیات محاسبه خط باید شیب خط را که به مقدار عرض از مبدأ نیز وابسته است نشان دهد، یعنی جایی که مقدار `Y` وقتی `X = 0` قرار دارد.
>
> می‌توانید روش محاسبه این مقادیر را در وب‌سایت [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) مشاهده کنید. همچنین به [این ماشین حساب کمترین مربعات](https://www.mathsisfun.com/data/least-squares-calculator.html) مراجعه کنید تا ببینید چگونه مقادیر عددی بر خط تأثیر می‌گذارند.
> روش محاسبه این مقادیر را می‌توانید در وب‌سایت [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) مشاهده کنید. همچنین با استفاده از [این ماشین حساب حداقل مربعات](https://www.mathsisfun.com/data/least-squares-calculator.html) ببینید که چگونه مقدار اعداد بر خط تاثیر می‌گذارد.
## همبستگی
یک اصطلاح دیگر که باید درک کنید **ضریب همبستگی** بین متغیرهای X و Y داده شده است. با استفاده از نمودار پراکندگی، می‌توانید این ضریب را به سرعت بصری‌سازی کنید. نموداری با نقاط داده پراکنده در یک خط مرتب دارای همبستگی بالا است، اما نموداری با نقاط داده پراکنده در همه جا بین X و Y دارای همبستگی پایین است.
یک اصطلاح دیگر برای درک، **ضریب همبستگی** بین دو متغیر X و Y است. با استفاده از نمودار پراکندگی، می‌توانید این ضریب را سریع بصری‌سازی کنید. نموداری با نقاط داده مرتب روی یک خط همبستگی بالا دارد، ولی اگر نقاط پراکنده در جای‌جای نمودار باشند، همبستگی پایین است.
یک مدل رگرسیون خطی خوب مدلی است که با استفاده از روش کمترین مربعات رگرسیون و یک خط رگرسیون، ضریب همبستگی بالایی (نزدیک‌تر به 1 تا 0) داشته باشد.
یک مدل رگرسیون خطی خوب، مدلی است که ضریب همبستگی بالایی (نزدیک به ۱ و دور از ۰) با روش حداقل مربعات و خط رگرسیون داشته باشد.
نوت‌بوک همراه این درس را اجرا کنید و به نمودار پراکندگی ماه به قیمت نگاه کنید. آیا داده‌های مرتبط با ماه به قیمت برای فروش کدو تنبل به نظر شما همبستگی بالا یا پایینی دارند، بر اساس تفسیر بصری شما از نمودار پراکندگی؟ آیا این تغییر می‌کند اگر به جای `ماه` از اندازه‌گیری دقیق‌تر مانند *روز سال* (یعنی تعداد روزها از ابتدای سال) استفاده کنید؟
دفترچه همراه این درس را اجرا کنید و نمودار پراکندگی ماه به قیمت را نگاه کنید. آیا داده‌های ارتباط ماه به قیمت کدو فروش همبستگی بالا یا پایین دارند، طبق تفسیر بصری شما از نمودار پراکندگی؟ آیا این تغییر می‌کند اگر به جای `ماه` از معیار دقیق‌تری مثل *روز سال* (یعنی تعداد روزهای گذشته از اول سال) استفاده کنید؟
در کد زیر، فرض می‌کنیم که داده‌ها را پاک‌سازی کرده‌ایم و یک فریم داده به نام `new_pumpkins` به دست آورده‌ایم، مشابه موارد زیر:
در کد زیر فرض می‌کنیم داده‌ها را پاک‌سازی کرده‌ایم و یک فریم داده به نام `new_pumpkins` داریم، شبیه به موارد زیر:
ID | ماه | روز سال | نوع | شهر | بسته‌بندی | قیمت پایین | قیمت بالا | قیمت
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
---|-------|-----------|---------|------|---------|-----------|------------|-------
70 | 9 | 267 | نوع پای | بالتیمور | جعبه‌های 1 1/9 بوشل | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | نوع پای | بالتیمور | جعبه‌های 1 1/9 بوشل | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | نوع پای | بالتیمور | جعبه‌های 1 1/9 بوشل | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | نوع پای | بالتیمور | جعبه‌های 1 1/9 بوشل | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | نوع پای | بالتیمور | جعبه‌های 1 1/9 بوشل | 15.0 | 15.0 | 13.636364
70 | 9 | 267 | نوع پای | بالتیمور | جعبه ۱ و ۱ بوشل | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | نوع پای | بالتیمور | جعبه ۱ و ۱ بوشل | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | نوع پای | بالتیمور | جعبه ۱ و ۱ بوشل | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | نوع پای | بالتیمور | جعبه ۱ و ۱ بوشل | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | نوع پای | بالتیمور | جعبه ۱ و ۱ بوشل | 15.0 | 15.0 | 13.636364
> کد پاک‌سازی دادهها در [`notebook.ipynb`](../../../../2-Regression/3-Linear/notebook.ipynb) موجود است. ما همان مراحل پاک‌سازی درس قبلی را انجام داده‌ایم و ستون `روز سال` را با استفاده از عبارت زیر محاسبه کرده‌ایم:
> کد پاک‌سازی داده در [`notebook.ipynb`](notebook.ipynb) موجود است. ما همان مراحل پاک‌سازی درس قبلی را انجام داده‌ایم و ستون `DayOfYear` را با استفاده از عبارت زیر محاسبه کرده‌ایم:
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
```
اکنون که درک بهتری از ریاضیات پشت رگرسیون خطی دارید، بیایید یک مدل رگرسیون بسازیم تا ببینیم آیا می‌توانیم پیش‌بینی کنیم کدام بسته‌بندی کدو تنبل بهترین قیمت‌ها را خواهد داشت. کسی که کدو تنبل برای یک مزرعه تعطیلاتی خریداری می‌کند ممکن است بخواهد این اطلاعات را داشته باشد تا خریدهای بسته‌های کدو تنبل برای مزرعه را بهینه کند.
حالا که با ریاضیات پشت رگرسیون خطی آشنا شدید، بیایید یک مدل رگرسیون بسازیم تا ببینیم آیا می‌توانیم پیش‌بینی کنیم کدام بسته کدو بیشترین قیمت را خواهد داشت. کسی که کدو برای یک نقطه کدو حلوایی تعطیلات می‌خرد ممکن است بخواهد این اطلاعات را برای بهینه‌سازی خریدهای خود داشته باشد.
## جستجوی همبستگی
[![یادگیری ماشین برای مبتدیان - جستجوی همبستگی: کلید رگرسیون خطی](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "یادگیری ماشین برای مبتدیان - جستجوی همبستگی: کلید رگرسیون خطی")
[![یادگیری ماشین برای مبتدیان جستجوی همبستگی: کلید رگرسیون خطی](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "یادگیری ماشین برای مبتدیان جستجوی همبستگی: کلید رگرسیون خطی")
> 🎥 برای مشاهده ویدئوی کوتاه درباره همبستگی، روی تصویر بالا کلیک کنید.
> 🎥 برای مشاهده ویدئوی کوتاه معرفی همبستگی روی تصویر بالا کلیک کنید.
از درس قبلی احتمالاً دیده‌اید که میانگین قیمت برای ماه‌های مختلف به این شکل است:
<img alt="میانگین قیمت بر اساس ماه" src="../../../../translated_images/fa/barchart.a833ea9194346d76.webp" width="50%"/>
این نشان می‌دهد که باید مقداری همبستگی وجود داشته باشد، و می‌توانیم تلاش کنیم مدل رگرسیون خطی را آموزش دهیم تا رابطه بین `ماه` و `قیمت` یا بین `روز سال` و `قیمت` را پیش‌بینی کنیم. در اینجا نمودار پراکندگی که رابطه دوم را نشان می‌دهد آورده شده است:
این نشان می‌دهد که باید نوعی همبستگی وجود داشته باشد، و می‌توانیم مدل رگرسیون خطی را برای پیش‌بینی رابطه بین `ماه` و `قیمت` یا بین `روز سال` و `قیمت` آموزش دهیم. در اینجا نمودار پراکندگی رابطه دوم نشان داده شده است:
<img alt="نمودار پراکندگی قیمت در مقابل روز سال" src="../../../../translated_images/fa/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
<img alt="نمودار پراکندگی قیمت در مقابل روز سال" src="../../../../translated_images/fa/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
بیایید ببینیم آیا همبستگی وجود دارد یا نه با استفاده از تابع `corr`:
بیایید ببینیم با استفاده از تابع `corr` آیا همبستگی وجود دارد:
```python
print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
```
به نظر می‌رسد که همبستگی بسیار کم است، -0.15 بر اساس `ماه` و -0.17 بر اساس `روز سال`، اما ممکن است رابطه مهم دیگری وجود داشته باشد. به نظر می‌رسد که دسته‌های مختلف قیمت‌ها مربوط به انواع مختلف کدو تنبل هستند. برای تأیید این فرضیه، بیایید هر دسته کدو تنبل را با رنگ متفاوتی رسم کنیم. با ارسال پارامتر `ax` به تابع رسم پراکندگی، می‌توانیم تمام نقاط را روی یک نمودار رسم کنیم:
به نظر می‌رسد همبستگی نسبتاً کوچک است، -۰.۱۵ برای `ماه` و -۰.۱۷ برای `روز سال`، اما ممکن است ارتباط مهم دیگری وجود داشته باشد. به نظر می‌رسد خوشه‌های مختلف قیمت با انواع مختلف کدو متناسب است. برای تأیید این فرض، بیایید هر دسته کدو را با رنگ متفاوت ترسیم کنیم. با ارسال پارامتر `ax` به تابع نمودار پراکندگی، می‌توانیم همه نقاط را روی یک نمودار ترسیم کنیم:
```python
ax=None
@ -128,40 +141,40 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
ax = df.plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var)
```
<img alt="نمودار پراکندگی قیمت در مقابل روز سال" src="../../../../translated_images/fa/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
<img alt="نمودار پراکندگی قیمت در مقابل روز سال با رنگ" src="../../../../translated_images/fa/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
تحقیقات ما نشان می‌دهد که نوع کدو تنبل تأثیر بیشتری بر قیمت کلی دارد تا تاریخ فروش واقعی. می‌توانیم این را با یک نمودار میله‌ای ببینیم:
تحقیق ما نشان می‌دهد که نوع کدو تاثیر بیشتری روی قیمت کلی دارد تا تاریخ واقعی فروش. این را می‌توان با نمودار میله‌ای دید:
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
```
<img alt="نمودار میله‌ای قیمت در مقابل نوع" src="../../../../translated_images/fa/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="نمودار میله‌ای قیمت بر اساس نوع" src="../../../../translated_images/fa/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
بیایید فعلاً فقط بر یک نوع کدو تنبل، نوع 'پای'، تمرکز کنیم و ببینیم تاریخ چه تأثیری بر قیمت دارد:
فعلاً فقط روی یک نوع کدو، 'نوع پای' تمرکز کنیم و ببینیم تاریخ چه تأثیری روی قیمت دارد:
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price')
```
<img alt="نمودار پراکندگی قیمت در مقابل روز سال" src="../../../../translated_images/fa/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
<img alt="نمودار پراکندگی قیمت در مقابل روز سال" src="../../../../translated_images/fa/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
اگر اکنون همبستگی بین `قیمت` و `روز سال` را با استفاده از تابع `corr` محاسبه کنیم، چیزی حدود `-0.27` به دست خواهیم آورد - که به این معناست که آموزش یک مدل پیش‌بینی منطقی است.
اگر اکنون همبستگی بین `قیمت` و `روز سال` را با استفاده از تابع `corr` محاسبه کنیم، چیزی مانند `-0.27` به دست می‌آوریم که نشان می‌دهد آموزش مدل پیش‌بینی منطقی است.
> قبل از آموزش مدل رگرسیون خطی، مهم است که مطمئن شویم داده‌های ما پاک هستند. رگرسیون خطی با مقادیر گمشده خوب کار نمی‌کند، بنابراین منطقی است که تمام سلول‌های خالی را حذف کنیم:
> پیش از آموزش مدل رگرسیون خطی، مهم است که داده‌ها پاک باشند. رگرسیون خطی با مقادیر گمشده خوب کار نمی‌کند، بنابراین بهتر است همه خانه‌های خالی را حذف کنیم:
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
یک روش دیگر این است که این مقادیر خالی را با مقادیر میانگین از ستون مربوطه پر کنیم.
رویکرد دیگر پر کردن این مقادیر خالی با میانگین ستون مربوطه است.
## رگرسیون خطی ساده
[![یادگیری ماشین برای مبتدیان - رگرسیون خطی و چندجمله‌ای با استفاده از Scikit-learn](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "یادگیری ماشین برای مبتدیان - رگرسیون خطی و چندجمله‌ای با استفاده از Scikit-learn")
[![یادگیری ماشین برای مبتدیان رگرسیون خطی و چندجمله‌ای با استفاده از Scikit-learn](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "یادگیری ماشین برای مبتدیان رگرسیون خطی و چندجمله‌ای با استفاده از Scikit-learn")
> 🎥 برای مشاهده ویدئوی کوتاه درباره رگرسیون خطی و چندجمله‌ای، روی تصویر بالا کلیک کنید.
> 🎥 برای دیدن ویدئوی کوتاه معرفی رگرسیون خطی و چندجمله‌ای روی تصویر بالا کلیک کنید.
برای آموزش مدل رگرسیون خطی خود، از کتابخانه **Scikit-learn** استفاده خواهیم کرد.
@ -171,31 +184,31 @@ from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
ابتدا باید مقادیر ورودی (ویژگی‌ها) و خروجی مورد انتظار (برچسب) را به آرایه‌های numpy جداگانه تقسیم کنیم:
با جدا کردن مقادیر ورودی (ویژگی‌ها) و خروجی مورد انتظار (برچسب) به آرایه‌های numpy جداگانه شروع می‌کنیم:
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
> توجه داشته باشید که ما مجبور بودیم داده‌های ورودی را با استفاده از `reshape` تغییر شکل دهیم تا بسته رگرسیون خطی بتواند آن را به درستی درک کند. رگرسیون خطی یک آرایه دو‌بعدی را به عنوان ورودی انتظار دارد، جایی که هر سطر آرایه مربوط به یک بردار از ویژگی‌های ورودی است. در مورد ما، از آنجا که فقط یک ورودی داریم - به آرایه‌ای با شکل N×1 نیاز داریم، جایی که N اندازه مجموعه داده است.
> توجه داشته باشید که ما باید `reshape` روی داده‌های ورودی اعمال کنیم تا بسته رگرسیون خطی آنها را به درستی بفهمد. رگرسیون خطی انتظار دارد ورودی یک آرایه ۲بعدی باشد که هر سطر آن یک بردار ویژگی‌های ورودی است. در مورد ما چون فقط یک ورودی داریم، به آرایه‌ای با شکل N×1 نیاز داریم که N اندازه دیتاست است.
سپس، باید داده‌ها را به مجموعه‌های آموزشی و آزمایشی تقسیم کنیم تا بتوانیم مدل خود را پس از آموزش اعتبارسنجی کنیم:
سپس، باید داده‌ها را به مجموعه‌های آموزش و تست تقسیم کنیم، تا بتوانیم پس از آموزش مدل آن را ارزیابی کنیم:
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
در نهایت، آموزش مدل رگرسیون خطی واقعی فقط دو خط کد طول می‌کشد. ما شیء `LinearRegression` را تعریف می‌کنیم و آن را با استفاده از روش `fit` به داده‌های خود تطبیق می‌دهیم:
در نهایت، آموزش مدل واقعی رگرسیون خطی تنها دو خط کد طول می‌کشد. ما یک شیء `LinearRegression` تعریف می‌کنیم و آن را با استفاده از متد `fit` روی داده‌ها آموزش می‌دهیم:
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
شیء `LinearRegression` پس از تطبیق شامل تمام ضرایب رگرسیون است که می‌توان با استفاده از ویژگی `.coef_` به آن‌ها دسترسی پیدا کرد. در مورد ما، فقط یک ضریب وجود دارد، که باید حدود `-0.017` باشد. این به این معناست که قیمت‌ها به نظر می‌رسد کمی با گذشت زمان کاهش می‌یابند، اما نه خیلی زیاد، حدود 2 سنت در روز. همچنین می‌توانیم نقطه تقاطع رگرسیون با محور Y را با استفاده از `lin_reg.intercept_` دسترسی پیدا کنیم - که در مورد ما حدود `21` خواهد بود، که نشان‌دهنده قیمت در ابتدای سال است.
شیء `LinearRegression` پس از انجام `fit` شامل تمامی ضرایب رگرسیون است که می‌توان به آن‌ها با استفاده از خاصیت `.coef_` دسترسی داشت. در مورد ما، فقط یک ضریب وجود دارد که باید حدود `-0.017` باشد. این یعنی قیمت‌ها کمی با گذر زمان کاهش می‌یابد، اما نه خیلی زیاد، حدود ۲ سنت در روز. همچنین می‌توانیم نقطه تقاطع رگرسیون با محور Y را با استفاده از `lin_reg.intercept_` مشاهده کنیم - که در مورد ما حدود `21` است و نشان‌دهنده قیمت در ابتدای سال است.
برای دیدن اینکه مدل ما چقدر دقیق است، می‌توانیم قیمت‌ها را در مجموعه داده آزمایشی پیش‌بینی کنیم و سپس اندازه‌گیری کنیم که پیش‌بینی‌های ما چقدر به مقادیر مورد انتظار نزدیک هستند. این کار را می‌توان با استفاده از معیار خطای میانگین مربعات (MSE) انجام داد، که میانگین تمام تفاوت‌های مربعی بین مقدار مورد انتظار و پیش‌بینی شده است.
برای دیدن اینکه مدل ما چقدر دقیق است، می‌توانیم قیمت‌ها را روی داده‌های تست پیش‌بینی کنیم و سپس میزان نزدیکی پیش‌بینی‌ها به مقادیر انتظار رفته را بسنجیم. این کار می‌تواند با استفاده از معیار میانگین مربعات خطا (MSE) انجام شود، که میانگین تمام تفاوت‌های مجذور شده بین مقدار انتظار رفته و پیش‌بینی شده است.
```python
pred = lin_reg.predict(X_test)
@ -203,36 +216,38 @@ pred = lin_reg.predict(X_test)
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
```
خطای ما به نظر می‌رسد در حدود ۲ نقطه باشد، که تقریباً ۱۷٪ است. چندان خوب نیست. یکی دیگر از شاخص‌های کیفیت مدل **ضریب تعیین** است، که می‌توان آن را به این صورت به دست آورد:
خطای ما به نظر می‌رسد حدود ۲ واحد است که حدود ۱۷٪ می‌شود. چندان خوب نیست. شاخص دیگری برای کیفیت مدل، **ضریب تعیین** است که می‌توان آن را به صورت زیر به دست آورد:
```python
score = lin_reg.score(X_train,y_train)
print('Model determination: ', score)
```
اگر مقدار برابر با ۰ باشد، به این معناست که مدل داده‌های ورودی را در نظر نمی‌گیرد و به عنوان *بدترین پیش‌بینی‌کننده خطی* عمل می‌کند، که صرفاً میانگین نتایج است. مقدار ۱ به این معناست که می‌توانیم تمام خروجی‌های مورد انتظار را به طور کامل پیش‌بینی کنیم. در مورد ما، ضریب تعیین حدود ۰.۰۶ است که بسیار پایین است.
```
اگر مقدار ۰ باشد، به این معناست که مدل ورودی‌ها را در نظر نمی‌گیرد و به عنوان *بدترین پیش‌بینی‌کننده خطی* عمل می‌کند که صرفاً مقدار میانگین نتیجه است. مقدار ۱ نشان می‌دهد که می‌توانیم به‌طور کامل همه خروجی‌های انتظار رفته را پیش‌بینی کنیم. در مورد ما، ضریب حدود ۰.۰۶ است که بسیار پایین است.
ما همچنین می‌توانیم داده‌های آزمایشی را همراه با خط رگرسیون رسم کنیم تا بهتر ببینیم که رگرسیون در مورد ما چگونه عمل می‌کند:
همچنین می‌توانیم داده‌های تست را به همراه خط رگرسیونی رسم کنیم تا بهتر ببینیم رگرسیون در مورد ما چگونه عمل می‌کند:
```python
plt.scatter(X_test,y_test)
plt.plot(X_test,pred)
```
```
<img alt="رگرسیون خطی" src="../../../../translated_images/fa/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
<img alt="Linear regression" src="../../../../translated_images/fa/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
## رگرسیون چندجمله‌ای
## رگرسیون چندجمله‌ای
نوع دیگری از رگرسیون خطی، رگرسیون چندجمله‌ای است. گاهی اوقات رابطه خطی بین متغیرها وجود دارد - مثلاً هرچه حجم کدو تنبل بزرگ‌تر باشد، قیمت بالاتر می‌رود - اما گاهی این روابط نمی‌توانند به صورت یک صفحه یا خط مستقیم رسم شوند.
نوع دیگری از رگرسیون خطی، رگرسیون چندجمله‌ای است. در حالی که گاهی رابطه خطی بین متغیرها وجود دارد - مثلاً هرچه حجم کدو تنبل بزرگ‌تر باشد، قیمت بالاتر است - گاهی این روابط قابل ترسیم به صورت یک صفحه یا خط راست نیستند.
[اینجا چند مثال دیگر](https://online.stat.psu.edu/stat501/lesson/9/9.8) از داده‌هایی که می‌توانند از رگرسیون چندجمله‌ای استفاده کنند آورده شده است.
اینجا [چند مثال بیشتر](https://online.stat.psu.edu/stat501/lesson/9/9.8) از داده‌هایی وجود دارد که می‌توانند از رگرسیون چندجمله‌ای استفاده کنند
یک بار دیگر به رابطه بین تاریخ و قیمت نگاه کنید. آیا این نمودار پراکندگی به نظر می‌رسد که باید حتماً با یک خط مستقیم تحلیل شود؟ آیا قیمت‌ها نمی‌توانند نوسان داشته باشند؟ در این مورد، می‌توانید رگرسیون چندجمله‌ای را امتحان کنید.
یک بار دیگر رابطه بین تاریخ و قیمت را بررسی کنید. آیا این نمودار پراکندگی حتما باید توسط یک خط راست تحلیل شود؟ آیا نمی‌توان قیمت‌ها را متغیر و نوسان‌کننده در نظر گرفت؟ در این حالت، می‌توانید رگرسیون چندجمله‌ای را امتحان کنید.
✅ چندجمله‌ای‌ها عبارت‌های ریاضی هستند که ممکن است شامل یک یا چند متغیر و ضرایب باشند.
✅ چندجمله‌ای‌ها عبارات ریاضی هستند که ممکن است از یک یا چند متغیر و ضرایب تشکیل شوند.
رگرسیون چندجمله‌ای یک خط منحنی ایجاد می‌کند تا داده‌های غیرخطی را بهتر تطبیق دهد. در مورد ما، اگر یک متغیر `DayOfYear` به توان دو را به داده‌های ورودی اضافه کنیم، باید بتوانیم داده‌های خود را با یک منحنی سهمی تطبیق دهیم که در یک نقطه خاص در طول سال حداقل خواهد بود.
رگرسیون چندجمله‌ای یک خط منحنی ایجاد می‌کند تا بهتر داده‌های غیرخطی را برازش کند. در مورد ما، اگر متغیر مربعی `DayOfYear` را به داده‌های ورودی اضافه کنیم، باید بتوانیم داده‌ها را با یک منحنی سهمی شکل تناسب دهیم که حداقل آن در نقطه‌ای مشخص در طول سال واقع شده باشد.
Scikit-learn یک [API خط لوله](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) مفید برای ترکیب مراحل مختلف پردازش داده‌ها ارائه می‌دهد. **خط لوله** زنجیره‌ای از **تخمین‌گرها** است. در مورد ما، یک خط لوله ایجاد خواهیم کرد که ابتدا ویژگی‌های چندجمله‌ای را به مدل اضافه می‌کند و سپس رگرسیون را آموزش می‌دهد:
Scikit-learn یک [رابط خط لوله](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) مفید ارائه می‌دهد که مراحل مختلف پردازش داده را با هم ترکیب می‌کند. یک **خط لوله** زنجیره‌ای از **برآوردگرها** است. در مورد ما، یک خط لوله می‌سازیم که ابتدا ویژگی‌های چندجمله‌ای را به مدل اضافه می‌کند و سپس رگرسیون را آموزش می‌دهد:
```python
from sklearn.preprocessing import PolynomialFeatures
@ -241,62 +256,62 @@ from sklearn.pipeline import make_pipeline
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
```
```
استفاده از `PolynomialFeatures(2)` به این معناست که تمام چندجمله‌ای‌های درجه دوم از داده‌های ورودی را شامل خواهیم کرد. در مورد ما این فقط به معنای `DayOfYear`<sup>2</sup> خواهد بود، اما با دو متغیر ورودی X و Y، این شامل X<sup>2</sup>، XY و Y<sup>2</sup> خواهد بود. اگر بخواهیم، می‌توانیم از چندجمله‌ای‌های درجه بالاتر نیز استفاده کنیم.
استفاده از `PolynomialFeatures(2)` یعنی اینکه همه چندجمله‌ای‌های درجه دوم از داده ورودی را شامل می‌شویم. در مورد ما، فقط به معنی `DayOfYear`<sup>2</sup> است، اما اگر دو متغیر ورودی X و Y داشته باشیم، این شامل X<sup>2</sup>، XY و Y<sup>2</sup> خواهد بود. ما همچنین می‌توانیم از چندجمله‌ای‌های درجه بالاتر نیز استفاده کنیم اگر بخواهیم.
خط لوله‌ها را می‌توان به همان شیوه‌ای که شیء اصلی `LinearRegression` استفاده می‌شود، یعنی با `fit` کردن خط لوله و سپس استفاده از `predict` برای دریافت نتایج پیش‌بینی، استفاده کرد. اینجا نمودار داده‌های آزمایشی و منحنی تقریب آورده شده است:
خط لوله‌ها می‌توانند به همان شیوه شیء `LinearRegression` اصلی استفاده شوند، یعنی می‌توانیم روی خط لوله `fit` کنیم و سپس از `predict` برای دریافت نتایج پیش‌بینی استفاده کنیم. در اینجا نموداری است که داده‌های تست و منحنی تقریب را نشان می‌دهد:
<img alt="رگرسیون چندجمله‌ای" src="../../../../translated_images/fa/poly-results.ee587348f0f1f60b.webp" width="50%" />
<img alt="Polynomial regression" src="../../../../translated_images/fa/poly-results.ee587348f0f1f60b.webp" width="50%" />
با استفاده از رگرسیون چندجمله‌ای، می‌توانیم MSE کمی پایین‌تر و ضریب تعیین بالاتری داشته باشیم، اما نه به طور قابل توجهی. باید ویژگی‌های دیگر را نیز در نظر بگیریم!
با استفاده از رگرسیون چندجمله‌ای، می‌توانیم خطای میانگین مربعات کمی پایین‌تر و ضریب تعیین بالاتری به دست آوریم، اما نه به طور قابل توجه. باید ویژگی‌های دیگر را نیز مد نظر قرار دهیم!
> می‌توانید ببینید که قیمت‌های حداقل کدو تنبل در حوالی هالووین مشاهده می‌شود. چگونه می‌توانید این را توضیح دهید؟
> می‌بینید که کمترین قیمت‌های کدو تنبل در حوالی هالووین مشاهده می‌شود. چگونه می‌توانید این را توضیح دهید؟
🎃 تبریک می‌گویم، شما مدلی ایجاد کردید که می‌تواند به پیش‌بینی قیمت کدو تنبل پای کمک کند. احتمالاً می‌توانید همین روش را برای همه انواع کدو تنبل تکرار کنید، اما این کار خسته‌کننده خواهد بود. حالا بیایید یاد بگیریم که چگونه نوع کدو تنبل را در مدل خود در نظر بگیریم!
🎃 تبریک می‌گوییم، شما به تازگی مدلی ایجاد کردید که می‌تواند در پیش‌بینی قیمت کدو تنبل پای کمک کند. احتمالاً می‌توانید همین روند را برای همه نوع‌های کدو تنبل تکرار کنید، اما این کار خسته‌کننده خواهد بود. حالا بیایید یاد بگیریم چگونه تنوع کدو تنبل را در مدل خود در نظر بگیریم!
## ویژگی‌های دسته‌بندی‌شده
## ویژگی‌های دسته‌ای
در دنیای ایده‌آل، ما می‌خواهیم بتوانیم قیمت‌ها را برای انواع مختلف کدو تنبل با استفاده از همان مدل پیش‌بینی کنیم. با این حال، ستون `Variety` کمی متفاوت از ستون‌هایی مانند `Month` است، زیرا شامل مقادیر غیرعددی است. چنین ستون‌هایی **دسته‌بندی‌شده** نامیده می‌شوند.
در دنیای ایده‌آل، می‌خواهیم بتوانیم قیمت‌ها را برای گونه‌های مختلف کدو تنبل با استفاده از همان مدل پیش‌بینی کنیم. اما ستون `Variety` کمی متفاوت از ستون‌هایی مثل `Month` است، چون شامل مقادیر غیرعددی است. چنین ستون‌هایی **دسته‌ای** نامیده می‌شوند.
[![یادگیری ماشین برای مبتدیان - پیش‌بینی ویژگی‌های دسته‌بندی‌شده با رگرسیون خطی](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "یادگیری ماشین برای مبتدیان - پیش‌بینی ویژگی‌های دسته‌بندی‌شده با رگرسیون خطی")
[![ML for beginners - Categorical Feature Predictions with Linear Regression](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
> 🎥 روی تصویر بالا کلیک کنید تا یک ویدئوی کوتاه درباره استفاده از ویژگی‌های دسته‌بندی‌شده مشاهده کنید.
> 🎥 روی تصویر بالا کلیک کنید تا یک ویدیوی کوتاه درباره استفاده از ویژگی‌های دسته‌ای ببینید.
اینجا می‌توانید ببینید که چگونه قیمت متوسط به نوع کدو تنبل بستگی دارد:
در اینجا می‌بینید که قیمت متوسط چگونه بسته به نوع کدو تنبل تغییر می‌کند:
<img alt="قیمت متوسط بر اساس نوع" src="../../../../translated_images/fa/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Average price by variety" src="../../../../translated_images/fa/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
برای در نظر گرفتن نوع کدو تنبل، ابتدا باید آن را به شکل عددی تبدیل کنیم، یا **رمزگذاری** کنیم. چند روش برای انجام این کار وجود دارد:
برای در نظر گرفتن تنوع، ابتدا باید آن را به فرم عددی تبدیل کنیم، یا به اصطلاح آن را **کدگذاری** کنیم. چند روش وجود دارد:
* **رمزگذاری عددی ساده** یک جدول از انواع مختلف ایجاد می‌کند و سپس نام نوع را با یک شاخص در آن جدول جایگزین می‌کند. این بهترین روش برای رگرسیون خطی نیست، زیرا رگرسیون خطی مقدار عددی واقعی شاخص را می‌گیرد و آن را به نتیجه اضافه می‌کند، ضرب در یک ضریب. در مورد ما، رابطه بین شماره شاخص و قیمت به وضوح غیرخطی است، حتی اگر مطمئن شویم که شاخص‌ها به ترتیب خاصی مرتب شده‌اند.
* **رمزگذاری یک‌به‌چند** ستون `Variety` را با ۴ ستون مختلف جایگزین می‌کند، یکی برای هر نوع. هر ستون شامل `1` خواهد بود اگر ردیف مربوطه از یک نوع خاص باشد، و در غیر این صورت `0`. این به این معناست که در رگرسیون خطی، چهار ضریب وجود خواهد داشت، یکی برای هر نوع کدو تنبل، که مسئول "قیمت شروع" (یا بهتر بگوییم "قیمت اضافی") برای آن نوع خاص است.
* کدگذاری عددی ساده جدولی از گونه‌های مختلف می‌سازد و سپس نام گونه را با یک شماره شاخص در آن جدول جایگزین می‌کند. این روش برای رگرسیون خطی ایده‌آل نیست، چون رگرسیون خطی مقدار عددی شاخص را وارد محاسبات می‌کند و در نتیجه رابطه بین شماره شاخص و قیمت به طور مشهود غیرخطی است، حتی اگر مطمئن شویم که شاخص‌ها به ترتیب خاصی هستند.
* **کدگذاری یک‌گرمی** ستون `Variety` را با ۴ ستون مختلف جایگزین می‌کند، یکی برای هر نوع. هر ستون مقدار `1` دارد اگر سطر مربوط به آن نوع باشد، و `0` در غیر این صورت. این یعنی برای رگرسیون خطی چهار ضریب داریم، یکی برای هر نوع کدو تنبل، که مسئول قیمت اولیه (یا بهتر است بگوییم قیمت اضافی) برای آن نوع مشخص است.
کد زیر نشان می‌دهد که چگونه می‌توان یک نوع را به صورت یک‌به‌چند رمزگذاری کرد:
کد زیر نشان می‌دهد چگونه می‌توانیم یک‌گرمی کدگذاری را انجام دهیم:
```python
pd.get_dummies(new_pumpkins['Variety'])
```
```
ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE
----|-----------|-----------|--------------------------|----------
70 | 0 | 0 | 0 | 1
71 | 0 | 0 | 0 | 1
... | ... | ... | ... | ...
1738 | 0 | 1 | 0 | 0
1739 | 0 | 1 | 0 | 0
1740 | 0 | 1 | 0 | 0
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE
----|-----------|-----------|--------------------------|----------
70 | 0 | 0 | 0 | 1
71 | 0 | 0 | 0 | 1
... | ... | ... | ... | ...
1738 | 0 | 1 | 0 | 0
1739 | 0 | 1 | 0 | 0
1740 | 0 | 1 | 0 | 0
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
برای آموزش رگرسیون خطی با استفاده از نوع رمزگذاری‌شده به صورت یک‌به‌چند به عنوان ورودی، فقط باید داده‌های `X` و `y` را به درستی مقداردهی کنیم:
برای آموزش رگرسیون خطی با استفاده از تنوع کدگذاری شده به صورت یک‌گرمی به عنوان ورودی، فقط کافی است داده‌های `X` و `y` را به درستی مقداردهی اولیه کنیم:
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
```
بقیه کد مشابه چیزی است که در بالا برای آموزش رگرسیون خطی استفاده کردیم. اگر آن را امتحان کنید، خواهید دید که میانگین مربعات خطا تقریباً همان است، اما ضریب تعیین بسیار بالاتر (~77٪) است. برای دریافت پیش‌بینی‌های دقیق‌تر، می‌توانیم ویژگی‌های دسته‌بندی‌شده بیشتری را در نظر بگیریم، همچنین ویژگی‌های عددی مانند `Month` یا `DayOfYear`. برای دریافت یک آرایه بزرگ از ویژگی‌ها، می‌توانیم از `join` استفاده کنیم:
باقی کد همان است که قبلاً برای آموزش رگرسیون خطی استفاده کردیم. اگر امتحان کنید، خواهید دید که میانگین مربعات خطا تقریباً همان است، اما ضریب تعیین بسیار بالاتری (~۷۷٪) به دست می‌آوریم. برای پیش‌بینی‌های دقیق‌تر، می‌توانیم ویژگی‌های دسته‌ای بیشتری و همچنین ویژگی‌های عددی مانند `Month` یا `DayOfYear` را در نظر بگیریم. برای داشتن یک آرایه بزرگ از ویژگی‌ها، می‌توانیم از `join` استفاده کنیم:
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@ -304,69 +319,70 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
.join(pd.get_dummies(new_pumpkins['City'])) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
```
```
اینجا همچنین `City` و نوع `Package` را در نظر می‌گیریم، که MSE 2.84 (10٪) و ضریب تعیین 0.94 را به ما می‌دهد!
در اینجا همچنین `City` و نوع `Package` را در نظر می‌گیریم که به ما MSE 2.84 (۱۰٪) و ضریب تعیین ۰.۹۴ می‌دهد!
## همه چیز را کنار هم قرار دادن
## جمع‌بندی همه چیز
برای ایجاد بهترین مدل، می‌توانیم داده‌های ترکیبی (دسته‌بندی‌شده رمزگذاری‌شده به صورت یک‌به‌چند + عددی) از مثال بالا را همراه با رگرسیون چندجمله‌ای استفاده کنیم. اینجا کد کامل برای راحتی شما آورده شده است:
برای ساخت بهترین مدل، می‌توانیم داده‌های ترکیبی (ویژگی‌های کدگذاری شده یک‌گرمی و عددی) از مثال بالا را همراه با رگرسیون چندجمله‌ای استفاده کنیم. در اینجا کد کامل برای راحتی شما آمده است:
```python
# set up training data
# تنظیم داده‌های آموزشی
X = pd.get_dummies(new_pumpkins['Variety']) \
.join(new_pumpkins['Month']) \
.join(pd.get_dummies(new_pumpkins['City'])) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
# make train-test split
# تقسیم داده‌ها به مجموعه آموزش و تست
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# setup and train the pipeline
# تنظیم و آموزش خط لوله
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
# predict results for test data
# پیش‌بینی نتایج برای داده‌های تست
pred = pipeline.predict(X_test)
# calculate MSE and determination
# محاسبه MSE و ضریب تعیین
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
score = pipeline.score(X_train,y_train)
print('Model determination: ', score)
```
```
این باید بهترین ضریب تعیین تقریباً 97٪ و MSE=2.23 (~8٪ خطای پیش‌بینی) را به ما بدهد.
این باید بهترین ضریب تعیین یعنی تقریباً ۹۷٪ و MSE=2.23 (حدود ۸٪ خطای پیش‌بینی) را به ما بدهد.
| مدل | MSE | ضریب تعیین |
|-------|-----|---------------|
| `DayOfYear` خطی | 2.77 (17.2٪) | 0.07 |
| `DayOfYear` چندجمله‌ای | 2.73 (17.0٪) | 0.08 |
| `Variety` خطی | 5.24 (19.7٪) | 0.77 |
| همه ویژگی‌ها خطی | 2.84 (10.5٪) | 0.94 |
| همه ویژگی‌ها چندجمله‌ای | 2.23 (8.25٪) | 0.97 |
| مدل | MSE | ضریب تعیین |
|-------|-----|---------------|
| خطی `DayOfYear` | 2.77 (17.2%) | 0.07 |
| چندجمله‌ای `DayOfYear` | 2.73 (17.0%) | 0.08 |
| خطی `Variety` | 5.24 (19.7%) | 0.77 |
| همه ویژگی‌ها خطی | 2.84 (10.5%) | 0.94 |
| همه ویژگی‌ها چندجمله‌ای | 2.23 (8.25%) | 0.97 |
🏆 عالی کار کردید! شما چهار مدل رگرسیون را در یک درس ایجاد کردید و کیفیت مدل را به 97٪ بهبود دادید. در بخش نهایی درباره رگرسیون، یاد خواهید گرفت که چگونه از رگرسیون لجستیک برای تعیین دسته‌ها استفاده کنید.
🏆 آفرین! شما در یک درس چهار مدل رگرسیون ساختید و کیفیت مدل را تا ۹۷٪ بهبود دادید. در بخش نهایی درباره رگرسیون، درباره رگرسیون لجستیک برای تعیین دسته‌ها خواهید آموخت.
---
## 🚀 چالش
## 🚀چالش
چندین متغیر مختلف را در این دفترچه آزمایش کنید تا ببینید چگونه همبستگی با دقت مدل مطابقت دارد.
متغیرهای مختلف را در این دفترچه تست کنید تا ببینید چگونه همبستگی با دقت مدل رابطه دارد.
## [آزمون پس از درس](https://ff-quizzes.netlify.app/en/ml/)
## [آزمون پس از درس](https://ff-quizzes.netlify.app/en/ml/)
## مرور و مطالعه شخصی
## مرور و خودآموزی
در این درس درباره رگرسیون خطی یاد گرفتیم. انواع مهم دیگری از رگرسیون وجود دارند. درباره تکنیک‌های Stepwise، Ridge، Lasso و Elasticnet مطالعه کنید. یک دوره خوب برای یادگیری بیشتر [دوره یادگیری آماری استنفورد](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning) است.
در این درس درباره رگرسیون خطی آموختیم. انواع مهم دیگری از رگرسیون نیز وجود دارد. درباره تکنیک‌های مرحله‌ای، Ridge، Lasso و Elasticnet مطالعه کنید. دوره خوبی برای یادگیری بیشتر دوره [یادگیری آماری استنفورد](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning) است.
## تکلیف
## تمرین
[یک مدل بسازید](assignment.md)
[مدلی بسازید](assignment.md)
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**سلب مسئولیت**:
این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما تلاش می‌کنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نادرستی‌ها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، توصیه می‌شود از ترجمه حرفه‌ای انسانی استفاده کنید. ما مسئولیتی در قبال سوءتفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.
این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما در تلاش برای دقت هستیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است حاوی خطاها یا نواقص باشند. سند اصلی به زبان مبدأ باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما مسئول هیچ گونه سوتفاهم یا تفسیر نادرست ناشی از استفاده از این ترجمه نیستیم.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,44 +1,44 @@
# طبقه‌بندی غذاها ۲
# طبقه‌بندی آشپزی ۲
در این درس دوم از طبقه‌بندی، شما روش‌های بیشتری برای طبقه‌بندی داده‌های عددی بررسی خواهید کرد. همچنین درباره پیامدهای انتخاب یک طبقه‌بند نسبت به دیگری یاد خواهید گرفت.
در این درس دوم طبقه‌بندی، شما راه‌های بیشتری برای طبقه‌بندی داده‌های عددی کاوش خواهید کرد. همچنین درباره عواقب انتخاب یک طبقه‌بند نسبت به دیگری خواهید آموخت.
## [پیش‌زمینه آزمون](https://ff-quizzes.netlify.app/en/ml/)
## [آزمون قبل از درس](https://ff-quizzes.netlify.app/en/ml/)
### پیش‌نیاز
فرض می‌کنیم که درس‌های قبلی را کامل کرده‌اید و یک مجموعه داده تمیز شده در پوشه `data` دارید که به نام _cleaned_cuisines.csv_ در ریشه این پوشه چهار درسی ذخیره شده است.
فرض می‌کنیم که درس‌های قبلی را به پایان رسانده‌اید و یک مجموعه‌داده تمیز شده به نام _cleaned_cuisines.csv_ در پوشه `data` در ریشه این فولدر ۴ درسی دارید.
### آماده‌سازی
ما فایل _notebook.ipynb_ شما را با مجموعه داده تمیز شده بارگذاری کرده‌ایم و آن را به دو دیتافریم X و y تقسیم کرده‌ایم، آماده برای فرآیند ساخت مدل.
ما فایل _notebook.ipynb_ شما را با مجموعه‌داده تمیز شده بارگذاری کرده‌ایم و آن را به DataFrame های X و y تقسیم کرده‌ایم که آماده فرآیند ساخت مدل هستند.
## نقشه طبقه‌بندی
قبلاً درباره گزینه‌های مختلفی که هنگام طبقه‌بندی داده‌ها با استفاده از برگه تقلب مایکروسافت دارید، یاد گرفتید. Scikit-learn یک برگه تقلب مشابه اما دقیق‌تر ارائه می‌دهد که می‌تواند به محدود کردن انتخاب طبقه‌بندها (که به آن‌ها تخمین‌گر نیز گفته می‌شود) کمک کند:
قبلاً درباره گزینه‌های مختلفی که هنگام طبقه‌بندی داده‌ها با استفاده از چیت شیت مایکروسافت دارید، یاد گرفتید. Scikit-learn چیت‌شیتی مشابه، اما دقیق‌تر ارائه می‌دهد که می‌تواند به شما کمک کند برآوردگرهای خود (اصطلاحی دیگر برای طبقه‌بندها) را بیشتر محدود کنید:
![نقشه یادگیری ماشین از Scikit-learn](../../../../4-Classification/3-Classifiers-2/images/map.png)
> نکته: [این نقشه را آنلاین ببینید](https://scikit-learn.org/stable/tutorial/machine_learning_map/) و مسیرها را کلیک کنید تا مستندات را بخوانید.
![نقشه ML از Scikit-learn](../../../../translated_images/fa/map.e963a6a51349425a.webp)
> نکته: [این نقشه را به صورت آنلاین ببینید](https://scikit-learn.org/stable/tutorial/machine_learning_map/) و در مسیرها کلیک کنید تا مستندات را بخوانید.
### برنامه
این نقشه زمانی بسیار مفید است که درک واضحی از داده‌های خود داشته باشید، زیرا می‌توانید در مسیرهای آن قدم بزنید تا به یک تصمیم برسید:
این نقشه زمانی بسیار مفید است که تسلط خوبی روی داده‌های خود داشته باشید، زیرا می‌توانید در مسیرهای آن قدم بزنید تا به تصمیم برسید:
- ما بیش از ۵۰ نمونه داریم
- می‌خواهیم یک دسته‌بندی را پیش‌بینی کنیم
- داده‌های برچسب‌دار داریم
- داده‌ها برچسب‌خورده‌اند
- کمتر از ۱۰۰ هزار نمونه داریم
- ✨ می‌توانیم یک Linear SVC انتخاب کنیم
- اگر این کار نکرد، چون داده‌های عددی داریم
- می‌توانیم ✨ KNeighbors Classifier را امتحان کنیم
- اگر این کار نکرد، ✨ SVC و ✨ Ensemble Classifiers را امتحان کنید
- ✨ می‌توانیم Linear SVC را انتخاب کنیم
- اگر این کار نکند، چون داده‌های عددی داریم
- می‌توانیم یک ✨ KNeighbors Classifier را امتحان کنیم
- اگر آن هم خوب نبود، امتحان کنید ✨ SVC و ✨ Ensemble Classifiers
این مسیر بسیار مفید است.
این مسیر بسیار مفیدی است که باید دنبال شود.
## تمرین - تقسیم داده‌ها
با دنبال کردن این مسیر، باید با وارد کردن برخی کتابخانه‌ها شروع کنیم.
1. کتابخانه‌های مورد نیاز را وارد کنید:
1. کتابخانه‌های لازم را وارد کنید:
```python
from sklearn.neighbors import KNeighborsClassifier
@ -50,31 +50,31 @@
import numpy as np
```
1. داده‌های آموزشی و آزمایشی خود را تقسیم کنید:
2. داده‌های آموزش و تست خود را تقسیم کنید:
```python
X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
X_train, X_test, y_train, y_test = train_test_split(cuisines_features_df, cuisines_label_df, test_size=0.3)
```
## طبقه‌بند Linear SVC
خوشه‌بندی پشتیبان-برداری (SVC) یکی از اعضای خانواده تکنیک‌های یادگیری ماشین پشتیبان-برداری است (در مورد این‌ها بیشتر در زیر یاد بگیرید). در این روش، می‌توانید یک 'kernel' انتخاب کنید تا نحوه خوشه‌بندی برچسب‌ها را تعیین کنید. پارامتر 'C' به 'تنظیم‌سازی' اشاره دارد که تأثیر پارامترها را تنظیم می‌کند. کرنل می‌تواند یکی از [چندین](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC) باشد؛ در اینجا آن را به 'linear' تنظیم می‌کنیم تا از Linear SVC استفاده کنیم. مقدار پیش‌فرض احتمال 'false' است؛ در اینجا آن را به 'true' تنظیم می‌کنیم تا تخمین‌های احتمالی جمع‌آوری شود. حالت تصادفی را به '0' تنظیم می‌کنیم تا داده‌ها برای دریافت احتمالات مخلوط شوند.
خوشه‌بندی پشتیبانی برداری (SVC) از خانواده ماشین‌های بردار پشتیبان است (برای اطلاعات بیشتر درباره اینها در ادامه بخوانید). در این روش، می‌توانید یک 'هسته' انتخاب کنید تا تصمیم بگیرد چگونه برچسب‌ها را خوشه‌بندی کند. پارامتر 'C' به «تنظیم» اشاره دارد که تأثیر پارامترها را کنترل می‌کند. هسته می‌تواند از [چندین](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC) مورد باشد؛ در اینجا آن را روی 'linear' قرار دادیم تا اطمینان حاصل شود از SVC خطی استفاده می‌کنیم. احتمال پیش‌فرض 'false' است؛ در اینجا روی 'true' تنظیم شده است تا تخمین‌های احتمال جمع‌آوری شود. حالت تصادفی را روی '۰' تنظیم کردیم تا داده‌ها را برای به دست آوردن احتمالات جابه‌جا کند.
### تمرین - اعمال Linear SVC
با ایجاد یک آرایه از طبقه‌بندها شروع کنید. شما به تدریج به این آرایه اضافه خواهید کرد.
با ایجاد آرایه‌ای از طبقه‌بندها شروع کنید. به تدریج به این آرایه اضافه خواهید کرد همانطور که آزمایش می‌کنیم.
1. با یک Linear SVC شروع کنید:
```python
C = 10
# Create different classifiers.
# ایجاد طبقه‌بندهای مختلف.
classifiers = {
'Linear SVC': SVC(kernel='linear', C=C, probability=True,random_state=0)
}
```
2. مدل خود را با استفاده از Linear SVC آموزش دهید و گزارش را چاپ کنید:
2. مدل خود را با استفاده از Linear SVC آموزش دهید و گزارش چاپ کنید:
```python
n_classifiers = len(classifiers)
@ -88,7 +88,7 @@
print(classification_report(y_test,y_pred))
```
نتیجه بسیار خوب است:
نتیجه نسبتاً خوب است:
```output
Accuracy (train) for Linear SVC: 78.6%
@ -107,13 +107,13 @@
## طبقه‌بند K-Neighbors
K-Neighbors بخشی از خانواده "همسایه‌ها" در روش‌های یادگیری ماشین است که می‌تواند برای یادگیری نظارتشده و بدون نظارت استفاده شود. در این روش، تعداد نقاط از پیش تعریف شده ایجاد می‌شود و داده‌ها در اطراف این نقاط جمع‌آوری می‌شوند تا برچسب‌های عمومی برای داده‌ها پیش‌بینی شود.
K-Neighbors بخشی از خانواده روش‌های یادگیری ماشین "همسایه‌ها" است که می‌تواند برای یادگیری نظارت شده و بدون نظارت استفاده شود. در این روش، تعداد نقاط از پیش تعریف شده‌ای ساخته می‌شود و داده‌ها اطراف این نقاط جمع می‌شوند تا برچسب‌های تعمیم‌یافته برای داده‌ها پیش‌بینی شود.
### تمرین - اعمال طبقه‌بند K-Neighbors
طبقه‌بند قبلی خوب بود و با داده‌ها خوب کار کرد، اما شاید بتوانیم دقت بهتری داشته باشیم. طبقه‌بند K-Neighbors را امتحان کنید.
طبقه‌بند قبلی خوب بود و با داده‌ها خوب کار کرد، اما شاید بتوانیم دقت بهتری داشته باشیم. یک طبقه‌بند K-Neighbors را امتحان کنید.
1. یک خط به آرایه طبقه‌بند خود اضافه کنید (بعد از آیتم Linear SVC یک کاما اضافه کنید):
1. یک خط به آرایه طبقه‌بندهای خود اضافه کنید (بعد از عنصر Linear SVC یک ویرگول اضافه کنید):
```python
'KNN classifier': KNeighborsClassifier(C),
@ -136,23 +136,23 @@ K-Neighbors بخشی از خانواده "همسایه‌ها" در روش‌ه
weighted avg 0.76 0.74 0.74 1199
```
✅ درباره [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors) یاد بگیرید
✅ درباره [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors) بیشتر بدانید
## طبقه‌بند پشتیبان-برداری
## طبقه‌بند Support Vector
طبقه‌بندهای پشتیبان-برداری بخشی از خانواده [ماشین‌های پشتیبان-برداری](https://wikipedia.org/wiki/Support-vector_machine) در روش‌های یادگیری ماشین هستند که برای وظایف طبقه‌بندی و رگرسیون استفاده می‌شوند. SVMها "نمونه‌های آموزشی را به نقاطی در فضا نگاشت می‌کنند" تا فاصله بین دو دسته را به حداکثر برسانند. داده‌های بعدی به این فضا نگاشت می‌شوند تا دسته آن‌ها پیش‌بینی شود.
طبقه‌بندهای بردار پشتیبان بخشی از خانواده ماشین بردار پشتیبان (SVM) هستند که برای وظایف طبقه‌بندی و رگرسیون استفاده می‌شوند. SVMها "نمونه‌های آموزش را به نقاطی در فضا نگاشت می‌دهند" تا فاصله بین دو دسته را به حداکثر برسانند. داده‌های بعدی در این فضا نگاشت می‌شود تا دسته آنها پیش‌بینی شود.
### تمرین - اعمال طبقه‌بند پشتیبان-برداری
### تمرین - اعمال طبقه‌بند Support Vector
بیایید برای دقت بهتر، طبقه‌بند پشتیبان-برداری را امتحان کنیم.
بیایید برای دقت کمی بهتر، طبقه‌بند Support Vector را امتحان کنیم.
1. بعد از آیتم K-Neighbors یک کاما اضافه کنید و سپس این خط را اضافه کنید:
1. بعد از عنصر K-Neighbors یک ویرگول اضافه کنید، سپس این خط را اضافه کنید:
```python
'SVC': SVC(),
```
نتیجه بسیار خوب است!
نتیجه خیلی خوب است!
```output
Accuracy (train) for SVC: 83.2%
@ -169,18 +169,18 @@ K-Neighbors بخشی از خانواده "همسایه‌ها" در روش‌ه
weighted avg 0.84 0.83 0.83 1199
```
✅ درباره [پشتیبان-برداری](https://scikit-learn.org/stable/modules/svm.html#svm) یاد بگیرید
✅ درباره [راه‌حل‌های بردار پشتیبان](https://scikit-learn.org/stable/modules/svm.html#svm) بیشتر بدانید
## طبقه‌بندهای Ensemble
بیایید مسیر را تا انتها دنبال کنیم، حتی اگر آزمایش قبلی بسیار خوب بود. بیایید برخی از طبقه‌بندهای Ensemble، به‌ویژه Random Forest و AdaBoost را امتحان کنیم:
بیایید مسیر را تا انتها دنبال کنیم، گرچه آزمایش قبلی بسیار خوب بود. بیایید برخی 'طبقه‌بندهای Ensemble' را امتحان کنیم، به خصوص Random Forest و AdaBoost:
```python
'RFST': RandomForestClassifier(n_estimators=100),
'ADA': AdaBoostClassifier(n_estimators=100)
```
نتیجه بسیار خوب است، بهویژه برای Random Forest:
نتیجه بسیار خوب است، به ویژه برای Random Forest:
```output
Accuracy (train) for RFST: 84.5%
@ -210,31 +210,33 @@ Accuracy (train) for ADA: 72.4%
weighted avg 0.73 0.72 0.72 1199
```
✅ درباره [طبقه‌بندهای Ensemble](https://scikit-learn.org/stable/modules/ensemble.html) یاد بگیرید
✅ درباره [طبقه‌بندهای Ensemble](https://scikit-learn.org/stable/modules/ensemble.html) بیشتر بخوانید
این روش یادگیری ماشین "پیش‌بینی‌های چندین تخمین‌گر پایه را ترکیب می‌کند" تا کیفیت مدل را بهبود بخشد. در مثال ما، از Random Trees و AdaBoost استفاده کردیم.
این روش یادگیری ماشین "پیش‌بینی چندین برآوردگر پایه را ترکیب می‌کند" تا کیفیت مدل را بهبود بخشد. در مثال ما، از درختان تصادفی و AdaBoost استفاده کردیم.
- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest)، یک روش میانگین‌گیری، یک 'جنگل' از 'درختان تصمیم‌گیری' ایجاد می‌کند که با تصادفی‌سازی تزریق شده‌اند تا از بیش‌برازش جلوگیری شود. پارامتر n_estimators به تعداد درختان تنظیم شده است.
- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest)، یک روش میانگین‌گیری، یک «جنگل» از «درخت تصمیم» ایجاد می‌کند که با تصادفی بودن ترکیب شده تا از بیش‌برازش جلوگیری کند. پارامتر n_estimators روی تعداد درختان تنظیم شده است.
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) یک طبقه‌بند را به مجموعه داده تطبیق می‌دهد و سپس نسخه‌هایی از آن طبقه‌بند را به همان مجموعه داده تطبیق می‌دهد. این روش بر وزن آیتم‌های اشتباه طبقه‌بندی شده تمرکز می‌کند و تطبیق را برای طبقه‌بند بعدی تنظیم می‌کند تا اصلاح شود.
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) یک طبقه‌بند را روی مجموعه داده برازش می‌دهد و سپس نسخه‌هایی از همان طبقه‌بند را روی همان مجموعه داده برازش می‌دهد. تمرکز آن روی وزن نمونه‌های نادرست طبقه‌بندی شده است و برازش را برای طبقه‌بند بعدی تنظیم می‌کند تا خطا را اصلاح کند.
---
## 🚀چالش
هر یک از این تکنیک‌ها تعداد زیادی پارامتر دارند که می‌توانید تنظیم کنید. درباره پارامترهای پیش‌فرض هر کدام تحقیق کنید و فکر کنید که تنظیم این پارامترها چه تأثیری بر کیفیت مدل خواهد داشت.
هر یک از این تکنیک‌ها دارای تعداد زیادی پارامتر هستند که می‌توانید تنظیم کنید. پارامترهای پیش‌فرض هر کدام را تحقیق کنید و فکر کنید تنظیم این پارامترها برای کیفیت مدل چه معنایی دارد.
## [آزمون پس از درس](https://ff-quizzes.netlify.app/en/ml/)
## [آزمون بعد از درس](https://ff-quizzes.netlify.app/en/ml/)
## مرور و مطالعه شخصی
## بازبینی و مطالعه خودخوان
در این درس‌ها اصطلاحات زیادی وجود دارد، بنابراین چند دقیقه وقت بگذارید تا [این فهرست](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) از اصطلاحات مفید را مرور کنید!
در این درس‌ها اصطلاحات زیادی وجود دارد، پس یک دقیقه وقت بگذارید و [این فهرست](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) اصطلاحات مفید را مرور کنید!
## تکلیف
## تمرین
[بازی با پارامترها](assignment.md)
---
**سلب مسئولیت**:
این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما تلاش می‌کنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نادرستی‌ها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، توصیه می‌شود از ترجمه حرفه‌ای انسانی استفاده کنید. ما مسئولیتی در قبال سوء تفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**سلب مسئولیت**:
این سند با استفاده از سرویس ترجمه مبتنی بر هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما در تلاش برای دقت هستیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است حاوی اشتباهات یا نادرستی‌هایی باشند. سند اصلی به زبان بومی خود باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، توصیه می‌شود از ترجمه حرفه‌ای انسانی استفاده شود. ما مسئول هیچ‌گونه سوءتفاهم یا برداشت نادرستی که ناشی از استفاده از این ترجمه باشد، نمی‌باشیم.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -4,7 +4,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"مدل طبقه‌بندی بسازید\n"
"# ساخت مدل طبقه‌بندی\n"
]
},
{
@ -116,15 +116,15 @@
}
],
"source": [
"cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_feature_df.head()"
"cuisines_features_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_features_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**سلب مسئولیت**: \nاین سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما برای دقت تلاش می‌کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نادقتی‌ها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما هیچ مسئولیتی در قبال سوءتفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**سلب مسئولیت**: \nاین سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما در تلاش برای دقت هستیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است اشتباهات یا نواقصی داشته باشند. سند اصلی به زبان مادری آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، توصیه می‌شود از ترجمه حرفه‌ای انسانی استفاده شود. ما مسئول هیچ گونه سوءتفاهم یا برداشت نادرست ناشی از استفاده از این ترجمه نیستیم.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -152,12 +152,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "15a83277036572e0773229b5f21c1e12",
"translation_date": "2025-09-04T02:32:18+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "fa"
}
},
"nbformat": 4,

@ -2,7 +2,7 @@
"cells": [
{
"source": [
"# ساخت مدل‌های طبقه‌بندی بیشتر\n"
"# ساخت مدل‌های بیشتر طبقه‌بندی\n"
],
"cell_type": "markdown",
"metadata": {}
@ -116,15 +116,15 @@
}
],
"source": [
"cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_feature_df.head()"
"cuisines_features_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_features_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# طبقه‌بندهای مختلف را امتحان کنید\n"
"# امتحان کردن طبقه‌بندهای مختلف\n"
]
},
{
@ -148,7 +148,7 @@
"metadata": {},
"outputs": [],
"source": [
"X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)"
"X_train, X_test, y_train, y_test = train_test_split(cuisines_features_df, cuisines_label_df, test_size=0.3)"
]
},
{
@ -263,7 +263,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**سلب مسئولیت**: \nاین سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما برای دقت تلاش می‌کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نادرستی‌هایی باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما هیچ مسئولیتی در قبال سوءتفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**توضیح مهم**: \nاین سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما در پی دقت هستیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است حاوی اشتباهات یا نواقص باشند. سند اصلی به زبان بومی آن منبع مرجع و معتبر تلقی می‌شود. برای اطلاعات حیاتی، استفاده از ترجمه حرفه‌ای انسانی توصیه می‌شود. مسئولیتی در قبال سوءتفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه پذیرفته نمی‌شود.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -291,12 +291,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "7ea2b714669c823a596d986ba2d5739f",
"translation_date": "2025-09-04T02:32:52+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "fa"
}
},
"nbformat": 4,

@ -10,213 +10,228 @@
### 🌐 پشتیبانی چند زبانه
#### پشتیبانی شده از طریق GitHub Action (خودکار و همیشه به‌روز)
#### پشتیبانی از طریق GitHub Action (خودکار و همیشه به‌روز)
<!-- CO-OP TRANSLATOR LANGUAGES TABLE START -->
[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](./README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md)
[عربی](../ar/README.md) | [بنگالی](../bn/README.md) | [بلغاری](../bg/README.md) | [برمه‌ای (میانمار)](../my/README.md) | [چینی (ساده‌شده)](../zh-CN/README.md) | [چینی (سنتی، هنگ کنگ)](../zh-HK/README.md) | [چینی (سنتی، ماکائو)](../zh-MO/README.md) | [چینی (سنتی، تایوان)](../zh-TW/README.md) | [کرواتی](../hr/README.md) | [چکی](../cs/README.md) | [دانمارکی](../da/README.md) | [هلندی](../nl/README.md) | [استونیایی](../et/README.md) | [فنلاندی](../fi/README.md) | [فرانسوی](../fr/README.md) | [آلمانی](../de/README.md) | [یونانی](../el/README.md) | [عبری](../he/README.md) | [هندی](../hi/README.md) | [مجارستانی](../hu/README.md) | [اندونزیایی](../id/README.md) | [ایتالیایی](../it/README.md) | [ژاپنی](../ja/README.md) | [کاننادا](../kn/README.md) | [کره‌ای](../ko/README.md) | [لیتوانیایی](../lt/README.md) | [مالایی](../ms/README.md) | [مالایالامی](../ml/README.md) | [مراتی](../mr/README.md) | [نپالی](../ne/README.md) | [پیدگین نیجریه‌ای](../pcm/README.md) | [نروژی](../no/README.md) | [فارسی (Persian)](./README.md) | [لهستانی](../pl/README.md) | [پرتغالی (برزیل)](../pt-BR/README.md) | [پرتغالی (پرتغال)](../pt-PT/README.md) | [پنجابی (گورمخی)](../pa/README.md) | [رومانیایی](../ro/README.md) | [روسی](../ru/README.md) | [صربی (سیریلیک)](../sr/README.md) | [اسلواکی](../sk/README.md) | [اسلوونیایی](../sl/README.md) | [اسپانیایی](../es/README.md) | [سواحیلی](../sw/README.md) | [سوئدی](../sv/README.md) | [تاگالوگ (فیلیپینی)](../tl/README.md) | [تامیلی](../ta/README.md) | [تلگو](../te/README.md) | [تایلندی](../th/README.md) | [ترکی](../tr/README.md) | [اوکراینی](../uk/README.md) | [اردو](../ur/README.md) | [ویتنامی](../vi/README.md)
> **ترجیح می‌دهید به‌صورت محلی کلون کنید؟**
> این مخزن شامل بیش از ۵۰ ترجمه زبان است که اندازه دانلود را به‌طور قابل توجهی افزایش می‌دهد. برای کلون کردن بدون ترجمه‌ها، از sparse checkout استفاده کنید:
> **ترجیح می‌دهید به صورت محلی کلون کنید؟**
>
> این مخزن شامل ترجمه‌هایی به بیش از ۵۰ زبان است که حجم دانلود را به طور قابل توجهی افزایش می‌دهد. برای کلون کردن بدون ترجمه‌ها، از sparse checkout استفاده کنید:
>
> **Bash / macOS / لینوکس:**
> ```bash
> git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git
> cd ML-For-Beginners
> git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'
> ```
> این به شما همه چیز لازم برای تکمیل دوره را با سرعت دانلود بسیار سریع‌تر می‌دهد.
>
> **CMD (ویندوز):**
> ```cmd
> git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git
> cd ML-For-Beginners
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ```
>
> این همه موارد مورد نیاز برای تکمیل دوره را با دانلودی بسیار سریع‌تر به شما می‌دهد.
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
#### به جامعه ما بپیوندید
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
ما یک سری آموزش Discord با موضوع یادگیری همراه با هوش مصنوعی برگزار می‌کنیم، اطلاعات بیشتر و پیوستن به ما را در [Learn with AI Series](https://aka.ms/learnwithai/discord) از ۱۸ تا ۳۰ سپتامبر ۲۰۲۵ بیابید. در این دوره نکات و ترفندهای استفاده از GitHub Copilot برای علم داده را خواهید گرفت.
ما یک سری آموزش Discord با محوریت یادگیری با هوش مصنوعی داریم، بیشتر بدانید و از ۱۸ تا ۳۰ سپتامبر ۲۰۲۵ به ما بپیوندید در [Learn with AI Series](https://aka.ms/learnwithai/discord). در این سری نکات و ترفندهای استفاده از GitHub Copilot برای علم داده را خواهید آموخت.
![Learn with AI series](../../translated_images/fa/3.9b58fd8d6c373c20.webp)
![سری یادگیری با هوش مصنوعی](../../translated_images/fa/3.9b58fd8d6c373c20.webp)
# یادگیری ماشین برای مبتدیان - یک برنامه درسی
# یادگیری ماشین برای مبتدیان - یک برنامه آموزشی
> 🌍 در حالی که یادگیری ماشین را از طریق فرهنگ‌های جهانی کاوش می‌کنیم، به دور دنیا سفر کنید 🌍
> 🌍 با ما در سفری به اطراف جهان در حالی که یادگیری ماشین را از طریق فرهنگ‌های مختلف جهان بررسی می‌کنیم 🌍
حمایت‌کنندگان ابری مایکروسافت خوشحالند که یک برنامه درسی ۱۲ هفته‌ای، شامل ۲۶ درس را درباره **یادگیری ماشین** ارائه دهند. در این برنامه درسی، درباره چیزی که گاهی اوقات به آن «یادگیری ماشین کلاسیک» گفته می‌شود، آموزش خواهید دید، که عمدتاً از کتابخانه Scikit-learn استفاده می‌کند و از یادگیری عمیق که در برنامه درسی [هوش مصنوعی برای مبتدیان](https://aka.ms/ai4beginners) ما پوشش داده شده است، اجتناب می‌کند. این دروس را با برنامه درسی ما ['علم داده برای مبتدیان'](https://aka.ms/ds4beginners) نیز جفت کنید!
حمایت‌کنندگان ابری در مایکروسافت مفتخرند یک برنامه ۱۲ هفته‌ای با ۲۶ درس درباره **یادگیری ماشین** ارائه دهند. در این برنامه، شما با چیزی که گاهی «یادگیری ماشین کلاسیک» نامیده می‌شود، آشنا خواهید شد، عمدتاً با استفاده از کتابخانه Scikit-learn و به دور از یادگیری عمیق که در برنامه آموزشی [هوش مصنوعی برای مبتدیان](https://aka.ms/ai4beginners) پوشش داده شده است. این درسها را همراه با برنامه ['علم داده برای مبتدیان'](https://aka.ms/ds4beginners) نیز بیاموزید!
با ما در طول جهان سفر کنید در حالی که این تکنیک‌های کلاسیک را روی داده‌های مناطق مختلف دنیا اعمال می‌کنیم. هر درس شامل کوییزهای قبل و بعد از درس، دستورات مکتوب برای تکمیل درس، یک راه‌حل، یک تمرین و بیشتر است. روش آموزش مبتنی بر پروژه ما به شما اجازه می‌دهد در حالی که می‌سازید یاد بگیرید، روشی اثبات شده برای تثبیت مهارت‌های جدید.
با ما به سفر به اطراف جهان بپیوندید تا این تکنیک‌های کلاسیک را بر داده‌های از مناطق مختلف جهان اعمال کنیم. هر درس شامل سوالات قبل و بعد از درس، دستورالعمل‌های مکتوب برای انجام درس، راه حل، تمرین و موارد دیگر است. روش آموزشی پروژه‌محور ما به شما این امکان را می‌دهد تا در حین ساختن یاد بگیرید؛ روشی اثبات شده برای چسبیدن مهارت‌های جدید.
**✍️ قدردانی فراوان از نویسندگان ما** جن لوپر، استفان هاول، فرانچسکا لازری، تومومی ایمورا، کاسی برویو، دمیتری سوشنیکوف، کریس نورینگ، آنربان موخرجی، اورنلا آلتونین، روث یاکوبو و اِمی بوید
**✍️ با تشکر فراوان از نویسندگان ما** جن لوپر، استفان هاول، فرانچسکا لازری، تومومی ایمورا، کَسی برویو، دیمیتری سوشنیکوف، کریس نورینگ، آنیربان موخرجی، اورنلا آلتونیان، روث یاکوبو و ایمی بوید
**🎨 همچنین از تصویرگران ما متشکریم** تومومی ایمورا، داسانی مادینپالی، و جن لوپر
**🎨 همچنین تشکر از تصویرگران ما** تومومی ایمورا، داسانی مادیپالی و جن لوپر
**🙏 تشکر ویژه 🙏 از سفیران دانشجویی مایکروسافت، نویسندگان، بازبین‌ها، و مشارکت‌کنندگان محتوا** به ویژه ریشیت داغلی، محمد ساکیب خان اینان، روهان راج، الکساندرو پتروسکو، آبیشک جایسوال، ناورین طبسوم، ایوان سامویلا، و اسنیگدا آگاروال
**🙏 سپاس ویژه 🙏 از نویسندگان، بازبینان و مشارکت‌کنندگان مایکروسافت استیودنت امباسادور** به ویژه ریشیت داگلی، محمد ساکیب خان اینان، روهان راج، الکساندرو پتروسکو، آبیشک جایسوال، نوورین طبسم، ایوان سامویلا و اسنیگدها آگرال
**🤩 قدردانی اضافی از سفیران دانشجویی مایکروسافت اریک وانجو، جاسلین سوندی، و ویدوشی گوپتا به خاطر درس‌های R ما!**
**🤩 قدردانی ویژه به مایکروسافت استیودنت امباسادورهای اریک وانژاو، جَسلین سوندی و ویدوشی گپتا برای درس‌های R ما!**
# شروع به کار
این مراحل را دنبال کنید:
1. **فورک کردن مخزن**: روی دکمه "Fork" در گوشه بالا-راست صفحه کلیک کنید.
2. **کلون کردن مخزن**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
1. **شاخۀ مخزن را بسازید (Fork):** روی دکمه «Fork» در گوشه بالا سمت راست این صفحه کلیک کنید.
2. **مخزن را کلون کنید:** `git clone https://github.com/microsoft/ML-For-Beginners.git`
> [تمام منابع اضافی این دوره را در مجموعه Microsoft Learn ما بیابید](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> [تمام منابع اضافی این دوره را در مجموعه مایکروسافت لرن ما بیابید](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> 🔧 **نیاز به کمک دارید؟** راهنمای [رفع اشکال](TROUBLESHOOTING.md) ما را برای حل مشکلات رایج نصب، راه‌اندازی و اجرای درس‌ها بررسی کنید.
> 🔧 **نیاز به کمک دارید؟** راهنمای [رفع مشکلات](TROUBLESHOOTING.md) را برای حل مشکلات رایج نصب، پیکربندی و اجرای درس‌ها بررسی کنید.
**[دانشجویان](https://aka.ms/student-page)**، برای استفاده از این برنامه درسی، کل مخزن را به حساب GitHub خود فورک کنید و تمرین‌ها را به‌صورت جداگانه یا گروهی کامل کنید:
- با کوییز پیش‌کلاس شروع کنید.
- متن درس را بخوانید و فعالیت‌ها را انجام دهید، در هر بررسی دانش توقف و تأمل کنید.
- سعی کنید پروژه‌ها را با درک دروس بسازید نه فقط با اجرای کد راه‌حل؛ البته کد راه‌حل در پوشه‌های `/solution` در هر درس مبتنی بر پروژه در دسترس است.
- کوییز پس از درس را انجام دهید.
**[دانشجویان](https://aka.ms/student-page)** برای استفاده از این برنامه، کل مخزن را به حساب GitHub خود فورک کرده و تمرین‌ها را به‌صورت فردی یا گروهی انجام دهید:
- با یک آزمون پیش از درس شروع کنید.
- درس را بخوانید و فعالیت‌ها را انجام دهید و در هر مرحله‌ای که سوال دانش مطرح است، توقف کرده و فکر کنید.
- سعی کنید پروژه‌ها را با درک درس‌ها ایجاد کنید نه صرفاً اجرای کد راه‌حل؛ هرچند کد راه‌حل در پوشه‌های `/solution` هر درس پروژه‌محور موجود است.
- آزمون پس از درس را انجام دهید.
- چالش را کامل کنید.
- تمرین را انجام دهید.
- پس از تکمیل یک گروه درس، به [صفحه بحث](https://github.com/microsoft/ML-For-Beginners/discussions) مراجعه کنید و با پر کردن فرم ارزیابی پیشرفت مناسب (PAT) "با صدای بلند بیاموزید". 'PAT' یک ابزار ارزیابی پیشرفت است که به شما کمک می‌کند یادگیری خود را عمیق‌تر کنید. همچنین می‌توانید به سایر PAT ها واکنش نشان دهید تا با هم یاد بگیریم.
- پس از تکمیل گروه درسی، به [تابلو بحث](https://github.com/microsoft/ML-For-Beginners/discussions) سر بزنید و با پر کردن فرم PAT مناسب، از یادگیری خود به صورت بلند بیاموزید. PAT یک ابزار ارزیابی پیشرفت است که شما پر می‌کنید تا یادگیری خود را عمیق‌تر کنید. همچنین می‌توانید به PATهای دیگر واکنش نشان دهید تا با هم یاد بگیریم.
> برای مطالعه بیشتر، ما پیشنهاد می‌کنیم این ماژول‌ها و مسیرهای یادگیری [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) را دنبال کنید.
> برای مطالعه بیشتر، توصیه می‌کنیم این ماژول‌ها و مسیرهای یادگیری [مایکروسافت لرن](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) را دنبال کنید.
**اساتید**، ما [چند پیشنهاد](for-teachers.md) در مورد نحوه استفاده از این برنامه درسی ارائه کرده‌ایم.
**معلمان**، ما برخی پیشنهادات را در [فایل for-teachers.md](for-teachers.md) گنجانده‌ایم برای چگونگی استفاده از این برنامه.
---
## راهنمای ویدیویی
## فیلم‌های آموزشی
برخی از دروس به صورت ویدیوهای کوتاه در دسترس هستند. می‌توانید همه آن‌ها را در داخل درس‌ها یا در [لیست پخش ML for Beginners در کانال یوتیوب Microsoft Developer](https://aka.ms/ml-beginners-videos) با کلیک روی تصویر زیر بیابید.
بعضی از درس‌ها به صورت ویدیوهای کوتاه در دسترس هستند. می‌توانید این ویدیوها را به صورت خطی در درس‌ها پیدا کنید یا در [لیست پخش ML for Beginners در کانال Microsoft Developer یوتیوب](https://aka.ms/ml-beginners-videos) از طریق کلیک روی تصویر زیر مشاهده کنید.
[![ML for beginners banner](../../translated_images/fa/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
[![بنر ML for beginners](../../translated_images/fa/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
---
## آشنایی با تیم
[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
[![ویدیوی تبلیغاتی](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
**گیف توسط** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
**گیف از** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
> 🎥 برای مشاهده ویدیو درباره پروژه و افراد سازنده آن روی تصویر بالا کلیک کنید!
> 🎥 برای دیدن ویدیویی درباره پروژه و افرادی که آن را ساخته‌اند، روی تصویر بالا کلیک کنید!
---
## روش آموزش
## روش آموزشی
ما دو اصل آموزشی را در ساخت این برنامه درسی انتخاب کرده‌ایم: اطمینان از اینکه به صورت عملی و **مبتنی بر پروژه** باشد و شامل **کوییزهای مکرر** باشد. همچنین این برنامه درسی یک **موضوع کلی** مشترک دارد تا انسجام داشته باشد.
ما در ساخت این برنامه دو اصل آموزشی را انتخاب کرده‌ایم: اطمینان از عملی بودن آن یعنی **پروژه‌محور** بودن و داشتن **آزمون‌های مکرر**. افزون بر این، این برنامه دارای **تم مشترک** است که یکپارچگی آن را فراهم می‌کند.
با اطمینان از انطباق محتوا با پروژه‌ها، فرایند برای دانشجویان جذاب‌تر شده و نگهداری مفاهیم افزایش می‌یابد. علاوه بر این، یک کوییز کم ریسک قبل از کلاس قصد دانشجو را برای یادگیری موضوع تنظیم می‌کند، در حالی که کوییز دوم پس از کلاس اطمینان می‌دهد که مطلب بهتر در ذهن باقی می‌ماند. این برنامه به گونه‌ای طراحی شده است که قابل انعطاف و لذت‌بخش باشد و می‌توان آن را کامل یا بخش به بخش اخذ کرد. پروژه‌ها از کوچک شروع شده و تا پایان چرخه ۱۲ هفته‌ای به تدریج پیچیده‌تر می‌شوند. این برنامه درسی همچنین شامل بخشی درباره کاربردهای واقعی یادگیری ماشین است که می‌تواند به عنوان امتیاز اضافی یا پایه بحث استفاده شود.
با اطمینان از هم‌راستایی محتوا با پروژه‌ها، فرایند برای دانش‌آموزان جذاب‌تر شده و ماندگاری مفاهیم افزایش می‌یابد. همچنین وجود آزمون کم ریسک قبل از کلاس قصد یادگیری را در دانش‌آموز ایجاد کرده و آزمون دوم پس از کلاس باعث تثبیت بیشتر می‌شود. این برنامه به گونه‌ای طراحی شده که انعطاف‌پذیر و سرگرم‌کننده باشد و می‌توان آن را به طور کامل یا قسمتی از آن را گذراند. پروژه‌ها از کوچک شروع شده و تا پایان دوره ۱۲ هفته‌ای به تدریج پیچیده‌تر می‌شوند. این برنامه همچنین شامل بخش پایانی در مورد کاربردهای واقعی یادگیری ماشین است که می‌توان از آن به عنوان امتیاز اضافه یا پایه‌ای برای بحث استفاده کرد.
> دستورالعمل‌های [رفتار حرفه‌ای](CODE_OF_CONDUCT.md)، [سهیم شدن](CONTRIBUTING.md)، [ترجمه](TRANSLATIONS.md)، و [رفع اشکال](TROUBLESHOOTING.md) ما را بیابید. بازخورد سازنده شما را استقبال می‌کنیم!
> دستورالعمل‌های [کد رفتاری](CODE_OF_CONDUCT.md)، [همکاری](CONTRIBUTING.md)، [ترجمه](TRANSLATIONS.md) و [رفع مشکلات](TROUBLESHOOTING.md) ما را بیابید. منتظر بازخورد سازنده شما هستیم!
## هر درس شامل
## هر درس شامل موارد زیر است
- یادداشت اختیاری طرح‌کشی شده
- ویدیوی مکمل اختیاری
- راهنمای ویدئویی (فقط برخی دروس)
- [کوییز گرم‌کننده پیش از درس](https://ff-quizzes.netlify.app/en/ml/)
- اسکیچ‌نوت اختیاری
- ویدیوی تکمیلی اختیاری
- آموزش ویدیویی (فقط برخی درس‌ها)
- [آزمون گرم‌کننده پیش از درس](https://ff-quizzes.netlify.app/en/ml/)
- درس مکتوب
- برای دروس مبتنی بر پروژه، راهنمای گام‌به‌گام ساخت پروژه
- بررسی‌های دانش
- برای درس‌های پروژه‌محور، راهنمای گام به گام ساخت پروژه
- آزمون‌های دانش
- یک چالش
- مطالعه تکمیلی
- تمرین
- [کوییز پس از درس](https://ff-quizzes.netlify.app/en/ml/)
> **نکته‌ای درباره زبان‌ها**: این دروس عمدتاً در زبان پایتون نوشته شده‌اند، اما بسیاری نیز به زبان R موجود هستند. برای کامل کردن درس R، به پوشه `/solution` رفته و درس‌های R را جستجو کنید. این فایل‌ها دارای پسوند .rmd هستند که نمایانگر یک فایل **R Markdown** است، که به سادگی می‌توان آن را یک چارچوب نویسندگی نمونه برای علم داده تعریف کرد، زیرا به شما اجازه می‌دهد کد، خروجی آن، و فکر خود را با نوشتن آن‌ها در Markdown ترکیب کنید. همچنین، اسناد R Markdown می‌توانند به فرمت‌های خروجی مانند PDF، HTML، یا Word صادر شوند.
> **یادداشتی درباره آزمون‌ها**: تمام آزمون‌ها در [پوشه Quiz App](../../quiz-app) قرار دارند، مجموعاً ۵۲ آزمون که هر کدام شامل سه سوال است. این آزمون‌ها درون دروس لینک شده‌اند اما اپلیکیشن آزمون می‌تواند به صورت محلی اجرا شود؛ برای میزبانی محلی یا پیاده‌سازی در Azure دستورالعمل‌های موجود در پوشه `quiz-app` را دنبال کنید.
| شماره درس | موضوع | دسته‌بندی درس | اهداف یادگیری | درس مرتبط | نویسنده |
| :-------: | :----------------------------------------------------------: | :----------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: |
| ۰۱ | مقدمه‌ای بر یادگیری ماشین | [مقدمه](1-Introduction/README.md) | مفاهیم پایه پشت یادگیری ماشین را بیاموزید | [درس](1-Introduction/1-intro-to-ML/README.md) | محمد |
| ۰۲ | تاریخچه یادگیری ماشین | [مقدمه](1-Introduction/README.md) | تاریخچه زمینه این حوزه را یاد بگیرید | [درس](1-Introduction/2-history-of-ML/README.md) | جن و اِمی |
| ۰۳ | عدالت و یادگیری ماشین | [مقدمه](1-Introduction/README.md) | مسائل فلسفی مهم پیرامون عدالت که دانش‌آموزان باید هنگام ساخت و استفاده از مدل‌های یادگیری ماشین مدنظر داشته باشند چیست؟ | [درس](1-Introduction/3-fairness/README.md) | تومومی |
| ۰۴ | تکنیک‌های یادگیری ماشین | [مقدمه](1-Introduction/README.md) | پژوهشگران یادگیری ماشین از چه تکنیک‌هایی برای ساخت مدل‌های یادگیری ماشین استفاده می‌کنند؟ | [درس](1-Introduction/4-techniques-of-ML/README.md) | کریس و جن |
| ۰۵ | مقدمه‌ای بر رگرسیون | [رگرسیون](2-Regression/README.md) | با پایتون و Scikit-learn برای مدل‌های رگرسیون شروع کنید | [پایتون](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | جن • اریک وانجاو |
| ۰۶ | قیمت‌های کدو تنبل آمریکای شمالی 🎃 | [رگرسیون](2-Regression/README.md) | داده‌ها را جهت آماده‌سازی برای یادگیری ماشین تجسم و پاکسازی کنید | [پایتون](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | جن • اریک وانجاو |
| ۰۷ | قیمت‌های کدو تنبل آمریکای شمالی 🎃 | [رگرسیون](2-Regression/README.md) | مدل‌های رگرسیون خطی و چندجمله‌ای بسازید | [پایتون](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | جن و دیمیتری • اریک وانجاو |
| ۰۸ | قیمت‌های کدو تنبل آمریکای شمالی 🎃 | [رگرسیون](2-Regression/README.md) | مدل رگرسیون لجستیک بسازید | [پایتون](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | جن • اریک وانجاو |
| ۰۹ | یک اپ وب 🔌 | [اپ وب](3-Web-App/README.md) | یک اپ وب بسازید تا از مدل آموزش دیده خود استفاده کنید | [پایتون](3-Web-App/1-Web-App/README.md) | جن |
| ۱۰ | مقدمه‌ای بر طبقه‌بندی | [طبقه‌بندی](4-Classification/README.md) | داده‌های خود را پاکسازی، آماده‌سازی و تجسم کنید؛ مقدمه‌ای بر طبقه‌بندی | [پایتون](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | جن و کَسی • اریک وانجاو |
| ۱۱ | غذاهای خوشمزه آسیایی و هندی 🍜 | [طبقه‌بندی](4-Classification/README.md) | مقدمه‌ای بر طبقه‌بندها | [پایتون](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | جن و کَسی • اریک وانجاو |
| ۱۲ | غذاهای خوشمزه آسیایی و هندی 🍜 | [طبقه‌بندی](4-Classification/README.md) | طبقه‌بندهای بیشتر | [پایتون](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | جن و کَسی • اریک وانجاو |
| ۱۳ | غذاهای خوشمزه آسیایی و هندی 🍜 | [طبقه‌بندی](4-Classification/README.md) | اپ وب توصیه‌گر با استفاده از مدل خود بسازید | [پایتون](4-Classification/4-Applied/README.md) | جن |
| ۱۴ | مقدمه‌ای بر خوشه‌بندی | [خوشه‌بندی](5-Clustering/README.md) | داده‌های خود را پاکسازی، آماده‌سازی و تجسم کنید؛ مقدمه‌ای بر خوشه‌بندی | [پایتون](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | جن • اریک وانجاو |
| ۱۵ | بررسی سلیقه‌های موسیقی نیجریه‌ای 🎧 | [خوشه‌بندی](5-Clustering/README.md) | روش خوشه‌بندی K-Means را کاوش کنید | [پایتون](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | جن • اریک وانجاو |
| ۱۶ | مقدمه‌ای بر پردازش زبان طبیعی ☕️ | [پردازش زبان طبیعی](6-NLP/README.md) | اصول پردازش زبان طبیعی را با ساخت یک ربات ساده بیاموزید | [پایتون](6-NLP/1-Introduction-to-NLP/README.md) | استیفن |
| ۱۷ | وظایف رایج پردازش زبان طبیعی ☕️ | [پردازش زبان طبیعی](6-NLP/README.md) | دانش خود را با درک وظایف متداول مورد نیاز هنگام کار با ساختارهای زبانی عمیق‌تر کنید | [پایتون](6-NLP/2-Tasks/README.md) | استیفن |
| ۱۸ | ترجمه و تحلیل احساسات ♥️ | [پردازش زبان طبیعی](6-NLP/README.md) | ترجمه و تحلیل احساسات با جین آستن | [پایتون](6-NLP/3-Translation-Sentiment/README.md) | استیفن |
| ۱۹ | هتل‌های رمانتیک اروپا ♥️ | [پردازش زبان طبیعی](6-NLP/README.md) | تحلیل احساسات با نقدهای هتل ۱ | [پایتون](6-NLP/4-Hotel-Reviews-1/README.md) | استیفن |
| ۲۰ | هتل‌های رمانتیک اروپا ♥️ | [پردازش زبان طبیعی](6-NLP/README.md) | تحلیل احساسات با نقدهای هتل ۲ | [پایتون](6-NLP/5-Hotel-Reviews-2/README.md) | استیفن |
| ۲۱ | مقدمه‌ای بر پیش‌بینی سری‌های زمانی | [سری‌های زمانی](7-TimeSeries/README.md) | مقدمه‌ای بر پیش‌بینی سری‌های زمانی | [پایتون](7-TimeSeries/1-Introduction/README.md) | فرانچسکا |
| ۲۲ | ⚡️ مصرف برق جهان ⚡️ - پیش‌بینی سری زمانی با ARIMA | [سری‌های زمانی](7-TimeSeries/README.md) | پیش‌بینی سری زمانی با ARIMA | [پایتون](7-TimeSeries/2-ARIMA/README.md) | فرانچسکا |
| ۲۳ | ⚡️ مصرف برق جهان ⚡️ - پیش‌بینی سری زمانی با SVR | [سری‌های زمانی](7-TimeSeries/README.md) | پیش‌بینی سری زمانی با رگرسیون بردار پشتیبان | [پایتون](7-TimeSeries/3-SVR/README.md) | آنیربان |
| ۲۴ | مقدمه‌ای بر یادگیری تقویتی | [یادگیری تقویتی](8-Reinforcement/README.md) | مقدمه‌ای بر یادگیری تقویتی با Q-Learning | [پایتون](8-Reinforcement/1-QLearning/README.md) | دیمیتری |
| ۲۵ | کمک به پیتر برای فرار از گرگ! 🐺 | [یادگیری تقویتی](8-Reinforcement/README.md) | یادگیری تقویتی در Gym | [پایتون](8-Reinforcement/2-Gym/README.md) | دیمیتری |
| پس‌نویس | سناریوها و کاربردهای دنیای واقعی یادگیری ماشین | [یادگیری ماشین در دنیای واقعی](9-Real-World/README.md) | کاربردهای جالب و روشنگر یادگیری ماشین کلاسیک در دنیای واقعی | [درس](9-Real-World/1-Applications/README.md) | تیم |
| پس‌نویس | عیب‌یابی مدل در یادگیری ماشین با داشبورد RAI | [یادگیری ماشین در دنیای واقعی](9-Real-World/README.md) | عیب‌یابی مدل در یادگیری ماشین با استفاده از مولفه‌های داشبورد Responsible AI | [درس](9-Real-World/2-Debugging-ML-Models/README.md) | روث یا کوبو |
- [آزمون پس از درس](https://ff-quizzes.netlify.app/en/ml/)
> **یادداشتی درباره زبان‌ها**: این درس‌ها عمدتاً به زبان پایتون نوشته شده‌اند، اما بسیاری از آن‌ها همچنین به زبان R نیز در دسترس هستند. برای تکمیل یک درس R، به پوشه `/solution` بروید و به دنبال درس‌های R بگردید. آن‌ها دارای پسوند .rmd هستند که نمایانگر یک فایل **R Markdown** است که می‌توان آن را به سادگی به‌عنوان یک جای‌گذاری از `قطعه‌های کد` (از زبان R یا زبان‌های دیگر) و یک `سرصفحه YAML` (که نحوه قالب‌بندی خروجی‌ها مانند PDF را راهنمایی می‌کند) در یک `سند Markdown` تعریف کرد. بنابراین، این یک چارچوب نمونه‌وار برای تولید محتوا در علم داده است زیرا به شما اجازه می‌دهد کد، خروجی آن و فکرهای خود را با نوشتن آن‌ها در Markdown ترکیب کنید. همچنین، اسناد R Markdown می‌توانند به فرمت‌های خروجی مانند PDF، HTML یا Word تبدیل شوند.
> **یادداشتی درباره آزمون‌ها**: تمام آزمون‌ها در پوشه [Quiz App](../../quiz-app) قرار دارند، که شامل مجموعاً ۵۲ آزمون، هر کدام با سه سوال است. این آزمون‌ها از داخل درس‌ها لینک شده‌اند اما اپلیکیشن آزمون می‌تواند به صورت محلی اجرا شود؛ دستورالعمل‌های موجود در پوشه `quiz-app` را برای میزبانی محلی یا استقرار در Azure دنبال کنید.
| شماره درس | موضوع | دسته‌بندی درس | اهداف یادگیری | درس مرتبط | نویسنده |
| :-------: | :------------------------------------------------------------: | :-----------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: |
| ۰۱ | معرفی یادگیری ماشین | [مقدمه](1-Introduction/README.md) | آشنایی با مفاهیم پایه یادگیری ماشین | [درس](1-Introduction/1-intro-to-ML/README.md) | محمد |
| ۰۲ | تاریخچه یادگیری ماشین | [مقدمه](1-Introduction/README.md) | یادگیری تاریخچه این حوزه | [درس](1-Introduction/2-history-of-ML/README.md) | جن و ایمی |
| ۰۳ | انصاف و یادگیری ماشین | [مقدمه](1-Introduction/README.md) | مسائل فلسفی مهم درباره انصاف که دانش‌آموزان باید هنگام ساخت و پیاده‌سازی مدل‌های یادگیری ماشین در نظر بگیرند چیست؟ | [درس](1-Introduction/3-fairness/README.md) | تومومی |
| ۰۴ | تکنیک‌های یادگیری ماشین | [مقدمه](1-Introduction/README.md) | پژوهشگران یادگیری ماشین از چه تکنیک‌هایی برای ساخت مدل‌های یادگیری ماشین استفاده می‌کنند؟ | [درس](1-Introduction/4-techniques-of-ML/README.md) | کریس و جن |
| ۰۵ | مقدمه‌ای بر رگرسیون | [رگرسیون](2-Regression/README.md) | شروع کار با پایتون و Scikit-learn برای مدل‌های رگرسیون | [پایتون](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | جن • اریک وانجاو |
| ۰۶ | قیمت کدو حلوایی آمریکای شمالی 🎃 | [رگرسیون](2-Regression/README.md) | مصورسازی و پاک‌سازی داده‌ها برای آماده‌سازی یادگیری ماشین | [پایتون](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | جن • اریک وانجاو |
| ۰۷ | قیمت کدو حلوایی آمریکای شمالی 🎃 | [رگرسیون](2-Regression/README.md) | ساخت مدل‌های رگرسیون خطی و چند جمله‌ای | [پایتون](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | جن و دیمیتری • اریک وانجاو |
| ۰۸ | قیمت کدو حلوایی آمریکای شمالی 🎃 | [رگرسیون](2-Regression/README.md) | ساخت مدل رگرسیون لجستیک | [پایتون](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | جن • اریک وانجاو |
| ۰۹ | یک برنامه وب 🔌 | [برنامه وب](3-Web-App/README.md) | ساخت یک برنامه وب برای استفاده از مدل آموزش‌دیده شده | [پایتون](3-Web-App/1-Web-App/README.md) | جن |
| ۱۰ | مقدمه‌ای بر دسته‌بندی | [دسته‌بندی](4-Classification/README.md) | پاک‌سازی، آماده‌سازی، و مصورسازی داده‌ها؛ مقدمه‌ای بر دسته‌بندی | [پایتون](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | جن و کِسی • اریک وانجاو |
| ۱۱ | غذاهای خوشمزه آسیایی و هندی 🍜 | [دسته‌بندی](4-Classification/README.md) | مقدمه‌ای بر طبقه‌بندها | [پایتون](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | جن و کِسی • اریک وانجاو |
| ۱۲ | غذاهای خوشمزه آسیایی و هندی 🍜 | [دسته‌بندی](4-Classification/README.md) | طبقه‌بندهای بیشتر | [پایتون](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | جن و کِسی • اریک وانجاو |
| ۱۳ | غذاهای خوشمزه آسیایی و هندی 🍜 | [دسته‌بندی](4-Classification/README.md) | ساخت یک برنامه وب توصیه‌گر با استفاده از مدل خود | [پایتون](4-Classification/4-Applied/README.md) | جن |
| ۱۴ | مقدمه‌ای بر خوشه‌بندی | [خوشه‌بندی](5-Clustering/README.md) | پاک‌سازی، آماده‌سازی و مصورسازی داده‌ها؛ مقدمه‌ای بر خوشه‌بندی | [پایتون](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | جن • اریک وانجاو |
| ۱۵ | بررسی سلیقه‌های موسیقی نیجریه‌ای 🎧 | [خوشه‌بندی](5-Clustering/README.md) | بررسی روش خوشه‌بندی K-Means | [پایتون](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | جن • اریک وانجاو |
| ۱۶ | مقدمه‌ای بر پردازش زبان طبیعی ☕️ | [پردازش زبان طبیعی](6-NLP/README.md) | آموزش مبانی NLP با ساخت یک ربات ساده | [پایتون](6-NLP/1-Introduction-to-NLP/README.md) | استیفن |
| ۱۷ | وظایف رایج NLP ☕️ | [پردازش زبان طبیعی](6-NLP/README.md) | تعمیق دانش NLP با درک وظایف رایج مورد نیاز در برخورد با ساختارهای زبانی | [پایتون](6-NLP/2-Tasks/README.md) | استیفن |
| ۱۸ | ترجمه و تحلیل احساسات ♥️ | [پردازش زبان طبیعی](6-NLP/README.md) | ترجمه و تحلیل احساسات با جین آستن | [پایتون](6-NLP/3-Translation-Sentiment/README.md) | استیفن |
| ۱۹ | هتل‌های عاشقانه اروپا ♥️ | [پردازش زبان طبیعی](6-NLP/README.md) | تحلیل احساسات با بررسی هتل‌ها ۱ | [پایتون](6-NLP/4-Hotel-Reviews-1/README.md) | استیفن |
| ۲۰ | هتل‌های عاشقانه اروپا ♥️ | [پردازش زبان طبیعی](6-NLP/README.md) | تحلیل احساسات با بررسی هتل‌ها ۲ | [پایتون](6-NLP/5-Hotel-Reviews-2/README.md) | استیفن |
| ۲۱ | مقدمه‌ای بر پیش‌بینی سری‌های زمانی | [سری‌های زمانی](7-TimeSeries/README.md) | مقدمه‌ای بر پیش‌بینی سری‌های زمانی | [پایتون](7-TimeSeries/1-Introduction/README.md) | فرانچسکا |
| ۲۲ | ⚡️ مصرف برق جهان ⚡️ - پیش‌بینی سری زمانی با ARIMA | [سری‌های زمانی](7-TimeSeries/README.md) | پیش‌بینی سری‌های زمانی با ARIMA | [پایتون](7-TimeSeries/2-ARIMA/README.md) | فرانچسکا |
| ۲۳ | ⚡️ مصرف برق جهان ⚡️ - پیش‌بینی سری زمانی با SVR | [سری‌های زمانی](7-TimeSeries/README.md) | پیش‌بینی سری‌های زمانی با رگرسیون بردار پشتیبان | [پایتون](7-TimeSeries/3-SVR/README.md) | آنیربان |
| ۲۴ | مقدمه‌ای بر یادگیری تقویتی | [یادگیری تقویتی](8-Reinforcement/README.md) | مقدمه‌ای بر یادگیری تقویتی با الگوریتم Q-Learning | [پایتون](8-Reinforcement/1-QLearning/README.md) | دیمیتری |
| ۲۵ | کمک به پیتر برای جلوگیری از گرگ! 🐺 | [یادگیری تقویتی](8-Reinforcement/README.md) | یادگیری تقویتی در Gym | [پایتون](8-Reinforcement/2-Gym/README.md) | دیمیتری |
| پست‌اسکریپت | موقعیت‌ها و کاربردهای دنیای واقعی ML | [ML در طبیعت](9-Real-World/README.md) | کاربردهای جالب و روشنگر یادگیری ماشین کلاسیک در دنیای واقعی | [درس](9-Real-World/1-Applications/README.md) | تیم |
| پست‌اسکریپت | اشکال‌زدایی مدل در ML با استفاده از داشبورد RAI | [ML در طبیعت](9-Real-World/README.md) | اشکال‌زدایی مدل در یادگیری ماشین با استفاده از المان‌های داشبورد Responsible AI | [درس](9-Real-World/2-Debugging-ML-Models/README.md) | راث یاکوبو |
> [تمام منابع اضافی این دوره را در مجموعه Microsoft Learn ما بیابید](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
## دسترسی آفلاین
شما می‌توانید این مستندات را به صورت آفلاین با استفاده از [Docsify](https://docsify.js.org/#/) اجرا کنید. مخزن را فورک کنید، [Docsify](https://docsify.js.org/#/quickstart) را روی دستگاه محلی خود نصب کنید، سپس در پوشه اصلی این مخزن، دستور `docsify serve` را تایپ کنید. وب‌سایت روی پورت ۳۰۰۰ در localhost شما با آدرس `localhost:3000` میزبانی می‌شود.
شما می‌توانید این مستندات را به صورت آفلاین با استفاده از [Docsify](https://docsify.js.org/#/) اجرا کنید. این مخزن را فورک کنید، [Docsify را نصب کنید](https://docsify.js.org/#/quickstart) روی کامپیوتر محلی خود، و سپس در پوشه ریشه این مخزن، دستور `docsify serve` را وارد کنید. سایت روی پورت ۳۰۰۰ در هاست محلی شما ارائه خواهد شد: `localhost:3000`.
## فایل‌های PDF
نسخه پی‌دی‌اف برنامه درسی با لینک‌ها را [اینجا](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) بیابید.
یک فایل PDF از برنامه درسی به همراه لینک‌ها را [اینجا](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) بیابید.
## 🎒 دوره‌های دیگر
تیم ما دوره‌های دیگری نیز تولید می‌کند! بررسی کنید:
تیم ما دوره‌های دیگری نیز تولید می‌کند! نگاه کنید به:
<!-- CO-OP TRANSLATOR OTHER COURSES START -->
### LangChain
[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners)
[![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin)
[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin)
[![LangChain4j برای مبتدیان](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners)
[![LangChain.js برای مبتدیان](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin)
[![LangChain برای مبتدیان](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin)
---
### Azure / Edge / MCP / Agents
[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
[![AZD برای مبتدیان](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Edge AI برای مبتدیان](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![MCP برای مبتدیان](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[![عامل‌های هوش مصنوعی برای مبتدیان](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### Generative AI Series
[![هوش مصنوعی تولیدی برای مبتدیان](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![هوش مصنوعی تولیدی (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![هوش مصنوعی تولیدی (جاوا)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[![هوش مصنوعی تولیدی (جاوااسکریپت)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
### سری هوش مصنوعی مولد
[![هوش مصنوعی مولد برای مبتدیان](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![هوش مصنوعی مولد (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![هوش مصنوعی مولد (جاوا)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[![هوش مصنوعی مولد (جاوااسکریپت)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
---
### آموزش‌های اصلی
### آموزش‌های بنیادی
[![یادگیری ماشین برای مبتدیان](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[![علم داده برای مبتدیان](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[![هوش مصنوعی برای مبتدیان](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[![امنیت سایبری برای مبتدیان](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[![توسعه وب برای مبتدیان](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[![اینترنت اشیا برای مبتدیان](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[![اینترنت اشیاء برای مبتدیان](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[![توسعه XR برای مبتدیان](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### سری کوپایلوت
[![کوپایلوت برای برنامه‌نویسی جفتی هوش مصنوعی](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
### سری همیار برنامه‌نویس
[![کوپایلوت برای برنامه‌نویسی جفتی با هوش مصنوعی](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[![کوپایلوت برای C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
[![ماجراجویی کوپایلوت](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst)
<!-- CO-OP TRANSLATOR OTHER COURSES END -->
## دریافت کمک
اگر در ساخت برنامه‌های هوش مصنوعی گیر کرده‌اید یا سوالی دارید. به جمع زبان‌آموزان و توسعه‌دهندگان با تجربه در بحث‌های پیرامون MCP بپیوندید. این یک جامعه پشتیبان است که در آن سوالات خوش‌آمد گفته می‌شود و دانش آزادانه به اشتراک گذاشته می‌شود.
اگر گیر کردید یا سوالی درباره ساخت برنامه‌های هوش مصنوعی داشتید، به جمع یادگیرندگان و توسعه‌دهندگان باتجربه در بحث‌های MCP بپیوندید. این یک جامعه حمایتگر است که در آن سوالات خوش‌آمد گفته می‌شوند و دانش به صورت آزاد به اشتراک گذاشته می‌شود.
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
[![دیسکورد Microsoft Foundry](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
اگر بازخورد محصول یا خطا هنگام ساخت داشتید به موارد زیر مراجعه کنید:
اگر بازخورد محصول یا خطایی هنگام ساخت برنامه مشاهده کردید به اینجا مراجعه کنید:
[![انجمن توسعه‌دهندگان Microsoft Foundry در گیت‌هاب](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## نکات تکمیلی آموزشی
[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
- پس از هر درس دفترچه‌ها را مرور کنید تا بهتر متوجه شوید.
- تمرین کنید الگوریتم‌ها را خودتان پیاده‌سازی کنید.
- با استفاده از مفاهیم یادگرفته شده داده‌های واقعی را کاوش کنید.
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**توضیح مسئولیت**:
این سند با استفاده از سرویس ترجمه مبتنی بر هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما در تلاش برای دقت هستیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است حاوی اشتباهات یا نابه‌دقتی‌هایی باشند. سند اصلی به زبان بومی خود باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، استفاده از ترجمه حرفه‌ای انسانی توصیه می‌شود. ما مسئول هیچ‌گونه سوءتفاهم یا برداشت نادرستی که ناشی از استفاده از این ترجمه باشد، نیستیم.
**سلب مسئولیت**:
این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما در تلاش برای دقت هستیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل اشتباهات یا نادرستی‌هایی باشند. سند اصلی به زبان مادری خود باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات مهم و حیاتی، توصیه می‌شود از ترجمه حرفه‌ای انسانی استفاده کنید. ما مسئول هیچ‌گونه سوءتفاهم یا تفسیر نادرستی که ناشی از استفاده از این ترجمه باشد، نیستیم.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -30,8 +30,8 @@
"language_code": "ur"
},
"1-Introduction/3-fairness/assignment.md": {
"original_hash": "dbda60e7b1fe5f18974e7858eff0004e",
"translation_date": "2025-08-29T13:38:50+00:00",
"original_hash": "c81d9affadb89d017d610eadeb6c84f9",
"translation_date": "2026-02-28T08:39:16+00:00",
"source_file": "1-Introduction/3-fairness/assignment.md",
"language_code": "ur"
},
@ -90,8 +90,8 @@
"language_code": "ur"
},
"2-Regression/3-Linear/README.md": {
"original_hash": "40e64f004f3cb50aa1d8661672d3cd92",
"translation_date": "2025-09-06T08:43:17+00:00",
"original_hash": "9a8359f1945bd3beccccb2b46592580e",
"translation_date": "2026-02-28T08:41:17+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "ur"
},
@ -186,8 +186,8 @@
"language_code": "ur"
},
"4-Classification/3-Classifiers-2/README.md": {
"original_hash": "49047911108adc49d605cddfb455749c",
"translation_date": "2025-09-06T08:55:57+00:00",
"original_hash": "d94438d71164b0ff68002812aed1a8b4",
"translation_date": "2026-02-28T08:41:40+00:00",
"source_file": "4-Classification/3-Classifiers-2/README.md",
"language_code": "ur"
},
@ -197,12 +197,24 @@
"source_file": "4-Classification/3-Classifiers-2/assignment.md",
"language_code": "ur"
},
"4-Classification/3-Classifiers-2/notebook.ipynb": {
"original_hash": "624ca6cf73d3548ff1b3059e413fa4cd",
"translation_date": "2026-02-28T08:34:13+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "ur"
},
"4-Classification/3-Classifiers-2/solution/Julia/README.md": {
"original_hash": "a39c15d63f3b2795ee2284a82b986b93",
"translation_date": "2025-08-29T13:59:38+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/Julia/README.md",
"language_code": "ur"
},
"4-Classification/3-Classifiers-2/solution/notebook.ipynb": {
"original_hash": "70f41fe4fd4253adb44cd9d291406e4f",
"translation_date": "2026-02-28T08:34:19+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "ur"
},
"4-Classification/4-Applied/README.md": {
"original_hash": "61bdec27ed2da8b098cd9065405d9bb0",
"translation_date": "2025-09-06T08:55:31+00:00",
@ -540,8 +552,8 @@
"language_code": "ur"
},
"README.md": {
"original_hash": "2f594ee136e3127a47f56d80055227bc",
"translation_date": "2026-02-06T07:36:26+00:00",
"original_hash": "3a0286e1c4858e79ff54f080dadc1426",
"translation_date": "2026-02-28T08:39:10+00:00",
"source_file": "README.md",
"language_code": "ur"
},

@ -1,16 +1,18 @@
# ذمہ دار AI ٹول باکس کا جائزہ لیں
# ذمہ دار AI ٹول باکس کو دریافت کریں
## ہدایات
اس سبق میں آپ نے ذمہ دار AI ٹول باکس کے بارے میں سیکھا، جو "ایک اوپن سورس، کمیونٹی پر مبنی منصوبہ ہے جو ڈیٹا سائنسدانوں کو AI سسٹمز کا تجزیہ کرنے اور انہیں بہتر بنانے میں مدد فراہم کرتا ہے۔" اس اسائنمنٹ کے لیے، RAI ٹول باکس کے ایک [نوٹ بک](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/getting-started.ipynb) کو دریافت کریں اور اپنے نتائج کو ایک مقالے یا پریزنٹیشن میں رپورٹ کریں۔
اس سبق میں آپ نے ذمہ دار AI ٹول باکس کے بارے میں سیکھا، جو "ایک اوپن سورس، کمیونٹی کے زیر انتظام پروجیکٹ ہے جو ڈیٹا سائنسدانوں کو AI سسٹمز کا تجزیہ کرنے اور بہتر بنانے میں مدد دیتا ہے۔" اس اسائنمنٹ کے لیے، RAI ٹول باکس کی ایک [نوٹ بک](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/tabular/getting-started.ipynb) کو دریافت کریں اور اپنی دریافتوں کی ایک مقالہ یا پریزنٹیشن میں رپورٹ کریں۔
## معیار
## روبریک
| معیار | بہترین | مناسب | بہتری کی ضرورت ہے |
| ------ | ------- | ------- | ------------------ |
| | ایک مقالہ یا پاورپوائنٹ پریزنٹیشن پیش کی گئی ہے جس میں Fairlearn کے سسٹمز، چلائی گئی نوٹ بک، اور اس کے نتائج پر بات کی گئی ہے۔ | ایک مقالہ پیش کیا گیا ہے لیکن نتائج شامل نہیں ہیں | کوئی مقالہ پیش نہیں کیا گیا |
| -------- | --------- | -------- | ----------------- |
| | ایک مقالہ یا پاورپوائنٹ پریزنٹیشن پیش کی جاتی ہے جو Fairlearn کے سسٹمز، چلائی گئی نوٹ بک، اور اسے چلانے سے اخذ کیے گئے نتائج پر بحث کرتی ہے | ایک مقالہ پیش کیا جاتا ہے بغیر نتائج کے | کوئی مقالہ پیش نہیں کیا جاتا |
---
**ڈسکلیمر**:
یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز، جو اس کی مقامی زبان میں ہے، کو مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**دوراہی نوٹ**:
یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کے ذریعے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشاں ہیں، تاہم براہِ کرم اس بات سے آگاہ رہیں کہ خودکار ترجمے میں اغلاط یا غلط فہمیاں ہو سکتی ہیں۔ اصل دستاویز اپنی مادری زبان میں ہی مستند ماخذ سمجھی جائے۔ اہم معلومات کے لیے پیشہ ور انسانی ترجمہ تجویز کیا جاتا ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا تشریح کے لیے ہم ذمہ دار نہیں ہیں۔
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,85 +1,99 @@
# سکائٹ لرن کے ذریعے ریگریشن ماڈل بنائیں: ریگریشن کے چار طریقے
# سکائیکیٹ-لرن کا استعمال کرتے ہوئے ریگریشن ماڈل بنائیں: ریگریشن کے چار طریقے
![لینیئر بمقابلہ پولینومیل ریگریشن انفوگرافک](../../../../2-Regression/3-Linear/images/linear-polynomial.png)
> انفوگرافک از [دسانی مادیپالی](https://twitter.com/dasani_decoded)
## [لیکچر سے پہلے کا کوئز](https://ff-quizzes.netlify.app/en/ml/)
## ابتدائی نوٹ
لینیئر ریگریشن اُس وقت استعمال کی جاتی ہے جب ہم **عددی قیمت** کی پیش گوئی کرنا چاہتے ہیں (مثلاً، گھر کی قیمت، درجہ حرارت، یا فروخت)۔
یہ کام اس طرح کرتا ہے کہ وہ ایک سیدھی لائن تلاش کرتا ہے جو ان پٹ خصوصیات اور آؤٹ پٹ کے درمیان تعلق کی بہترین نمائندگی کرتی ہو۔
اس سبق میں، ہم بنیادی تصور کو سمجھنے پر توجہ دیتے ہیں اس سے پہلے کہ ہم مزید ترقی یافتہ ریگریشن تکنیکوں کو دریافت کریں۔
![Linear vs polynomial regression infographic](../../../../translated_images/ur/linear-polynomial.5523c7cb6576ccab.webp)
> انفراگرافک از [دسنی مدیپالی](https://twitter.com/dasani_decoded)
## [سبق سے پہلے کوئز](https://ff-quizzes.netlify.app/en/ml/)
> ### [یہ سبق R میں بھی دستیاب ہے!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
> ### [یہ سبق R میں دستیاب ہے!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### تعارف
اب تک آپ نے ریگریشن کے بارے میں جانا ہے، جس میں کدو کی قیمتوں کے ڈیٹا سیٹ سے نمونہ ڈیٹا استعمال کیا گیا ہے، جو ہم اس سبق میں استعمال کریں گے۔ آپ نے اسے میٹپلاٹ لِب کے ذریعے بصری طور پر بھی دیکھا ہے۔
اب تک آپ نے ریگریشن کیا ہے، اُس کا جائزہ لیا ہے اور اس مثال کے لیے کدو کی قیمتوں کا ڈیٹا استعمال کیا ہے جسے ہم اس سبق میں بار بار استعمال کریں گے۔ آپ نے اسے میٹ پلوٹ لائب کا استعمال کرتے ہوئے بھی دیکھا ہے۔
اب آپ مشین لرننگ کے لیے ریگریشن کو مزید گہرائی سے سمجھنے کے لیے تیار ہیں۔ جبکہ بصری تجزیہ ڈیٹا کو سمجھنے میں مدد دیتا ہے، مشین لرننگ کی اصل طاقت اڈلز کی تربیت_ میں ہے۔ ماڈلز تاریخی ڈیٹا پر تربیت یافتہ ہوتے ہیں تاکہ ڈیٹا کی وابستگی کو خودکار طور پر سمجھ سکیں، اور یہ آپ کو نئے ڈیٹا کے نتائج کی پیش گوئی کرنے کی اجازت دیتے ہیں، جو ماڈل نے پہلے نہیں دیکھا ہوتا۔
اب آپ مشین لرننگ کے لیے ریگریشن میں مزید گہرائی سے جا سکتے ہیں۔ جہاں تجزیاتی تصویر کشی (ویژولائزیشن) آپ کو ڈیٹا کو سمجھنے میں مدد دیتی ہے، مشین لرننگ کی اصل طاقت اڈلز کی تربیت_ سے آتی ہے۔ ماڈلز تاریخی ڈیٹا پر تربیت دیے جاتے ہیں تاکہ خود بخود ڈیٹا کے باہمی تعلقات کو سمجھ سکیں، اور یہ آپ کو نئے ڈیٹا کے لیے نتائج کی پیش گوئی کرنے کی اجازت دیتے ہیں جو ماڈل نے پہلے نہیں دیکھا۔
اس سبق میں، آپ ریگریشن کی دو اقسام کے بارے میں مزید جانیں گے: _بنیادی لینیئر ریگریشن_ اور _پولینومیل ریگریشن_، اور ان تکنیکوں کے پیچھے کچھ ریاضی۔ یہ ماڈلز ہمیں مختلف ان پٹ ڈیٹا کے مطابق کدو کی قیمتوں کی پیش گوئی کرنے کی اجازت دیں گے۔
اس سبق میں، آپ دو اقسام کی ریگریشن کے بارے میں مزید سیکھیں گے: _بنیادی لینیئر ریگریشن_ اور _پولی نومیل ریگریشن_، ساتھ ہی ان تکنیکوں کے پیچھے کچھ ریاضی کے اصول بھی۔ یہ ماڈل ہمیں مختلف ان پٹ ڈیٹا کی بنیاد پر کدو کی قیمتیں پیش گوئی کرنے کی اجازت دیں گے۔
[![مشین لرننگ کے لیے ابتدائی - لینیئر ریگریشن کو سمجھنا](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "مشین لرننگ کے لیے ابتدائی - لینیئر ریگریشن کو سمجھنا")
[![ML for beginners - Understanding Linear Regression](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "ML for beginners - Understanding Linear Regression")
> 🎥 اوپر دی گئی تصویر پر کلک کریں تاکہ لینیئر ریگریشن کا مختصر ویڈیو جائزہ دیکھ سکیں۔
> 🎥 لینیئر ریگریشن کے مختصر ویڈیو جائزے کے لیے اوپر تصویر پر کلک کریں۔
> اس نصاب میں، ہم ریاضی کے کم سے کم علم کو فرض کرتے ہیں اور طلباء کے لیے اسے قابل رسائی بنانے کی کوشش کرتے ہیں، جو دیگر شعبوں سے آتے ہیں۔ نوٹس، 🧮 کال آؤٹس، ڈایاگرامز، اور دیگر سیکھنے کے اوزار پر نظر رکھیں تاکہ سمجھنے میں مدد ملے۔
> اس نصاب میں، ہم حساب کی کم سے کم معلومات فرض کرتے ہیں اور اسے دوسرے شعبوں سے آنے والے طلباء کے لیے قابل رسائی بنانے کی کوشش کرتے ہیں، لہٰذا نوٹس، 🧮 حوالہ جات، خاکے، اور دیگر تعلیمی اوزار پر غور کریں جو سمجھنے میں مددگار ہوں۔
### پیشگی شرط
### پیشگی معلومات
اب تک آپ کو کدو کے ڈیٹا کی ساخت سے واقف ہونا چاہیے، جسے ہم جانچ رہے ہیں۔ آپ اسے اس سبق کے _notebook.ipynb_ فائل میں پہلے سے لوڈ اور صاف شدہ حالت میں دیکھ سکتے ہیں۔ اس فائل میں، کدو کی قیمت فی بوشل ایک نئے ڈیٹا فریم میں دکھائی گئی ہے۔ یقینی بنائیں کہ آپ ان نوٹ بکس کو ویژول اسٹوڈیو کوڈ کے کرنلز میں چلا سکتے ہیں۔
اب تک آپ کو کدو کے ڈیٹا کی ساخت کا اندازہ ہو چکا ہوگا جسے ہم دیکھ رہے ہیں۔ آپ اسے اس سبق کی _notebook.ipynb_ فائل میں قبل از وقت لوڈ اور صاف شدہ پا سکتے ہیں۔ اس فائل میں کدو کی قیمت بوشل کے حساب سے ایک نئے ڈیٹا فریم میں ظاہر کی گئی ہے۔ یقینی بنائیں کہ آپ یہ نوٹ بکس Visual Studio Code میں کرنلز پر چلا سکتے ہیں۔
### تیاری
یاد دہانی کے طور پر، آپ یہ ڈیٹا اس لیے لوڈ کر رہے ہیں تاکہ اس سے سوالات پوچھ سکیں۔
یاد دہانی کے طور پر، آپ یہ ڈیٹا اس لیے لوڈ کر رہے ہیں تاکہ اس سے سوالات کریں۔
- کدو خریدنے کا بہترین وقت کب ہے؟
- چھوٹے کدو کے کیس کی قیمت کیا ہو سکتی ہے؟
- کیا مجھے انہیں آدھے بوشل کے ٹوکریوں میں خریدنا چاہیے یا 1 1/9 بوشل کے ڈبے میں؟
- چھوٹے کدو کے کیس کی کتنی قیمت متوقع ہے؟
- کیا میں انہیں آدھے بوشل کی ٹوکریوں میں خریدوں یا 1 1/9 بوشل کے ڈبے میں؟
آئیے اس ڈیٹا میں مزید کھوج کریں۔
پچھلے سبق میں، آپ نے ایک پانڈاز ڈیٹا فریم بنایا اور اسے اصل ڈیٹا سیٹ کے ایک حصے سے بھرا، قیمتوں کو بوشل کے مطابق معیاری بنایا۔ ایسا کرنے سے، تاہم، آپ صرف تقریباً 400 ڈیٹا پوائنٹس جمع کر سکے اور وہ بھی صرف خزاں کے مہینوں کے لیے۔
پچھلے سبق میں، آپ نے پانڈاز ڈیٹا فریم بنایا اور اسے اصل ڈیٹا سیٹ کے ایک حصے سے بھر دیا، قیمتوں کو بوشل کے حساب سے معیاری بنایا۔ تاہم، اس طرح آپ کو صرف تقریباً 400 ڈیٹا پوائنٹس ملے اور وہ بھی صرف خزانی مہینوں کے لیے۔
اس سبق کے ساتھ آنے والے نوٹ بک میں پہلے سے لوڈ شدہ ڈیٹا پر ایک نظر ڈالیں۔ ڈیٹا پہلے سے لوڈ شدہ ہے اور ایک ابتدائی اسکیٹر پلاٹ چارٹ کیا گیا ہے تاکہ مہینے کے ڈیٹا کو دکھایا جا سکے۔ شاید ہم ڈیٹا کی نوعیت کے بارے میں مزید تفصیل حاصل کر سکیں اگر اسے مزید صاف کریں۔
اس سبق کے ساتھ پیش کیے گئے نوٹ بک میں بھی دیکھیں۔ ڈیٹا پہلے سے لوڈ اور ابتدائی اسکیٹرپلاٹ بنایا گیا ہے جو مہینے کا ڈیٹا دکھاتا ہے۔ ہو سکتا ہے ہم اسے مزید صاف کرکے ڈیٹا کی نوعیت کے بارے میں مزید تفصیل حاصل کر سکیں۔
## ایک لینیئر ریگریشن لائن
جیسا کہ آپ نے سبق 1 میں سیکھا، لینیئر ریگریشن کی مشق کا مقصد ایک لائن کو پلاٹ کرنا ہے تاکہ:
جیسے آپ نے سبق 1 میں سیکھا، لینیئر ریگریشن مشق کا مقصد ایک لائن کے گراف پر اظہار کرنا ہے تاکہ:
- **متغیرات کے تعلقات دکھائیں۔** متغیرات کے تعلق کو ظاہر کریں۔
- **پیش گوئیاں کریں۔** صحیح پیش گوئیاں کریں کہ نیا ڈیٹا پوائنٹ اس لائن کے ساتھ کس طرح تعلق رکھے گا۔
- **متغیرات کے تعلقات دکھائیں**۔ متغیرات کے درمیان تعلق دکھائیں
- **پیش گوئیاں کریں**۔ یہ پیش گوئی کریں کہ ایک نیا ڈیٹا پوائنٹ اس لائن کے تعلق میں کہاں آئے گا۔
یہ معمول ہے کہ **لیسٹ سکوائرز ریگریشن** ایسی لائن کھینچتی ہے۔ "لیسٹ سکوائرز" اصطلاح ہمارے ماڈل کی کل غلطی کو کم کرنے کے عمل کو بیان کرتی ہے۔ ہر ڈیٹا پوائنٹ کی عمودی فاصلہ (جسے بقایا کہا جاتا ہے) اصل پوائنٹ اور ہماری ریگریشن لائن کے درمیان ناپا جاتا ہے۔
یہ عام طور پر **لیسٹ-اسکوائرز ریگریشن** کے ذریعے اس قسم کی لائن کھینچنے کے لیے کیا جاتا ہے۔ 'لیسٹ-اسکوائرز' کا مطلب ہے کہ ریگریشن لائن کے ارد گرد کے تمام ڈیٹا پوائنٹس کو مربع کیا جاتا ہے اور پھر جمع کیا جاتا ہے۔ مثالی طور پر، وہ حتمی مجموعہ جتنا چھوٹا ہو، اتنا ہی بہتر ہے، کیونکہ ہم غلطیوں کی کم تعداد چاہتے ہیں، یا `لیسٹ-اسکوائرز`۔
ہم ان فاصلات کو دو اہم وجوہات کی بنا پر مربع کرتے ہیں:
ہم ایسا اس لیے کرتے ہیں کیونکہ ہم ایک ایسی لائن کا ماڈل بنانا چاہتے ہیں جس کا تمام ڈیٹا پوائنٹس سے کم سے کم مجموعی فاصلہ ہو۔ ہم ان شرائط کو مربع بھی کرتے ہیں کیونکہ ہم اس کی شدت کے بارے میں فکر مند ہیں، نہ کہ اس کی سمت کے بارے میں۔
1. **سمت کی بجائے مقدار:** ہم -5 کی غلطی کو +5 کی غلطی کے برابر سمجھنا چاہتے ہیں۔ مربع کرنے سے تمام قدریں مثبت ہو جاتی ہیں۔
2. **آؤٹ لائیرز کی سزا:** مربع کرنے سے بڑی غلطیوں کو زیادہ وزن ملتا ہے، جس سے لائن دور موجود نقاط کے قریب رہتی ہے۔
پھر ہم تمام مربع شدہ قدروں کو جمع کرتے ہیں۔ ہمارا مقصد وہ خاص لائن تلاش کرنا ہے جہاں یہ مجموعہ سب سے کم (انتہائی کم سے کم قیمت) ہو — اسی لیے اس کا نام "لیسٹ سکوائرز" ہے۔
> **🧮 مجھے ریاضی دکھائیں**
>
> اس لائن، جسے ہترین فٹ کی لائن_ کہا جاتا ہے، کو [ایک مساوات](https://en.wikipedia.org/wiki/Simple_linear_regression) کے ذریعے ظاہر کیا جا سکتا ہے:
>
>
> یہ لائن، جسے ہترین فٹ لائن_ کہا جاتا ہے، [ایک مساوات](https://en.wikipedia.org/wiki/Simple_linear_regression) کے ذریعے بیان کی جا سکتی ہے:
>
> ```
> Y = a + bX
> ```
>
> `X` 'وضاحتی متغیر' ہے۔ `Y` 'منحصر متغیر' ہے۔ لائن کی ڈھلوان `b` ہے اور `a` y-انٹرسپٹ ہے، جو اس وقت `Y` کی قدر کو ظاہر کرتا ہے جب `X = 0` ہو۔
> `X` 'وضاحتی متغیر' ہے۔ `Y` 'تابع متغیر' ہے۔ لائن کا ڈھلوان `b` ہے اور `a` y-انٹرسپٹ ہے، جو اس قیمت کی نمائندگی کرتا ہے جب `X = 0` ہو۔
>
>![ڈھلوان کا حساب لگائیں](../../../../2-Regression/3-Linear/images/slope.png)
>![ڈھلوان کا حساب لگائیں](../../../../translated_images/ur/slope.f3c9d5910ddbfcf9.webp)
>
> پہلے، ڈھلوان `b` کا حساب لگائیں۔ انفوگرافک از [جین لوپر](https://twitter.com/jenlooper)
> سب سے پہلے، ڈھلوان `b` کا حساب لگائیں۔ انفراگرافک از [جن لوپر](https://twitter.com/jenlooper)
>
> دوسرے الفاظ میں، اور ہمارے کدو کے ڈیٹا کے اصل سوال کا حوالہ دیتے ہوئے: "مہینے کے لحاظ سے کدو کی قیمت فی بوشل کی پیش گوئی کریں"، `X` قیمت کو ظاہر کرے گا اور `Y` فروخت کے مہینے کو۔
> دوسرے الفاظ میں، اور ہمارے کدو ڈیٹا کے اصل سوال کی طرف اشارہ کرتے ہوئے: "مہینے کے حساب سے بوشل قیمت کی پیش گوئی کریں"، `X` قیمت کی نمائندگی کرے گا اور `Y` فروخت کے مہینے کی۔
>
>![مساوات مکمل کریں](../../../../2-Regression/3-Linear/images/calculation.png)
>![مساوات مکمل کریں](../../../../translated_images/ur/calculation.a209813050a1ddb1.webp)
>
> `Y` کی قدر کا حساب لگائیں۔ اگر آپ تقریباً $4 ادا کر رہے ہیں، تو یہ اپریل ہونا چاہیے! انفوگرافک از [جین لوپر](https://twitter.com/jenlooper)
> Y کی قیمت کا حساب لگائیں۔ اگر آپ تقریباً $4 ادا کر رہے ہیں، تو یہ لازمی طور پر اپریل ہے! انفراگرافک از [جن لوپر](https://twitter.com/jenlooper)
>
> لائن کا حساب لگانے والی ریاضی کو لائن کی ڈھلوان ظاہر کرنی چاہیے، جو انٹرسپٹ پر بھی منحصر ہے، یا جہاں `Y` واقع ہے جب `X = 0`۔
> لائن کا حساب لگانے والی ریاضی کو ڈھلوان کا مظاہرہ کرنا چاہیے، جو انٹرسپٹ پر بھی منحصر ہوتا ہے، یعنی جب `X = 0` ہو تو `Y` کہاں ہوتا ہے۔
>
> آپ ان اقدار کے حساب کے طریقے کو [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) ویب سائٹ پر دیکھ سکتے ہیں۔ [Least-squares calculator](https://www.mathsisfun.com/data/least-squares-calculator.html) پر بھی جائیں تاکہ دیکھ سکیں کہ نمبروں کی اقدار لائن پر کیسے اثر ڈالتی ہیں۔
> ان قدروں کے حساب کتاب کا طریقہ آپ [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) ویب سائٹ پر دیکھ سکتے ہیں۔ اس کے علاوہ [یہ لِیسٹ-سکوائرز کیلکولیٹر](https://www.mathsisfun.com/data/least-squares-calculator.html) ملاحظہ کریں تاکہ سمجھیں کہ اعداد کی قیمتیں لائن پر کیا اثر ڈالتی ہیں۔
## تعلق
## تعلق (Correlation)
ایک اور اصطلاح کو سمجھنا ضروری ہے، وہ ہے **تعلق کا گتانک** دیے گئے X اور Y متغیرات کے درمیان۔ اسکیٹر پلاٹ کا استعمال کرتے ہوئے، آپ اس گتانک کو جلدی سے بصری طور پر دیکھ سکتے ہیں۔ ایک پلاٹ جس میں ڈیٹا پوائنٹس ایک صاف لائن میں بکھرے ہوئے ہوں، اس کا تعلق زیادہ ہوتا ہے، لیکن ایک پلاٹ جس میں ڈیٹا پوائنٹس X اور Y کے درمیان ہر جگہ بکھرے ہوئے ہوں، اس کا تعلق کم ہوتا ہے۔
ایک اور اصطلاح جسے سمجھنا ضروری ہے وہ ہے X اور Y متغیرات کے درمیان **Correlation Coefficient**۔ اس کو اسکیٹرپلاٹ کی مدد سے جلدی سے دیکھا جا سکتا ہے۔ اسکیٹرپلاٹ جس میں ڈیٹا پوائنٹس یکساں لائن پر پھیلے ہوں، اس میں تعلق زیادہ ہوتا ہے، لیکن جہاں ڈیٹا پوائنٹس X اور Y میں منتشر ہوں، وہاں تعلق کم ہوتا ہے۔
ایک اچھا لینیئر ریگریشن ماڈل وہ ہوگا جس کا تعلق کا گتانک زیادہ ہو (1 کے قریب ہو، 0 کے مقابلے میں) لیسٹ-اسکوائرز ریگریشن طریقہ کے ساتھ ریگریشن لائن کے ذریعے۔
ایک اچھا لینیئر ریگریشن ماڈل ہوگا، جس کا تعلق کا کوفی‌شینٹ زیادہ ہو (0 کی بجائے 1 کے قریب)، اور لیسٹ سکوائرز ریگریشن طریقے سے لائن آف ریگریشن کی تشکیل کی گئی ہو۔
✅ اس سبق کے ساتھ آنے والے نوٹ بک کو چلائیں اور مہینے سے قیمت کے اسکیٹر پلاٹ کو دیکھیں۔ کیا کدو کی فروخت کے لیے مہینے سے قیمت کا ڈیٹا آپ کے بصری تجزیے کے مطابق زیادہ یا کم تعلق رکھتا ہے؟ کیا یہ تبدیل ہوتا ہے اگر آپ مہینے کے بجائے زیادہ باریک پیمائش استعمال کریں، جیسے *سال کا دن* (یعنی سال کے آغاز سے دنوں کی تعداد)؟
✅ اس سبق کی نوٹ بک چلائیں اور مہینے کے مقابلے قیمت کے اسکیٹرپلاٹ کو دیکھیں۔ کیا آپ کے بصری تجزیے کے مطابق کدو کی فروخت کے لیے مہینے سے قیمت کا تعلق زیادہ ہے یا کم؟ کیا یہ بدلتا ہے اگر آپ `Month` کے بجائے زیادہ باریک پیمانے جیسے *سال کا دن* (یعنی سال کے آغاز سے گزرے دن) استعمال کریں؟
نیچے دیے گئے کوڈ میں، ہم فرض کریں گے کہ ہم نے ڈیٹا صاف کر لیا ہے، اور ایک ڈیٹا فریم حاصل کیا ہے جسے `new_pumpkins` کہا جاتا ہے، جو درج ذیل کے مشابہ ہے:
ذیل میں کوڈ میں، ہم فرض کریں گے کہ ہم نے ڈیٹا صاف کر لیا ہے اور ہمیں ایک ڈیٹا فریم مل گیا ہے جس کا نام `new_pumpkins` ہے، جو درج ذیل جیسا ہے:
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
---|-------|-----------|---------|------|---------|-----------|------------|-------
@ -89,36 +103,38 @@ ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Pri
73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
> ڈیٹا صاف کرنے کا کوڈ [`notebook.ipynb`](../../../../2-Regression/3-Linear/notebook.ipynb) میں دستیاب ہے۔ ہم نے پچھلے سبق میں کیے گئے وہی صاف کرنے کے اقدامات کیے ہیں، اور `DayOfYear` کالم کا حساب درج ذیل اظہار کے ذریعے لگایا ہے:
> ڈیٹا صاف کرنے کا کوڈ [`notebook.ipynb`](notebook.ipynb) میں دستیاب ہے۔ ہم نے پچھلے سبق کی طرح صفائی کے قدم پورے کیے ہیں اور `DayOfYear` کالم کا حساب مندرجہ ذیل اظہار سے کیا ہے:
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
```
اب جب کہ آپ لینیئر ریگریشن کے پیچھے ریاضی کو سمجھ چکے ہیں، آئیے ایک ریگریشن ماڈل بنائیں تاکہ دیکھ سکیں کہ ہم کدو کے پیکجز میں سے کون سا بہترین قیمتوں کے لیے منتخب کر سکتے ہیں۔ کوئی شخص جو چھٹی کے کدو کے باغ کے لیے کدو خرید رہا ہو، وہ یہ معلومات چاہے گا تاکہ باغ کے لیے کدو کے پیکجز کی خریداری کو بہتر بنا سکے۔
اب جب کہ آپ کو لینیئر ریگریشن کے پیچھے ریاضی کا علم ہے، آئیں ایک ریگریشن ماڈل بنائیں تاکہ دیکھیں کہ کیا ہم پیش گوئی کر سکتے ہیں کہ کس قسم کا پیکج کدو کی بہترین قیمت رکھے گا۔ کوئی جو چھٹی کے کدو کے پیچ کے لیے کدو خرید رہا ہے، وہ یہ معلومات اپنے خریداری کے انتخاب کو بہتر بنانے کے لیے چاہ سکتا ہے۔
## تعلق کی تلاش
[![مشین لرننگ کے لیے ابتدائی - تعلق کی تلاش: لینیئر ریگریشن کی کلید](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "مشین لرننگ کے لیے ابتدائی - تعلق کی تلاش: لینیئر ریگریشن کی کلید")
[![ML for beginners - Looking for Correlation: The Key to Linear Regression](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "ML for beginners - Looking for Correlation: The Key to Linear Regression")
> 🎥 اوپر دی گئی تصویر پر کلک کریں تاکہ تعلق کا مختصر ویڈیو جائزہ دیکھ سکیں۔
> 🎥 تعلق کے مختصر ویڈیو جائزے کے لیے اوپر تصویر پر کلک کریں۔
پچھلے سبق سے آپ نے شاید دیکھا ہو کہ مختلف مہینوں کے لیے اوسط قیمت کچھ اس طرح نظر آتی ہے:
پچھلے سبق سے آپ نے شاید دیکھا ہوگا کہ مختلف مہینوں کی اوسط قیمت کچھ اس طرح نظر آتی ہے:
<img alt="مہینے کے لحاظ سے اوسط قیمت" src="../../../../translated_images/ur/barchart.a833ea9194346d76.webp" width="50%"/>
<img alt="Average price by month" src="../../../../translated_images/ur/barchart.a833ea9194346d76.webp" width="50%"/>
یہ ظاہر کرتا ہے کہ کچھ تعلق ہونا چاہیے، اور ہم `Month` اور `Price` کے درمیان یا `DayOfYear` اور `Price` کے درمیان تعلق کی پیش گوئی کرنے کے لیے لینیئر ریگریشن ماڈل کی تربیت کرنے کی کوشش کر سکتے ہیں۔ یہاں اسکیٹر پلاٹ ہے جو مؤخر الذکر تعلق کو دکھاتا ہے:
یہ ظاہر کرتا ہے کہ کچھ تعلق ہونا چاہیے، اور ہم کوشش کر سکتے ہیں کہ لینیئر ریگریشن ماڈل ٹرین کریں تاکہ تعلق کی پیش گوئی کریں، چاہے وہ `Month` اور `Price` کے درمیان ہو، یا `DayOfYear` اور `Price` کے درمیان۔ یہ اسکیٹر پلاٹ ہے جو بعد والے تعلق کو دکھاتا ہے:
<img alt="قیمت بمقابلہ سال کے دن کا اسکیٹر پلاٹ" src="../../../../translated_images/ur/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/ur/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
آئیے `corr` فنکشن کا استعمال کرتے ہوئے دیکھیں کہ کیا کوئی تعلق ہے:
آئیے `corr` فنکشن کا استعمال کرکے تعلق دیکھتے ہیں:
```python
print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
```
ایسا لگتا ہے کہ تعلق کافی کم ہے، `Month` کے لحاظ سے -0.15 اور `DayOfMonth` کے لحاظ سے -0.17، لیکن ایک اور اہم تعلق ہو سکتا ہے۔ ایسا لگتا ہے کہ مختلف کدو کی اقسام کے مطابق قیمتوں کے مختلف کلسٹرز ہیں۔ اس مفروضے کی تصدیق کے لیے، آئیے ہر کدو کی قسم کو مختلف رنگ کے ساتھ پلاٹ کریں۔ `scatter` پلاٹنگ فنکشن کو `ax` پیرامیٹر پاس کرکے ہم تمام پوائنٹس کو ایک ہی گراف پر پلاٹ کر سکتے ہیں:
دیکھنے میں آتا ہے کہ تعلق کافی کم ہے، `Month` کے لیے -0.15 اور `DayOfMonth` کے لیے -0.17، لیکن ممکن ہے کوئی اور اہم تعلق موجود ہو۔ مختلف کدو کی اقسام کے لیے مختلف قیمتوں کے کلسٹر یعنی گروہ دکھائی دیتے ہیں۔ اس مفروضے کی تصدیق کے لیے، ہر کدو کی قسم کو مختلف رنگ میں پلاٹ کریں۔ `scatter` پلاٹنگ فنکشن کو `ax` پیرامیٹر دے کر ہم تمام نقاط کو ایک ہی گراف پر دکھا سکتے ہیں:
```python
ax=None
@ -128,42 +144,47 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
ax = df.plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var)
```
<img alt="قیمت بمقابلہ سال کے دن کا اسکیٹر پلاٹ" src="../../../../translated_images/ur/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
ہماری تحقیق سے پتہ چلتا ہے کہ قسم کا اثر قیمت پر فروخت کی اصل تاریخ سے زیادہ ہے۔ ہم اسے بار گراف کے ذریعے دیکھ سکتے ہیں:
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/ur/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
ہماری تحقیق ظاہر کرتی ہے کہ مجموعی قیمت پر کدو کی قسم کا اثر فروخت کی تاریخ کے مقابلے میں زیادہ ہے۔ ہم اسے بار گراف سے دیکھ سکتے ہیں:
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
```
<img alt="قسم کے لحاظ سے قیمت کا بار گراف" src="../../../../translated_images/ur/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
آئیے فی الحال صرف ایک کدو کی قسم، 'پائی ٹائپ' پر توجہ مرکوز کریں، اور دیکھیں کہ تاریخ کا قیمت پر کیا اثر پڑتا ہے:
<img alt="Bar graph of price vs variety" src="../../../../translated_images/ur/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
ذرا اب ہم صرف ایک کدو کی قسم، 'pie type' پر توجہ دیں اور دیکھیں کہ قیمت پر تاریخ کا کیا اثر ہے:
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price')
```
<img alt="قیمت بمقابلہ سال کے دن کا اسکیٹر پلاٹ" src="../../../../translated_images/ur/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
اگر ہم اب `corr` فنکشن کا استعمال کرتے ہوئے `Price` اور `DayOfYear` کے درمیان تعلق کا حساب لگائیں، تو ہمیں کچھ `-0.27` جیسا ملے گا - جس کا مطلب ہے کہ پیش گوئی کرنے والے ماڈل کی تربیت کرنا معنی رکھتا ہے۔
> لینیئر ریگریشن ماڈل کی تربیت سے پہلے، یہ یقینی بنانا ضروری ہے کہ ہمارا ڈیٹا صاف ہے۔ لینیئر ریگریشن خالی اقدار کے ساتھ اچھا کام نہیں کرتا، اس لیے خالی سیلز کو ختم کرنا سمجھ میں آتا ہے:
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/ur/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
اگر ہم اب `Price` اور `DayOfYear` کے درمیان تعلق `corr` فنکشن سے حساب کریں، تو ہمیں تقریباً `-0.27` ملے گا — جس کا مطلب ہے کہ پیشین گوئی والا ماڈل تیار کرنا معقول ہے۔
> لینیئر ریگریشن ماڈل کی تربیت سے پہلے، یہ ضروری ہے کہ ہمارا ڈیٹا صاف ہو۔ لینیئر ریگریشن خالی قدرات کے ساتھ اچھا کام نہیں کرتا، اس لیے سبھی خالی خانوں کو ہٹانا منطقی ہے:
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
ایک اور طریقہ یہ ہوگا کہ ان خالی اقدار کو متعلقہ کالم سے اوسط اقدار کے ساتھ پُر کریں۔
ایک اور طریقہ یہ ہو سکتا ہے کہ خالی قدروں کو متعلقہ کالم کی اوسط قیمت سے بھر دیا جائے۔
## سادہ لینیئر ریگریشن
[![مشین لرننگ کے لیے ابتدائی - سکائٹ لرن کا استعمال کرتے ہوئے لینیئر اور پولینومیل ریگریشن](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "مشین لرننگ کے لیے ابتدائی - سکائٹ لرن کا استعمال کرتے ہوئے لینیئر اور پولینومیل ریگریشن")
[![ML for beginners - Linear and Polynomial Regression using Scikit-learn](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "ML for beginners - Linear and Polynomial Regression using Scikit-learn")
> 🎥 اوپر دی گئی تصویر پر کلک کریں تاکہ لینیئر اور پولینومیل ریگریشن کا مختصر ویڈیو جائزہ دیکھ سکیں۔
> 🎥 لینیئر اور پولی نومیل ریگریشن کے مختصر ویڈیو جائزے کے لیے اوپر تصویر پر کلک کریں۔
اپنے لینیئر ریگریشن ماڈل کی تربیت کے لیے، ہم **سکائٹ لرن** لائبریری استعمال کریں گے۔
اپنا لینیئر ریگریشن ماڈل تیار کرنے کے لیے ہم **Scikit-learn** لائبریری کا استعمال کریں گے۔
```python
from sklearn.linear_model import LinearRegression
@ -171,31 +192,34 @@ from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
ہم ان پٹ اقدار (فیچرز) اور متوقع آؤٹ پٹ (لیبل) کو الگ الگ numpy arrays میں تقسیم کرتے ہیں:
ہم ان پٹ ویلیوز (خصوصیات) اور متوقع آؤٹ پٹ (لیبل) کو الگ الگ numpy arrays میں تقسیم کرنا شروع کرتے ہیں:
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
> نوٹ کریں کہ ہمیں ان پٹ ڈیٹا پر `reshape` انجام دینا پڑا تاکہ لینیئر ریگریشن پیکیج اسے صحیح طریقے سے سمجھ سکے۔ لینیئر ریگریشن ایک 2D-array کو ان پٹ کے طور پر توقع کرتا ہے، جہاں array کی ہر قطار ان پٹ فیچرز کے ویکٹر سے مطابقت رکھتی ہے۔ ہمارے معاملے میں، چونکہ ہمارے پاس صرف ایک ان پٹ ہے - ہمیں N×1 شکل کے ساتھ ایک array کی ضرورت ہے، جہاں N ڈیٹا سیٹ کا سائز ہے۔
پھر، ہمیں ڈیٹا کو ٹرین اور ٹیسٹ ڈیٹا سیٹس میں تقسیم کرنے کی ضرورت ہے، تاکہ ہم تربیت کے بعد اپنے ماڈل کی توثیق کر سکیں:
> نوٹ کریں کہ ہمیں ان پٹ ڈیٹا پر `reshape` کرنا پڑا تاکہ لینیئر ریگریشن پیکیج اسے صحیح طریقے سے سمجھ سکے۔ لینیئر ریگریشن کو 2D-array کی توقع ہوتی ہے، جس میں ہر صف میں ان پٹ خصوصیات کا ویکٹر ہوتا ہے۔ ہمارے معاملے میں چونکہ صرف ایک ان پٹ ہے، ہمیں N×1 کا array بنانا ہوتا ہے، جہاں N ڈیٹا سیٹ کا سائز ہے۔
اس کے بعد، ہمیں تربیتی اور امتحانی ڈیٹا کو تقسیم کرنا ہوگا تاکہ ماڈل کی تربیت کے بعد ہم اسے جانچ سکیں:
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
آخر میں، اصل لینیئر ریگریشن ماڈل کی تربیت صرف دو لائنوں کے کوڈ میں ہوتی ہے۔ ہم `LinearRegression` آبجیکٹ کی وضاحت کرتے ہیں، اور اسے `fit` طریقہ استعمال کرتے ہوئے اپنے ڈیٹا پر فٹ کرتے ہیں:
آخر میں، اصل میں لینیئر ریگریشن ماڈل کی تربیت صرف دو لائنوں میں ہوتی ہے۔ ہم `LinearRegression` آبجیکٹ کی تعریف کرتے ہیں، اور `fit` میتھڈ کے استعمال سے اسے ہمارے ڈیٹا پر فٹ کرتے ہیں:
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
`LinearRegression` آبجیکٹ `fit`-نگ کے بعد ریگریشن کے تمام گتانک پر مشتمل ہوتا ہے، جن تک `.coef_` پراپرٹی کا استعمال کرتے ہوئے رسائی حاصل کی جا سکتی ہے۔ ہمارے معاملے میں، صرف ایک گتانک ہے، جو تقریباً `-0.017` ہونا چاہیے۔ اس کا مطلب ہے کہ وقت کے ساتھ قیمتیں تھوڑی کم ہوتی دکھائی دیتی ہیں، لیکن زیادہ نہیں، تقریباً 2 سینٹ فی دن۔ ہم ریگریشن کے Y-axis کے ساتھ انٹرسیکشن پوائنٹ تک بھی رسائی حاصل کر سکتے ہیں `lin_reg.intercept_` کا استعمال کرتے ہوئے - یہ ہمارے معاملے میں تقریباً `21` ہوگا، جو سال کے آغاز میں قیمت کو ظاہر کرتا ہے۔
`LinearRegression` آبجیکٹ `fit` کرنے کے بعد تمام ریگریشن کے کو ایفیشئنٹس پر مشتمل ہوتا ہے، جس تک `.coef_` پراپرٹی کے ذریعے رسائی حاصل کی جا سکتی ہے۔ ہمارے کیس میں، صرف ایک کو ایفیشئنٹ ہے، جو کہ تقریباً `-0.017` ہونا چاہیے۔ اس کا مطلب ہے کہ وقت کے ساتھ قیمتوں میں کچھ کمی آتی ہے، لیکن زیادہ نہیں، تقریباً روزانہ 2 سینٹ کے آس پاس۔ ہم ریگریشن کی Y-محور کے ساتھ انٹرسیکشن پوائنٹ تک `lin_reg.intercept_` کے ذریعے بھی رسائی حاصل کر سکتے ہیں - جو ہمارے کیس میں تقریباً `21` ہوگا، جو سال کی شروعات میں قیمت کی نشاندہی کرتا ہے۔
یہ دیکھنے کے لیے کہ ہمارا ماڈل کتنا درست ہے، ہم ٹیسٹ ڈیٹا سیٹ پر قیمتوں کی پیش گوئی کر سکتے ہیں، اور پھر یہ پیمائش کر سکتے ہیں کہ ہماری پیش گوئیاں متوقع اقدار کے کتنی قریب ہیں۔ یہ mean square error (MSE) میٹرکس کا استعمال کرتے ہوئے کیا جا سکتا ہے، جو متوقع اور پیش گوئی شدہ قدر کے درمیان تمام مربع فرق کا اوسط ہے۔
ہم دیکھ سکتے ہیں کہ ہمارا ماڈل کتنا درست ہے، ہم ایک ٹیسٹ ڈیٹا سیٹ پر قیمتوں کی پیش گوئی کر سکتے ہیں، اور پھر دیکھ سکتے ہیں کہ ہماری پیش گوئیاں متوقع قدروں کے کتنی قریب ہیں۔ یہ کام متوسط مربع غلطی (MSE) میٹرک کے ذریعے کیا جا سکتا ہے، جو متوقع اور پیش گوئی شدہ قیمت کے درمیان تمام مربع فرق کا اوسط ہے۔
```python
pred = lin_reg.predict(X_test)
@ -203,36 +227,38 @@ pred = lin_reg.predict(X_test)
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
```
ہماری غلطی تقریباً 2 پوائنٹس کے ارد گرد ہے، جو کہ ~17% ہے۔ یہ زیادہ اچھا نہیں ہے۔ ماڈل کے معیار کا ایک اور اشارہ **coefficient of determination** ہے، جسے اس طرح حاصل کیا جا سکتا ہے:
ہماری غلطی تقریباً 2 پوائنٹس کے آس پاس ہے، جو کہ ~17% ہے۔ زیادہ اچھا نہیں۔ ماڈل کے معیار کا ایک اور اشارہ **coefficient of determination** ہے، جو اس طرح حاصل کیا جا سکتا ہے:
```python
score = lin_reg.score(X_train,y_train)
print('Model determination: ', score)
```
اگر قدر 0 ہو، تو اس کا مطلب ہے کہ ماڈل ان پٹ ڈیٹا کو مدنظر نہیں رکھتا اور *بدترین لکیری پیش گو* کے طور پر کام کرتا ہے، جو صرف نتیجے کی اوسط قدر ہے۔ قدر 1 کا مطلب ہے کہ ہم تمام متوقع نتائج کو مکمل طور پر پیش گوئی کر سکتے ہیں۔ ہمارے معاملے میں، coefficient تقریباً 0.06 ہے، جو کہ کافی کم ہے۔
```
اگر یہ قدر 0 ہو تو اس کا مطلب ہے کہ ماڈل ان پٹ ڈیٹا کو مدنظر نہیں رکھتا، اور *بدترین خطی پیش گو* کے طور پر کام کرتا ہے، جو کہ بس نتیجے کی اوسط قدر ہوتی ہے۔ اگر قدر 1 ہو تو مطلب ہے کہ ہم تمام متوقع نتائج کو بالکل درست پیش گوئی کر سکتے ہیں۔ ہمارے کیس میں، کو ایفیشئنٹ تقریباً 0.06 ہے، جو کہ کافی کم ہے۔
ہم ٹیسٹ ڈیٹا کو ریگریشن لائن کے ساتھ بھی پلاٹ کر سکتے ہیں تاکہ بہتر طور پر دیکھ سکیں کہ ہمارے معاملے میں ریگریشن کیسے کام کرتا ہے:
ہم ریگریشن لائن کے ساتھ ٹیسٹ ڈیٹا کو بھی پلاٹ کر سکتے ہیں تاکہ یہ بہتر طور پر دیکھا جا سکے کہ ہمارا ریگریشن کس طرح کام کر رہا ہے:
```python
plt.scatter(X_test,y_test)
plt.plot(X_test,pred)
```
```
<img alt="Linear regression" src="../../../../translated_images/ur/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
## پولینومیل ریگریشن
## پولینومیل ریگریشن
لکیری ریگریشن کی ایک اور قسم پولینومیل ریگریشن ہے۔ کبھی کبھار متغیرات کے درمیان لکیری تعلق ہوتا ہے - جیسے کدو کا حجم جتنا بڑا ہوگا، قیمت اتنی زیادہ ہوگی - لیکن کبھی کبھار ان تعلقات کو ایک سیدھی لائن یا سطح کے طور پر پلاٹ نہیں کیا جا سکتا۔
دوسری قسم کی خطی رجریشن پولینومیل ریگریشن ہے۔ کبھی کبھی متغیرات کے درمیان ایک خطی تعلق ہوتا ہے - جتنا بڑا کدو حجم میں، اتنی زیادہ قیمت - لیکن بعض اوقات یہ تعلقات ایک طیارہ یا سیدھی لائن کی صورت میں ظاہر نہیں ہو سکتے۔
✅ یہاں [کچھ مزید مثالیں](https://online.stat.psu.edu/stat501/lesson/9/9.8) ہیں جو پولینومیل ریگریشن استعمال کر سکتی ہیں۔
✅ یہاں [مزید چند مثالیں](https://online.stat.psu.edu/stat501/lesson/9/9.8) موجود ہیں جن میں پولینومیل ریگریشن استعمال ہو سکتی ہے۔
تاریخ اور قیمت کے تعلق پر دوبارہ نظر ڈالیں۔ کیا یہ scatterplot ایسا لگتا ہے کہ اسے لازمی طور پر ایک سیدھی لائن کے ذریعے تجزیہ کیا جانا چاہیے؟ کیا قیمتیں اتار چڑھاؤ نہیں کر سکتیں؟ اس صورت میں، آپ پولینومیل ریگریشن آزما سکتے ہیں۔
تاریخ اور قیمت کے تعلق پر دوبارہ نظر ڈالیں۔ کیا یہ اسکیٹر پلاٹ واقعی ایک سیدھی لائن کے ذریعے تجزیہ کرنا ضروری ہے؟ کیا قیمتیں اتار چڑھاؤ نہیں کر سکتی؟ اس صورت میں، آپ پولینومیل ریگریشن آزما سکتے ہیں۔
✅ پولینومیلز ریاضیاتی اظہار ہیں جو ایک یا زیادہ متغیرات اور coefficients پر مشتمل ہو سکتے ہیں۔
✅ پولینومیل ریگریشن ریاضیاتی اظہار ہوتے ہیں جو ایک یا زیادہ متغیرات اور کو ایفیشئنٹس پر مشتمل ہو سکتے ہیں۔
پولینومیل ریگریشن ایک خمیدہ لائن بناتا ہے تاکہ غیر لکیری ڈیٹا کو بہتر طور پر فٹ کیا جا سکے۔ ہمارے معاملے میں، اگر ہم ان پٹ ڈیٹا میں `DayOfYear` متغیر کو مربع کریں، تو ہم اپنے ڈیٹا کو ایک parabolic curve کے ساتھ فٹ کر سکتے ہیں، جس کا ایک کم از کم نقطہ سال کے اندر ہوگا۔
پولینومیل ریگریشن ایک خم دار لائن تخلیق کرتی ہے تاکہ غیر خطی ڈیٹا کے لیے بہتر فٹ ہو سکے۔ ہمارے کیس میں، اگر ہم ان پٹ ڈیٹا میں ایک مربع `DayOfYear` متغیر شامل کریں، تو ہم اپنے ڈیٹا کو ایک یوریک نما منحنی کے ساتھ فٹ کر سکیں گے، جس کا ایک مخصوص مقام پر سال کے دوران کم سے کم ہوتا ہے۔
Scikit-learn ایک مفید [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) شامل کرتا ہے تاکہ ڈیٹا پروسیسنگ کے مختلف مراحل کو ایک ساتھ جوڑا جا سکے۔ **پائپ لائن** **estimators** کی ایک زنجیر ہے۔ ہمارے معاملے میں، ہم ایک پائپ لائن بنائیں گے جو پہلے ہمارے ماڈل میں پولینومیل فیچرز شامل کرے گی، اور پھر ریگریشن کو تربیت دے گی:
Scikit-learn ایک مددگار [پائپ لائن API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) فراہم کرتا ہے تاکہ ڈیٹا پراسیسنگ کے مختلف مراحل کو ملایا جا سکے۔ ایک **پائپ لائن** **اسٹی میٹرز** کی ایک زنجیر ہے۔ ہمارے کیس میں، ہم ایک پائپ لائن بنائیں گے جو پہلے پولینومیل خصوصیات ماڈل میں شامل کرے گا، اور پھر ریگریشن کو ٹرین کرے گا:
```python
from sklearn.preprocessing import PolynomialFeatures
@ -241,43 +267,43 @@ from sklearn.pipeline import make_pipeline
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
```
`PolynomialFeatures(2)` استعمال کرنے کا مطلب ہے کہ ہم ان پٹ ڈیٹا سے تمام دوسرے درجے کے پولینومیلز شامل کریں گے۔ ہمارے معاملے میں، یہ صرف `DayOfYear`<sup>2</sup> ہوگا، لیکن دو ان پٹ متغیرات X اور Y دیے گئے، یہ X<sup>2</sup>, XY اور Y<sup>2</sup> شامل کرے گا۔ اگر ہم چاہیں تو ہم اعلی درجے کے پولینومیلز بھی استعمال کر سکتے ہیں۔
```
`PolynomialFeatures(2)` کا استعمال مطلب ہے کہ ہم ان پٹ ڈیٹا سے تمام دوسرے درجے کے پولینومیلز شامل کریں گے۔ ہمارے کیس میں یہ صرف `DayOfYear`<sup>2</sup> ہوگا، لیکن اگر دو ان پٹ متغیرات X اور Y ہوں، تو یہ X<sup>2</sup>، XY، اور Y<sup>2</sup> شامل کرے گا۔ ہم چاہیں تو بلند درجے کے پولینومیلز بھی استعمال کر سکتے ہیں۔
پائپ لائنز کو اسی طرح استعمال کیا جا سکتا ہے جیسے اصل `LinearRegression` آبجیکٹ، یعنی ہم پائپ لائن کو `fit` کر سکتے ہیں، اور پھر `predict` استعمال کر کے پیش گوئی کے نتائج حاصل کر سکتے ہیں۔ یہاں گراف ہے جو ٹیسٹ ڈیٹا اور approximation curve دکھاتا ہے:
پائپ لائنز کو اصل `LinearRegression` آبجیکٹ کی طرح استعمال کیا جا سکتا ہے، یعنی ہم پائپ لائن کو `fit` کر سکتے ہیں، اور پھر پیش گوئیاں حاصل کرنے کے لیے `predict` استعمال کر سکتے ہیں۔ یہاں گراف ہے جو ٹیسٹ ڈیٹا اور اپروکسی میشن منحنی کو دکھاتا ہے:
<img alt="Polynomial regression" src="../../../../translated_images/ur/poly-results.ee587348f0f1f60b.webp" width="50%" />
پولینومیل ریگریشن استعمال کرتے ہوئے، ہم قدرے کم MSE اور زیادہ determination حاصل کر سکتے ہیں، لیکن زیادہ نہیں۔ ہمیں دیگر فیچرز کو مدنظر رکھنا ہوگا!
پولینومیل ریگریشن کا استعمال کرتے ہوئے، ہم تھوڑی کم MSE اور زیادہ کو ایفیشئنٹ آف ڈیٹرمنیشن حاصل کر سکتے ہیں، لیکن بہت زیادہ فرق نہیں۔ ہمیں دیگر خصوصیات کو بھی مدنظر رکھنا ہوگا!
> آپ دیکھ سکتے ہیں کہ کدو کی کم از کم قیمتیں کہیں ہالووین کے ارد گرد دیکھی جاتی ہیں۔ آپ اس کی وضاحت کیسے کریں گے؟
> آپ دیکھ سکتے ہیں کہ سب سے کم کدو کی قیمتیں تقریباً ہالووین کے ارد گرد دیکھی جاتی ہیں۔ آپ اس کی وضاحت کیسے کریں گے؟
🎃 مبارک ہو، آپ نے ایک ماڈل بنایا ہے جو پائی کدو کی قیمت کی پیش گوئی کرنے میں مدد کر سکتا ہے۔ آپ شاید تمام کدو کی اقسام کے لیے یہی طریقہ کار دہرا سکتے ہیں، لیکن یہ تھکا دینے والا ہوگا۔ آئیے اب سیکھتے ہیں کہ اپنے ماڈل میں کدو کی قسم کو کیسے مدنظر رکھا جائے!
🎃 مبارک ہو، آپ نے ایک ایسا ماڈل بنایا ہے جو پای کدو کی قیمت کی پیش گوئی میں مدد کر سکتا ہے۔ آپ شاید یہ عمل تمام قسم کے کدو کے لیے دہرائیں، لیکن یہ تھکا دینے والا ہوگا۔ اب سیکھیں کہ ہم اپنے ماڈل میں کدو کی قسم کو کیسے شامل کریں!
## کیٹیگوریکل فیچرز
## زمرہ جاتی خصوصیات (Categorical Features)
ایک مثالی دنیا میں، ہم مختلف کدو کی اقسام کے لیے قیمتوں کی پیش گوئی کرنے کے قابل ہونا چاہتے ہیں، ایک ہی ماڈل استعمال کرتے ہوئے۔ تاہم، `Variety` کالم `Month` جیسے کالمز سے کچھ مختلف ہے، کیونکہ اس میں غیر عددی اقدار شامل ہیں۔ ایسے کالمز کو **categorical** کہا جاتا ہے۔
ایک مثالی دنیا میں، ہم چاہتے ہیں کہ ہم مختلف کدو کی اقسام کے لیے قیمتیں ایک ہی ماڈل سے پیش گوئی کر سکیں۔ تاہم، `Variety` کالم دیگر کالموں جیسے `Month` سے کچھ مختلف ہے کیونکہ اس میں غیر عددی (non-numeric) اقدار ہوتی ہیں۔ ایسے کالمز کو **زمرہ جاتی** کہتے ہیں۔
[![ML for beginners - Categorical Feature Predictions with Linear Regression](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
> 🎥 اوپر دی گئی تصویر پر کلک کریں تاکہ کیٹیگوریکل فیچرز کے استعمال پر ایک مختصر ویڈیو دیکھ سکیں۔
> 🎥 اوپر دی گئی تصویر پر کلک کریں تاکہ زمرہ جاتی خصوصیات کے استعمال کا مختصر ویڈیو جائزہ دیکھا جا سکے۔
یہاں آپ دیکھ سکتے ہیں کہ اوسط قیمت قسم پر کیسے منحصر ہے:
یہاں آپ دیکھ سکتے ہیں کہ اوسط قیمت کس طرح قسم پر منحصر ہے:
<img alt="Average price by variety" src="../../../../translated_images/ur/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
قسم کو مدنظر رکھنے کے لیے، ہمیں پہلے اسے عددی شکل میں تبدیل کرنا ہوگا، یا **encode** کرنا ہوگا۔ ہم اسے کرنے کے کئی طریقے ہیں:
قسم کو مدنظر رکھنے کے لیے، ہمیں پہلے اسے عددی صورت میں تبدیل کرنا یا **انکوڈ** کرنا ہوگا۔ اس کے لیے چند طریقے ہیں:
* سادہ **numeric encoding** مختلف اقسام کی ایک جدول بنائے گا، اور پھر قسم کے نام کو اس جدول میں ایک انڈیکس سے بدل دے گا۔ یہ لکیری ریگریشن کے لیے بہترین خیال نہیں ہے، کیونکہ لکیری ریگریشن انڈیکس کی اصل عددی قدر کو لیتا ہے، اور اسے نتیجے میں شامل کرتا ہے، کسی coefficient سے ضرب دے کر۔ ہمارے معاملے میں، انڈیکس نمبر اور قیمت کے درمیان تعلق واضح طور پر غیر لکیری ہے، چاہے ہم یہ یقینی بنائیں کہ انڈیکسز کسی مخصوص ترتیب میں ہیں۔
* **One-hot encoding** `Variety` کالم کو 4 مختلف کالمز سے بدل دے گا، ہر قسم کے لیے ایک۔ ہر کالم میں `1` ہوگا اگر متعلقہ قطار دی گئی قسم کی ہو، اور `0` ورنہ۔ اس کا مطلب ہے کہ لکیری ریگریشن میں چار coefficients ہوں گے، ہر کدو کی قسم کے لیے ایک، جو اس مخصوص قسم کے لیے "ابتدائی قیمت" (یا "اضافی قیمت") کے لیے ذمہ دار ہوگا۔
* سادہ **عددی انکوڈنگ** میں مختلف اقسام کی ایک جدول بنائی جاتی ہے، اور پھر قسم کے نام کی جگہ اس جدول میں اس کا انڈیکس لے لیتا ہے۔ یہ خطی ریگریشن کے لیے بہترین خیال نہیں ہے، کیونکہ خطی ریگریشن انڈیکس کی اصل عددی قدر لیتا ہے اور کسی کو ایفیشئنٹ سے ضرب دے کر نتیجہ میں شامل کر دیتا ہے۔ ہمارے کیس میں انڈیکس نمبر اور قیمت کے درمیان تعلق واضح طور پر غیر خطی ہے، چاہے ہم انڈیکس کو کسی مخصوص ترتیب میں رکھیں۔
* **ون ہاٹ انکوڈنگ** `Variety` کالم کو 4 مختلف کالموں میں تبدیل کر دے گی، ہر قسم کے لیے ایک۔ ہر کالم میں `1` ہوگا اگر متعلقہ قطار مخصوص قسم کی ہو، ورنہ `0` ہوگا۔ اس کا مطلب ہے کہ خطی ریگریشن میں چار کو ایفیشئنٹس ہوں گے، ہر کدو کی قسم کے لیے ایک، جو اس خاص قسم کی "نکڑ قیمت" (یا اضافی قیمت) کے لیے ذمہ دار ہوگا۔
نیچے دیا گیا کوڈ دکھاتا ہے کہ ہم قسم کو one-hot encode کیسے کر سکتے ہیں:
ذیل میں کوڈ دکھاتا ہے کہ ہم قسم کو ون ہاٹ انکوڈ کیسے کر سکتے ہیں:
```python
pd.get_dummies(new_pumpkins['Variety'])
```
```
ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE
----|-----------|-----------|--------------------------|----------
70 | 0 | 0 | 0 | 1
@ -289,14 +315,14 @@ pd.get_dummies(new_pumpkins['Variety'])
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
one-hot encoded قسم کو ان پٹ کے طور پر استعمال کرتے ہوئے لکیری ریگریشن کو تربیت دینے کے لیے، ہمیں صرف `X` اور `y` ڈیٹا کو صحیح طریقے سے initialize کرنے کی ضرورت ہے:
ون ہاٹ انکوڈ شدہ قسم کو ان پٹ کے طور پر استعمال کرتے ہوئے خطی ریگریشن کو ٹرین کرنے کے لیے، ہمیں صرف `X` اور `y` ڈیٹا درست طریقے سے initialize کرنا ہوگا:
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
باقی کوڈ وہی ہے جو ہم نے اوپر لکیری ریگریشن کو تربیت دینے کے لیے استعمال کیا۔ اگر آپ اسے آزمائیں، تو آپ دیکھیں گے کہ mean squared error تقریباً وہی ہے، لیکن ہمیں بہت زیادہ coefficient of determination (~77%) ملتا ہے۔ مزید درست پیش گوئی حاصل کرنے کے لیے، ہم مزید کیٹیگوریکل فیچرز کو مدنظر رکھ سکتے ہیں، اور عددی فیچرز جیسے `Month` یا `DayOfYear` کو بھی۔ ایک بڑے فیچرز کے array کو حاصل کرنے کے لیے، ہم `join` استعمال کر سکتے ہیں:
```
باقی کوڈ وہی ہے جو ہم نے پہلے خطی ریگریشن تربیت کے لیے استعمال کیا تھا۔ اگر آپ آزمائیں، تو دیکھیں گے کہ متوسط مربع غلطی تقریباً برابر ہے، لیکن ہمیں کو ایفیشئنٹ آف ڈیٹرمنیشن زیادہ ملتا ہے (~77%)۔ مزید درست پیش گوئی کے لیے، ہم مزید زمرہ جاتی خصوصیات اور عددی خصوصیات جیسے `Month` یا `DayOfYear` کو مدنظر لے سکتے ہیں۔ بڑی خصوصیات کے ایک مجموعے کو حاصل کرنے کے لیے ہم `join` استعمال کر سکتے ہیں:
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@ -304,68 +330,70 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
.join(pd.get_dummies(new_pumpkins['City'])) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
```
یہاں ہم `City` اور `Package` قسم کو بھی مدنظر رکھتے ہیں، جو ہمیں MSE 2.84 (10%) اور determination 0.94 دیتا ہے!
```
یہاں ہم `City` اور `Package` کی قسم کو بھی مدنظر لیتے ہیں، جس سے ہمیں MSE 2.84 (10%) اور کو ایفیشئنٹ آف ڈیٹرمنیشن 0.94 ملتا ہے!
## سب کچھ ایک ساتھ رکھنا
## سب کچھ ملانا
بہترین ماڈل بنانے کے لیے، ہم اوپر دی گئی مثال سے مشترکہ (one-hot encoded کیٹیگوریکل + عددی) ڈیٹا کو پولینومیل ریگریشن کے ساتھ استعمال کر سکتے ہیں۔ آپ کی سہولت کے لیے یہاں مکمل کوڈ ہے:
بہترین ماڈل بنانے کے لیے، ہم مشترکہ (ون ہاٹ انکوڈ کی گئی زمرہ جاتی + عددی) ڈیٹا کو پولینومیل ریگریشن کے ساتھ استعمال کر سکتے ہیں۔ آپ کی سہولت کے لیے مکمل کوڈ یہ ہے:
```python
# set up training data
# تربیتی ڈیٹا مرتب کریں
X = pd.get_dummies(new_pumpkins['Variety']) \
.join(new_pumpkins['Month']) \
.join(pd.get_dummies(new_pumpkins['City'])) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
# make train-test split
# تربیت اور ٹیسٹ کے لیے تقسیم کریں
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# setup and train the pipeline
# پائپ لائن ترتیب دیں اور تربیت دیں
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
# predict results for test data
# ٹیسٹ ڈیٹا کے لیے نتائج کی پیشن گوئی کریں
pred = pipeline.predict(X_test)
# calculate MSE and determination
# MSE اور تعین کریں حساب لگائیں
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
score = pipeline.score(X_train,y_train)
print('Model determination: ', score)
```
یہ ہمیں تقریباً 97% کا بہترین determination coefficient اور MSE=2.23 (~8% پیش گوئی کی غلطی) دے گا۔
```
یہ تقریباً 97% تک بہترین کو ایفیشئنٹ آف ڈیٹرمنیشن اور MSE=2.23 (~8% پیش گوئی غلطی) دے گا۔
| ماڈل | MSE | Determination |
| ماڈل | MSE | کو ایفیشئنٹ آف ڈیٹرمنیشن |
|-------|-----|---------------|
| `DayOfYear` Linear | 2.77 (17.2%) | 0.07 |
| `DayOfYear` Polynomial | 2.73 (17.0%) | 0.08 |
| `Variety` Linear | 5.24 (19.7%) | 0.77 |
| All features Linear | 2.84 (10.5%) | 0.94 |
| All features Polynomial | 2.23 (8.25%) | 0.97 |
| `DayOfYear` خطی | 2.77 (17.2%) | 0.07 |
| `DayOfYear` پولینومیل | 2.73 (17.0%) | 0.08 |
| `Variety` خطی | 5.24 (19.7%) | 0.77 |
| تمام خصوصیات خطی | 2.84 (10.5%) | 0.94 |
| تمام خصوصیات پولینومیل | 2.23 (8.25%) | 0.97 |
🏆 شاباش! آپ نے ایک سبق میں چار ریگریشن ماڈلز بنائے، اور ماڈل کے معیار کو 97% تک بہتر کیا۔ ریگریشن کے آخری حصے میں، آپ سیکھیں گے کہ زمرے کا تعین کرنے کے لیے Logistic Regression کیسے استعمال کریں۔
🏆 عمدہ! آپ نے ایک ہی سبق میں چار ریگریشن ماڈلز بنائے، اور ماڈل کا معیار 97% تک بہتر بنایا۔ ریگریشن کے آخری حصے میں آپ لاجسٹک ریگریشن کے بارے میں جانیں گے تاکہ زمرہ جات کی تعیین کی جا سکے۔
---
## 🚀چیلنج
---
## 🚀چیلنج
اس نوٹ بک میں مختلف متغیرات کو آزمائیں تاکہ دیکھ سکیں کہ correlation ماڈل کی درستگی سے کیسے مطابقت رکھتا ہے۔
اس نوٹ بک میں مختلف متغیرات کو آزما کر دیکھیں کہ کوریلیشن ماڈل کی درستگی کے ساتھ کیسے متوازی ہے۔
## [لیکچر کے بعد کا کوئز](https://ff-quizzes.netlify.app/en/ml/)
## جائزہ اور خود مطالعہ
## جائزہ اور خود مطالعہ
اس سبق میں ہم نے لکیری ریگریشن کے بارے میں سیکھا۔ ریگریشن کی دیگر اہم اقسام بھی ہیں۔ Stepwise, Ridge, Lasso اور Elasticnet تکنیک کے بارے میں پڑھیں۔ مزید سیکھنے کے لیے ایک اچھا کورس [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning) ہے۔
اس سبق میں ہم نے خطی ریگریشن کے بارے میں سیکھا۔ دیگر اہم اقسام کی ریگریشن بھی موجود ہیں۔ Stepwise، Ridge، Lasso اور Elasticnet تکنیکوں کے بارے میں پڑھیں۔ مزید سیکھنے کے لیے ایک اچھا کورس [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning) ہے۔
## اسائنمنٹ
## اسائنمنٹ
[ماڈل بنائیں](assignment.md)
[ایک ماڈل بنائیں](assignment.md)
---
**ڈسکلیمر**:
یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا غیر درستیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ ہم اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے ذمہ دار نہیں ہیں۔
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**ڈسکلیمر**:
اس دستاویز کا ترجمہ AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کے ذریعے کیا گیا ہے۔ اگرچہ ہم درستگی کی کوشش کرتے ہیں، براہ کرم آگاہ رہیں کہ خودکار تراجم میں غلطیاں یا غلط فہمیاں ہو سکتی ہیں۔ اصل دستاویز اپنی مادری زبان میں مستند ذریعہ سمجھا جائے گا۔ اہم معلومات کے لیے پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمہ کے استعمال سے پیدا ہونے والے کسی بھی غلط فہمی یا غلط تعبیر کی ذمہ داری ہم پر نہیں ہوگی۔
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,44 +1,44 @@
# کھانوں کی درجہ بندی 2
# کھانوں کے تصنیف کار 2
اس دوسرے درجہ بندی کے سبق میں، آپ عددی ڈیٹا کو درجہ بندی کرنے کے مزید طریقے دریافت کریں گے۔ آپ یہ بھی سیکھیں گے کہ ایک درجہ بندی کنندہ کو دوسرے پر منتخب کرنے کے کیا اثرات ہو سکتے ہیں۔
اس دوسرے درجہ بندی کے سبق میں، آپ عددی ڈیٹا کو درجہ بند کرنے کے مزید طریقے دریافت کریں گے۔ آپ یہ بھی سیکھیں گے کہ ایک درجہ بند کرنے والے کو دوسرے پر منتخب کرنے کے نتائج کیا ہوتے ہیں۔
## [لیکچر سے پہلے کا کوئز](https://ff-quizzes.netlify.app/en/ml/)
## [پری لیکچر کوئز](https://ff-quizzes.netlify.app/en/ml/)
### پیشگی شرط
### پیشگی ضرورت
ہم فرض کرتے ہیں کہ آپ نے پچھلے اسباق مکمل کر لیے ہیں اور آپ کے پاس `data` فولڈر میں ایک صاف شدہ ڈیٹاسیٹ موجود ہے جس کا نام _cleaned_cuisines.csv_ ہے، جو اس 4-سبق والے فولڈر کے روٹ میں موجود ہے۔
ہم فرض کرتے ہیں کہ آپ نے پچھلے اسباق مکمل کر لیے ہیں اور آپ کے `data` فولڈر میں ایک صاف شدہ ڈیٹاسیٹ ہے جس کا نام _cleaned_cuisines.csv_ ہے جو اس چار اسباق کے فولڈر کی جڑ میں موجود ہے۔
### تیاری
ہم نے آپ کے _notebook.ipynb_ فائل کو صاف شدہ ڈیٹاسیٹ کے ساتھ لوڈ کیا ہے اور اسے X اور y ڈیٹافریمز میں تقسیم کیا ہے، جو ماڈل بنانے کے عمل کے لیے تیار ہیں۔
ہم نے آپ کی _notebook.ipynb_ فائل میں صاف شدہ ڈیٹاسیٹ لوڈ کر لیا ہے اور اسے X اور y ڈیٹافریمز میں تقسیم کر دیا ہے، تاکہ ماڈل بنانے کے عمل کے لیے تیار ہو۔
## ایک درجہ بندی کا نقشہ
پہلے، آپ نے مائیکروسافٹ کے چیٹ شیٹ کا استعمال کرتے ہوئے ڈیٹا کو درجہ بندی کرنے کے مختلف اختیارات کے بارے میں سیکھا۔ Scikit-learn ایک مشابہ لیکن زیادہ تفصیلی چیٹ شیٹ پیش کرتا ہے جو آپ کے تخمینے (درجہ بندی کنندگان کے لیے ایک اور اصطلاح) کو مزید محدود کرنے میں مدد دے سکتا ہے:
پہلے آپ نے سیکھا کہ مائیکروسافٹ کے چیٹ شیٹ کی مدد سے ڈیٹا کو درجہ بندی کرنے کے مختلف اختیارات ہوتے ہیں۔ سکائکیٹ-لرن ایک مماثل، لیکن مزید مفصل چیٹ شیٹ پیش کرتا ہے جو آپ کو اپنے ایسٹی میٹرز (درجہ بندی کرنے والوں کے لیے دوسرا اصطلاح) کو مزید محدود کرنے میں مدد دے سکتا ہے:
![Scikit-learn کا ML نقشہ](../../../../4-Classification/3-Classifiers-2/images/map.png)
> ٹپ: [اس نقشے کو آن لائن دیکھیں](https://scikit-learn.org/stable/tutorial/machine_learning_map/) اور راستے پر کلک کر کے دستاویزات پڑھیں۔
![ML Map from Scikit-learn](../../../../translated_images/ur/map.e963a6a51349425a.webp)
> Tip: [اس نقشے کو آن لائن ملاحظہ کریں](https://scikit-learn.org/stable/tutorial/machine_learning_map/) اور راہ پر کلک کر کے دستاویزات پڑھیں۔
### منصوبہ
یہ نقشہ اس وقت بہت مددگار ہوتا ہے جب آپ کو اپنے ڈیٹا کی واضح سمجھ ہو، کیونکہ آپ اس کے راستوں پر چل کر فیصلہ کر سکتے ہیں:
یہ نقشہ بہت مددگار ہے جب آپ اپنے ڈیٹا کو اچھی طرح سمجھ چکے ہوں، کیونکہ آپ اس کے راستوں پر 'چل' کر فیصلہ کر سکتے ہیں:
- ہمارے پاس >50 نمونے ہیں
- ہم ایک زمرہ کی پیش گوئی کرنا چاہتے ہیں
- ہمارے پاس لیبل شدہ ڈیٹا ہے
- ہمارے پاس 100K سے کم نمونے ہیں
- ✨ ہم ایک Linear SVC منتخب کر سکتے ہیں
- اگر یہ کام نہ کرے، چونکہ ہمارے پاس عددی ڈیٹا ہے
- ہم ✨ KNeighbors Classifier آزما سکتے ہیں
- اگر یہ کام نہ کرے، تو ✨ SVC اور ✨ Ensemble Classifiers آزمائیں
- ہمارے پاس >50 نمونے ہیں
- ہم ایک زمرہ پیش گوئی کرنا چاہتے ہیں
- ہمارے پاس لیبل شدہ ڈیٹا موجود ہے
- ہمارے پاس 100K سے کم نمونے ہیں
- ✨ ہم ایک لینیئر SVC منتخب کر سکتے ہیں
- اگر یہ کام نہیں کرتا، چونکہ ہمارے پاس عددی ڈیٹا ہے
- ہم ✨ KNeighbors Classifier آزما سکتے ہیں
- اگر یہ بھی کام نہ کرے، تو ✨ SVC اور ✨ Ensemble Classifiers آزمائیں
یہ ایک بہت مددگار راستہ ہے جس پر عمل کیا جا سکتا ہے۔
یہ ایک بہت مددگار راستہ ہے جس پر عمل کرنا چاہیے۔
## مشق - ڈیٹا کو تقسیم کریں
اس راستے پر عمل کرتے ہوئے، ہمیں کچھ لائبریریاں درآمد کرنی چاہئیں۔
اس راستے کی پیروی کرتے ہوئے، ہمیں شروع میں کچھ لائبریریاں امپورٹ کرنی چاہئیں۔
1. مطلوبہ لائبریریاں درآمد کریں:
1. ضروری لائبریریاں امپورٹ کریں:
```python
from sklearn.neighbors import KNeighborsClassifier
@ -50,31 +50,31 @@
import numpy as np
```
1. اپنے تربیتی اور ٹیسٹ ڈیٹا کو تقسیم کریں:
1. اپنے ٹریننگ اور ٹیسٹ ڈیٹا کو تقسیم کریں:
```python
X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
X_train, X_test, y_train, y_test = train_test_split(cuisines_features_df, cuisines_label_df, test_size=0.3)
```
## Linear SVC درجہ بندی کنندہ
## لینیئر SVC درجہ بند کرنے والا
Support-Vector Clustering (SVC) مشین لرننگ تکنیکوں کے Support-Vector مشینز خاندان کا حصہ ہے (نیچے ان کے بارے میں مزید جانیں)۔ اس طریقے میں، آپ لیبلز کو کلسٹر کرنے کے لیے ایک 'kernel' منتخب کر سکتے ہیں۔ 'C' پیرامیٹر 'regularization' کو ظاہر کرتا ہے جو پیرامیٹرز کے اثر کو منظم کرتا ہے۔ kernel [کئی](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC) میں سے ایک ہو سکتا ہے؛ یہاں ہم اسے 'linear' پر سیٹ کرتے ہیں تاکہ Linear SVC کا فائدہ اٹھایا جا سکے۔ Probability ڈیفالٹ میں 'false' ہوتی ہے؛ یہاں ہم اسے 'true' پر سیٹ کرتے ہیں تاکہ probability estimates حاصل کر سکیں۔ ہم random state کو '0' پر سیٹ کرتے ہیں تاکہ ڈیٹا کو شفل کر کے probabilities حاصل کی جا سکیں۔
سپورٹ ویکٹر کلسٹرنگ (SVC) مشین لرننگ کی سپورٹ ویکٹر مشینوں کے خاندان کی ایک شاخ ہے (نیچے ان کے بارے میں مزید جانیں)۔ اس طریقے میں، آپ 'کرنل' منتخب کر سکتے ہیں جو لیبلز کو کلسٹر کرنے کا طریقہ فیصلہ کرتا ہے۔ 'C' پیرامیٹر سے مراد 'ریگولرائزیشن' ہے جو پیرامیٹرز کے اثر کو کنٹرول کرتا ہے۔ کرنل متعدد میں سے ایک ہو سکتا ہے [کئی](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC)؛ یہاں ہم اسے 'linear' پر سیٹ کرتے ہیں تاکہ لینیئر SVC کا فائدہ اٹھایا جا سکے۔ probability کی ڈیفالٹ قدر 'false' ہے؛ یہاں ہم اسے 'true' کرتے ہیں تاکہ احتمال کے تخمینے حاصل کیے جا سکیں۔ ہم رینڈم اسٹیٹ کو '0' پر سیٹ کرتے ہیں تاکہ ڈیٹا کو ترتیب دے کر احتمال حاصل کیے جا سکیں۔
### مشق - Linear SVC کا اطلاق کریں
### مشق - لینیئر SVC اپلائی کریں
ایک درجہ بندی کنندگان کی صف بنائیں۔ آپ اس صف میں بتدریج اضافہ کریں گے جب ہم ٹیسٹ کریں گے۔
کلاسفیئرز کی ایک اری بنائیں۔ جیسے جیسے ہم تجربہ کریں گے، آپ اس اری میں مزید شامل کریں گے۔
1. Linear SVC سے شروع کریں:
1. ایک Linear SVC سے شروع کریں:
```python
C = 10
# Create different classifiers.
# مختلف کلسیفائرز بنائیں۔
classifiers = {
'Linear SVC': SVC(kernel='linear', C=C, probability=True,random_state=0)
}
```
2. Linear SVC کا استعمال کرتے ہوئے اپنے ماڈل کو تربیت دیں اور رپورٹ پرنٹ کریں:
2. اپنی ماڈل کی تربیت کریں اور رپورٹ پرنٹ کریں:
```python
n_classifiers = len(classifiers)
@ -105,21 +105,21 @@ Support-Vector Clustering (SVC) مشین لرننگ تکنیکوں کے Support-
weighted avg 0.79 0.79 0.79 1199
```
## K-Neighbors درجہ بندی کنندہ
## K-Neighbors درجہ بند کرنے والا
K-Neighbors مشین لرننگ کے "پڑوسیوں" خاندان کا حصہ ہے، جو سپروائزڈ اور ان سپروائزڈ لرننگ دونوں کے لیے استعمال کیا جا سکتا ہے۔ اس طریقے میں، ایک پہلے سے طے شدہ تعداد میں پوائنٹس بنائے جاتے ہیں اور ڈیٹا ان پوائنٹس کے ارد گرد جمع کیا جاتا ہے تاکہ ڈیٹا کے لیے عمومی لیبلز کی پیش گوئی کی جا سکے۔
K-Neighbors مشین لرننگ کے "نیبرز" خاندان کا حصہ ہے، جو نگرانی شدہ اور غیر نگرانی شدہ دونوں طرح کی تعلیم کے لیے استعمال ہو سکتا ہے۔ اس طریقے میں، ایک پری ڈیفائن کردہ تعداد میں پوائنٹس بنائے جاتے ہیں اور ڈیٹا ان پوائنٹس کے گرد اکٹھا کیا جاتا ہے تاکہ متعلقہ لیبلز کی پیش گوئی ہو سکے۔
### مشق - K-Neighbors درجہ بندی کنندہ کا اطلاق کریں
### مشق - K-Neighbors درجہ بند کرنے والا اپلائی کریں
پچھلا درجہ بندی کنندہ اچھا تھا اور ڈیٹا کے ساتھ اچھا کام کیا، لیکن شاید ہم بہتر درستگی حاصل کر سکیں۔ K-Neighbors درجہ بندی کنندہ آزمائیں۔
پچھلا درجہ بند کرنے والا اچھا تھا اور ڈیٹا کے ساتھ اچھی طرح کام کرتا تھا، لیکن شاید ہم بہتر درستگی حاصل کر سکیں۔ K-Neighbors درجہ بند کرنے والا آزمانے کی کوشش کریں۔
1. اپنے درجہ بندی کنندگان کی صف میں ایک لائن شامل کریں (Linear SVC آئٹم کے بعد ایک کاما شامل کریں):
1. اپنے کلاسفیئرز کی اری میں ایک لائن شامل کریں (Linear SVC آئٹم کے بعد کاما ڈالیں):
```python
'KNN classifier': KNeighborsClassifier(C),
```
نتیجہ تھوڑا خراب ہے:
نتیجہ تھوڑا کم ہے:
```output
Accuracy (train) for KNN classifier: 73.8%
@ -138,21 +138,21 @@ K-Neighbors مشین لرننگ کے "پڑوسیوں" خاندان کا حصہ
✅ [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors) کے بارے میں جانیں
## Support Vector درجہ بندی کنندہ
## سپورٹ ویکٹر کلاسفیئر
Support-Vector درجہ بندی کنندگان مشین لرننگ کے [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine) خاندان کا حصہ ہیں جو درجہ بندی اور ریگریشن کے کاموں کے لیے استعمال ہوتے ہیں۔ SVMs "تربیتی مثالوں کو خلا میں پوائنٹس پر نقشہ بناتے ہیں" تاکہ دو زمروں کے درمیان فاصلہ زیادہ سے زیادہ ہو۔ بعد میں ڈیٹا کو اس خلا میں نقشہ بنایا جاتا ہے تاکہ ان کے زمرے کی پیش گوئی کی جا سکے۔
سپورٹ ویکٹر کلاسفیئر مشین لرننگ کے [سپورٹ ویکٹر مشین](https://wikipedia.org/wiki/Support-vector_machine) خاندان کا حصہ ہیں جو درجہ بندی اور ریگریشن کے کاموں کے لیے استعمال ہوتے ہیں۔ SVM "ٹریننگ مثالوں کو خلا میں نقاط پر نقشہ کرتے ہیں" تاکہ دو زمروں کے درمیان فاصلے کو زیادہ سے زیادہ کیا جا سکے۔ بعد کا ڈیٹا اس خلاء میں نقشہ کیا جاتا ہے تاکہ اس کی کٹیگری کی پیش گوئی کی جا سکے۔
### مشق - Support Vector درجہ بندی کنندہ کا اطلاق کریں
### مشق - سپورٹ ویکٹر کلاسفیئر اپلائی کریں
Support Vector درجہ بندی کنندہ کے ساتھ تھوڑی بہتر درستگی حاصل کرنے کی کوشش کریں۔
چلیں سپورٹ ویکٹر کلاسفیئر کے ساتھ بہتر درستگی کی کوشش کرتے ہیں۔
1. K-Neighbors آئٹم کے بعد ایک کاما شامل کریں، اور پھر یہ لائن شامل کریں:
1. K-Neighbors آئٹم کے بعد کاما لگائیں، پھر یہ لائن شامل کریں:
```python
'SVC': SVC(),
```
نتیجہ کافی اچھا ہے!
نتیجہ بہت اچھا ہے!
```output
Accuracy (train) for SVC: 83.2%
@ -171,9 +171,9 @@ Support Vector درجہ بندی کنندہ کے ساتھ تھوڑی بہتر د
✅ [Support-Vectors](https://scikit-learn.org/stable/modules/svm.html#svm) کے بارے میں جانیں
## Ensemble درجہ بندی کنندگان
## Ensemble Classifiers
چاہے پچھلا ٹیسٹ کافی اچھا تھا، آئیے راستے کے آخر تک چلتے ہیں۔ آئیے کچھ 'Ensemble Classifiers' آزمائیں، خاص طور پر Random Forest اور AdaBoost:
چلیں اس راستے کو آخری حد تک آزماتے ہیں، اگرچہ پچھلا ٹیسٹ کافی اچھا تھا۔ آئیے کچھ 'Ensemble Classifiers' آزماتے ہیں، خاص طور پر Random Forest اور AdaBoost:
```python
'RFST': RandomForestClassifier(n_estimators=100),
@ -212,29 +212,31 @@ weighted avg 0.73 0.72 0.72 1199
✅ [Ensemble Classifiers](https://scikit-learn.org/stable/modules/ensemble.html) کے بارے میں جانیں
مشین لرننگ کا یہ طریقہ "کئی بنیادی تخمینے کے پیش گوئیوں کو یکجا کرتا ہے" تاکہ ماڈل کے معیار کو بہتر بنایا جا سکے۔ ہمارے مثال میں، ہم نے Random Trees اور AdaBoost کا استعمال کیا۔
مشین لرننگ کا یہ طریقہ "کئی بنیادی ایسٹی میٹرز کی پیش گوئیوں کو جوڑتا ہے" تاکہ ماڈل کے معیار کو بہتر بنایا جا سکے۔ ہمارے مثال میں، ہم نے Random Trees اور AdaBoost استعمال کیے۔
- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest)، ایک اوسطی طریقہ، 'فیصلہ درختوں' کا ایک 'جنگل' بناتا ہے جس میں بے ترتیب پن شامل ہوتا ہے تاکہ اوورفٹنگ سے بچا جا سکے۔ n_estimators پیرامیٹر درختوں کی تعداد پر سیٹ کیا جاتا ہے۔
- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest)، ایک اوسط نکالنے کا طریقہ، 'فیصلہ کن درختوں' کا ایک 'جنگل' بناتا ہے جو بے ترتیبی سے بھرپور ہوتا ہے تاکہ اوورفٹنگ سے بچا جا سکے۔ n_estimators پیرامیٹر کو درختوں کی تعداد پر سیٹ کیا جاتا ہے۔
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) ایک ڈیٹاسیٹ پر درجہ بندی کنندہ کو فٹ کرتا ہے اور پھر اسی ڈیٹاسیٹ پر اس درجہ بندی کنندہ کی کاپیاں فٹ کرتا ہے۔ یہ غلط طور پر درجہ بند اشیاء کے وزن پر توجہ مرکوز کرتا ہے اور اگلے درجہ بندی کنندہ کے لیے فٹ کو ایڈجسٹ کرتا ہے تاکہ درستگی ہو۔
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) ایک کلاسفیئر کو ڈیٹاسیٹ پر فٹ کرتا ہے اور پھر اسی ڈیٹاسیٹ پر اس کلاسفیئر کی کاپیاں فٹ کرتا ہے۔ یہ غلط درجہ بند کردہ اشیاء کے وزن پر توجہ دیتا ہے اور اگلے کلاسفیئر کی فٹنگ کو درست کرنے کے لیے ایڈجسٹ کرتا ہے۔
---
## 🚀چیلنج
ان میں سے ہر تکنیک کے پاس بہت سے پیرامیٹرز ہیں جنہیں آپ ایڈجسٹ کر سکتے ہیں۔ ہر ایک کے ڈیفالٹ پیرامیٹرز پر تحقیق کریں اور سوچیں کہ ان پیرامیٹرز کو ایڈجسٹ کرنے کا ماڈل کے معیار پر کیا اثر پڑے گا۔
ان تمام تکنیکوں کے بہت سے پیرامیٹرز ہوتے ہیں جنہیں آپ ایڈجسٹ کر سکتے ہیں۔ ہر ایک کے ڈیفالٹ پیرامیٹرز پر تحقیق کریں اور غور کریں کہ ان پیرامیٹرز کی تبدیلی ماڈل کے معیار کو کیسے متاثر کرے گی۔
## [لیکچر کے بعد کا کوئز](https://ff-quizzes.netlify.app/en/ml/)
## [پوسٹ لیکچر کوئز](https://ff-quizzes.netlify.app/en/ml/)
## جائزہ اور خود مطالعہ
ان اسباق میں بہت زیادہ اصطلاحات ہیں، اس لیے ایک لمحہ نکال کر [اس فہرست](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) کا جائزہ لیں جو مفید اصطلاحات پر مشتمل ہے!
ان اسباق میں بہت سی اصطلاحات ہوتی ہیں، لہذا ایک منٹ نکال کر [اس فہرست](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) کا جائزہ لیں جس میں مفید اصطلاحات ہیں!
## اسائنمنٹ
[پیرامیٹر پلے](assignment.md)
[Parameter play](assignment.md)
---
**ڈسکلیمر**:
یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا غیر درستیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ ہم اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے ذمہ دار نہیں ہیں۔
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**دستخطی دستبرداری**:
اس دستاویز کا ترجمہ AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کے ذریعے کیا گیا ہے۔ اگرچہ ہم درستی کی کوشش کرتے ہیں، براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا نقائص ہو سکتے ہیں۔ اصل دستاویز اپنی مادری زبان میں ہی معتبر ماخذ سمجھی جانی چاہیے۔ اہم معلومات کے لیے پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کی ذمہ داری ہم پر نہیں ہوگی۔
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -4,7 +4,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# تعمیر درجہ بندی ماڈل\n"
"# تعلیمی ماڈل بنائیں\n"
]
},
{
@ -116,15 +116,15 @@
}
],
"source": [
"cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_feature_df.head()"
"cuisines_features_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_features_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**ڈسکلیمر**: \nیہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز، جو اس کی اصل زبان میں ہے، کو مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**ڈس کلیمر**:\nاس دستاویز کا ترجمہ مصنوعی ذہانت کی ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کے ذریعے کیا گیا ہے۔ اگرچہ ہم درستگی کے لیے کوشاں ہیں، براہ کرم آگاہ رہیں کہ خودکار ترجموں میں غلطیاں یا بے قاعدگیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی مادری زبان میں بطور مستند ماخذ سمجھنا چاہیے۔ اہم معلومات کے لیے پیشہ ور انسانی ترجمہ تجویز کیا جاتا ہے۔ ہم اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے ذمہ دار نہیں ہیں۔\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -152,12 +152,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "15a83277036572e0773229b5f21c1e12",
"translation_date": "2025-08-29T15:25:51+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "ur"
}
},
"nbformat": 4,

@ -2,7 +2,7 @@
"cells": [
{
"source": [
"مزید درجہ بندی کے ماڈلز بنائیں\n"
"# مزید درجہ بندی کے ماڈلز بنائیں\n"
],
"cell_type": "markdown",
"metadata": {}
@ -116,15 +116,15 @@
}
],
"source": [
"cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_feature_df.head()"
"cuisines_features_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_features_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"مختلف درجہ بندی کرنے والے آزمائیں\n"
"# مختلف درجہ بند کرنے والے آزما کر دیکھیں\n"
]
},
{
@ -148,7 +148,7 @@
"metadata": {},
"outputs": [],
"source": [
"X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)"
"X_train, X_test, y_train, y_test = train_test_split(cuisines_features_df, cuisines_label_df, test_size=0.3)"
]
},
{
@ -263,7 +263,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**ڈسکلیمر**: \nیہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز، جو اس کی مقامی زبان میں ہے، کو مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**ذمہ داری سے معذرت**:\nیہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ اگرچہ ہم درستگی کے لیے کوشاں ہیں، براہ کرم آگاہ رہیں کہ خودکار ترجموں میں غلطیاں یا عدم وضاحت ہو سکتی ہے۔ اصل دستاویز اپنی مادری زبان میں معتبر ماخذ سمجھی جانی چاہیے۔ اہم معلومات کے لیے پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ ہم اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے ذمہ دار نہیں ہیں۔\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -291,12 +291,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "7ea2b714669c823a596d986ba2d5739f",
"translation_date": "2025-08-29T15:26:07+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "ur"
}
},
"nbformat": 4,

@ -8,160 +8,170 @@
[![GitHub forks](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/)
[![GitHub stars](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/)
### 🌐 کثیراللسانی مدد
### 🌐 کثیراللسان سپورٹ
#### GitHub Action کے ذریعہ معاونت یافتہ (خودکار اور ہمیشہ اپ ٹو ڈیٹ)
#### GitHub ایکشن کے ذریعے معاونت یافتہ (خودکار اور ہمیشہ تازہ ترین)
<!-- CO-OP TRANSLATOR LANGUAGES TABLE START -->
[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](./README.md) | [Vietnamese](../vi/README.md)
> **مقامی طور پر کلوون کرنا پسند کریں؟**
> اس ذخیرے میں 50+ زبانوں کے ترجمے شامل ہیں جو ڈاؤن لوڈ سائز میں نمایاں اضافہ کرتے ہیں۔ بغیر ترجموں کے کلون کرنے کے لیے sparse checkout استعمال کریں:
> **کیا آپ مقامی طور پر کلون کرنا پسند کرتے ہیں؟**
>
> یہ ذخیرہ 50+ زبانوں کے تراجم شامل کرتا ہے جو ڈاؤن لوڈ کے حجم میں نمایاں اضافہ کرتے ہیں۔ بغیر تراجم کے کلون کرنے کے لیے spars checkout استعمال کریں:
>
> **Bash / macOS / Linux:**
> ```bash
> git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git
> cd ML-For-Beginners
> git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'
> ```
> یہ آپ کو کورس مکمل کرنے کے لئے ہر چیز فراہم کرتا ہے ایک بہت تیز ڈاؤن لوڈ کے ساتھ۔
>
> **CMD (Windows):**
> ```cmd
> git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git
> cd ML-For-Beginners
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ```
>
> اس سے آپ کے پاس یہ کورس مکمل کرنے کے لیے تمام ضروری چیزیں کم وقت میں ڈاؤن لوڈ ہو جاتی ہیں۔
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
#### ہماری کمیونٹی میں شامل ہوں
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
ہمارے پاس AI کے ساتھ سیکھنے کی ایک سلسلہ جاری ہے، مزید جاننے اور شامل ہونے کے لئے [Learn with AI Series](https://aka.ms/learnwithai/discord) پر آئیں، تاریخ 18 - 30 ستمبر، 2025۔ آپ کو GitHub Copilot کے ذریعہ ڈیٹا سائنس کے استعمال کے ٹپس اور ٹرکس ملیں گے۔
ہم نے ایک Discord لرن وِد اے آئی سیریز شروع کی ہے، مزید جانیں اور شامل ہوں [Learn with AI Series](https://aka.ms/learnwithai/discord) پر 18 - 30 ستمبر، 2025. آپ کو GitHub کوپائلٹ کے ڈیٹا سائنس میں استعمال کے ٹپس اور ٹرکس ملیں گے۔
![Learn with AI series](../../translated_images/ur/3.9b58fd8d6c373c20.webp)
# نو آموزوں کے لئے مشین لرننگ - ایک نصاب
# نیا سیکھنے والوں کے لیے مشین لرننگ - نصاب
> 🌍 دنیا کی ثقافتوں کے ذریعے مشین لرننگ کو دریافت کرتے ہوئے دنیا کے چکر لگائیں 🌍
> 🌍 دنیا کے ثقافتوں کے ذریعے مشین لرننگ کا سفر 🌍
Microsoft کے کلاؤڈ ایڈووکیٹس مشین لرننگ کے بارے میں 12 ہفتوں، 26 اسباق کا ایک نصاب پیش کرتے ہیں۔ اس نصاب میں آپ اس تکنیک کو سیکھیں گے جسے کبھی کبھار **کلاسیکی مشین لرننگ** کہا جاتا ہے، جو بنیادی طور پر Scikit-learn لائبریری کا استعمال کرتی ہے اور ڈیپ لرننگ سے گریز کرتی ہے، جس کا احاطہ ہمارے [AI for Beginners' نصاب](https://aka.ms/ai4beginners) میں کیا گیا ہے۔ ان اسباق کو ہمارے ['Data Science for Beginners' نصاب](https://aka.ms/ds4beginners) کے ساتھ جوڑا جا سکتا ہے۔
مائیکروسافٹ میں کلاؤڈ ایڈووکیٹس خوشی سے پیش کرتے ہیں 12 ہفتوں کا، 26 سبقوں پر مشتمل نصاب جو مکمل طور پر **مشین لرننگ** کے بارے میں ہے۔ اس نصاب میں آپ وہ سیکھیں گے جسے بعض اوقات **کلاسیکی مشین لرننگ** کہا جاتا ہے، جس میں بنیادی طور پر Scikit-learn لائبریری استعمال ہوتی ہے اور ڈیپ لرننگ سے گریز کیا جاتا ہے، جو ہمارے [AI for Beginners' نصاب](https://aka.ms/ai4beginners) میں شامل ہے۔ ساتھ ہی آپ ان اسباق کو ہمارے ['Data Science for Beginners' نصاب](https://aka.ms/ds4beginners) کے ساتھ جوڑ سکتے ہیں۔
ہمارے ساتھ دنیا کے مختلف حصوں کے ڈیٹا پر یہ کلاسیکی تکنیکز نافذ کرنے کا سفر کریں۔ ہر سبق میں پہلے اور بعد میں کوئزز شامل ہیں، اسباق مکمل کرنے کے لئے تحریری ہدایات، حل، اسائنمنٹ اور بہت کچھ۔ ہمارا پروجیکٹ-بنیاد طریقہ آپ کو سیکھتے ہوئے بنانے کی اجازت دیتا ہے، جو نئی مہارتوں کو یاد رکھنے کا مؤثر طریقہ ہے۔
ہمارے ساتھ دنیا کے مختلف حصوں سے ڈیٹا پر یہ کلاسیکی تکنیکیں اپنائیں۔ ہر سبق میں پری اور پوسٹ لکچر کوئزز، تحریری ہدایات، حل، اسائنمنٹ اور مزید شامل ہیں۔ ہمارا پروجیکٹ پر مبنی تعلیماتی انداز آپ کو بنانے کے دوران سیکھنے کا موقع دیتا ہے، جو نئے ہنر کو مضبوط کرنے کا موثر طریقہ ہے۔
**✍️ ہماری مصنفین کا دلی شکریہ** جن لوپر، اسٹیفن ہاؤل، فرانسسکا لازیری، تومومی ایمورا، کیسی بریویو، دمتری سوشنکوف، کرس نورنگ، انربن مکھرجی، اورنیلا آلتیونین، روتھ یاکوبو اور ایمی بوئڈ
**✍️ ہمارے مصنفین کا دلی شکریہ** جین لوپر، اسٹیفن ہاؤل، فرانسسکا لازیری، تومومی امورا، کیسی بریو، دمتری سوشنکوف، کرس نورنگ، انربن مکھرجی، آرنیلا الٹیونین، روتھ یاکوبو اور ایمی بوئڈ
**🎨 شکریہ ہمارے مصورین کا** تومومی ایمورا، داسانی مادپالی، اور جن لوپر
**🎨 ہمارے مصوروں کا بھی شکریہ** تومومی امورا، دسانی مادپلّی، اور جین لوپر
**🙏 خاص شکریہ ہمارے Microsoft اسٹوڈنٹ ایمبیسیڈر مصنفین، جائزہ کار اور مواد فراہم کرنے والوں کو**، خصوصاً رشت دگلی، محمد ساکب خان اینان، روہان راج، الیگزنڈرو پیٹریسکو، ابھیشیک جیسوال، نویرن تبسم، یوان سامیولا، اور سگڈھا اگروال
**🙏 خاص شکریہ 🙏 ہمارے Microsoft Student Ambassador مصنفین، جائزہ نگاروں اور مواد کے شریک عملداروں کے لیے** خاص طور پر رِشِت دگلی، محمد ثاقب خان اینان، روہن راج، الیگزینڈرو پیٹریسکو، ابھیشیک جیسوال، نوئرین طبعسم، ایوان سیمویلا، اور سنگدھا اگروال
**🤩 اضافی شکریہ Microsoft اسٹوڈنٹ ایمبیسیڈرز ایرک وانجاؤ، جزلین سندھی اور ویدوشی گپتا کو ہمارے R اسباق کے لئے!**
**🤩 اضافی شکر گزاری Microsoft Student Ambassadors ایرک وانجاو، جیسلین سون دھی، اور ودوشی گپتا کو ہماری R اسباق کے لیے!**
# شروع کریں
# شروعات کیسے کریں
مندرجہ ذیل اقدامات کریں:
1. **ریزپوزٹری کو فورک کریں**: اس صفحہ کے اوپر دائیں جانب "Fork" بٹن پر کلک کریں۔
2. **ریزپوزٹری کو کلون کریں**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
یہ اقدامات کریں:
1. **ریپوزیٹری کو فورک کریں**: صفحے کے اوپر دائیں جانب "Fork" بٹن پر کلک کریں۔
2. **ریپوزیٹری کلون کریں**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
> [اس کورس کے تمام اضافی وسائل ہمارے Microsoft Learn کلیکشن میں تلاش کریں](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> [اس کورس کے تمام اضافی وسائل ہمارے Microsoft Learn مجموعے میں موجود ہیں](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> 🔧 **مدد چاہیے؟** ہمارے [ٹربل شوٹنگ گائیڈ](TROUBLESHOOTING.md) کو چیک کریں جو انسٹالیشن، سیٹ اپ، اور اسباق چلانے کے عام مسائل کے حل فراہم کرتا ہے۔
> 🔧 **مدد چاہیے؟** عام مسائل اور ان کے حل کے لیے ہمارا [Troubleshooting Guide](TROUBLESHOOTING.md) دیکھیں۔
**[طلباء](https://aka.ms/student-page)**، اس نصاب کو استعمال کرنے کے لئے، پورے رپوزٹری کو اپنے GitHub اکاؤنٹ پر فورک کریں اور مشقیں خود سے یا گروپ کے ساتھ مکمل کریں:
**[طلبہ](https://aka.ms/student-page)**، اس نصاب کو استعمال کرنے کے لیے پوری ریپو کو اپنے GitHub اکاؤنٹ پر فورک کریں اور مشقیں خود یا گروپ کے ساتھ مکمل کریں:
- پری لیکچر کوئز سے شروع کریں۔
- لیکچر پڑھیں اور سرگرمیاں مکمل کریں، ہر علمی چیک پر رک کر غور کریں۔
- پروجیکٹس بنانے کی کوشش کریں اسباق کو سمجھ کر بجائے حل کے کوڈ کو چلانے کے؛ البتہ یہ کوڈ ہر پروجیکٹ پر مبنی سبق میں `/solution` فولڈر میں دستیاب ہے۔
- پوسٹ لیکچر کوئز حل کریں۔
- لیکچر پڑھیں اور سرگرمیاں مکمل کریں، ہر علم کی جانچ میں توقف کریں اور غور کریں۔
- کوشش کریں کہ پروجیکٹس خود سمجھ کر بنائیں بجائے حل کوڈ کو چلانے کے؛ تاہم یہ کوڈ ہر پروجیکٹ-مرکوز سبق کے `/solution` فولڈر میں دستیاب ہے۔
- پوسٹ لیکچر کوئز لیں۔
- چیلنج مکمل کریں۔
- اسائنمنٹ مکمل کریں۔
- ایک سبق کے گروپ مکمل کرنے کے بعد، [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) پر جائیں اور مناسب PAT روبریک بھر کر "آواز بلند کریں"۔ 'PAT' ایک Progress Assessment Tool ہے جو آپ کی سیکھنے میں مدد دیتا ہے۔ آپ دوسرے PATs پر ردعمل بھی دے سکتے ہیں تاکہ ہم سب مل کر سیکھ سکیں۔
- کسی سبق گروپ کو مکمل کرنے کے بعد، [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) پر جائیں اور متعلقہ PAT روبریک بھر کر سیکھنے کا اظہار کریں۔ PAT ایک پروگریس اسیسمنٹ ٹول ہے جسے آپ اپنے سیکھنے کے لیے بھرتے ہیں۔ آپ دوسرے PATs پر ردعمل بھی دے سکتے ہیں تاکہ ہم سب مل کر سیکھ سکیں۔
> مزید مطالعات کے لئے، ہم آپ کو یہ [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) ماڈیولز اور سیکھنے کے راستے اپنانے کی سفارش کرتے ہیں۔
> مزید مطالعہ کے لیے، ہم درج ذیل [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) ماڈیولز اور سیکھنے کے راستے اپنانے کی تجویز کرتے ہیں۔
**اساتذہ**، ہم نے [کچھ تجاویز شامل کی ہیں](for-teachers.md) کہ اس نصاب کو کیسے استعمال کیا جائے۔
**اساتذہ کے لیے، ہم نے [کچھ تجاویز شامل کی ہیں](for-teachers.md) کہ اس نصاب کو کس طرح استعمال کیا جا سکتا ہے۔**
---
## ویڈیو واک تھروز
کچھ اسباق مختصر ویڈیو کے طور پر دستیاب ہیں۔ آپ انہیں سبھی اسباق میں لائن میں یا [Microsoft Developer YouTube چینل پر ML for Beginners کی پلے لسٹ](https://aka.ms/ml-beginners-videos) پر نیچے دی گئی تصویر پر کلک کرکے دیکھ سکتے ہیں۔
کچھ اسباق مختصر ویڈیو کی شکل میں دستیاب ہیں۔ آپ یہ ویڈیوز اسباق میں ان لائن یا [ML for Beginners کی پلے لسٹ مائیکروسافٹ ڈویلپر یوٹیوب چینل پر](https://aka.ms/ml-beginners-videos) تصویر پر کلک کرکے دیکھ سکتے ہیں۔
[![ML for beginners banner](../../translated_images/ur/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
---
## ٹیم سے ملو
## ٹیم سے ملاقات
[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
**گیف بذریعہ** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
> 🎥 پروجیکٹ اور اس کے بانیوں کے بارے میں ویڈیو کے لئے اوپر تصویر پر کلک کریں!
> 🎥 پروجیکٹ اور اسے بنانے والوں کے بارے میں ویڈیو کے لیے اوپر تصویر پر کلک کریں!
---
## تدریسی طریقہ کار
ہم نے اس نصاب کی تعمیر میں دو تعلیمی اصول منتخب کیے ہیں: یہ یقینی بنانا کہ یہ ہاتھوں سے کام کرنے والا **پروجیکٹ-بنیاد** ہو اور اس میں **بار بار کوئزز** شامل ہوں۔ اس کے علاوہ، یہ نصاب ایک مشترکہ **موضوع** رکھتا ہے تاکہ اس میں ہم آہنگی پیدا ہو۔
ہم نے اس نصاب کو تیار کرتے ہوئے دو تدریسی اصول منتخب کیے ہیں: اسے عملی، **پروجیکٹ پر مبنی** بنانا اور **بار بار کوئزز** شامل کرنا۔ اس کے علاوہ، اس نصاب کا ایک مشترکہ **تھیم** بھی ہے جو اسے مربوط بناتا ہے۔
اس بات کو یقینی بنا کر کہ مواد پروجیکٹس کے ساتھ ہم آہنگ ہے، طلباء کے لیے عمل زیادہ دلچسپ بنایا جاتا ہے اور تصورات کی یادداشت میں اضافہ ہوتا ہے۔ اس کے علاوہ، کلاس سے پہلے ہونے والا کم داؤ والا کوئز طالبعلم کے ارادے کو کسی موضوع کے سیکھنے کی طرف متوجہ کرتا ہے، جبکہ کلاس کے بعد دوسرا کوئز مزید یادداشت کو یقینی بناتا ہے۔ یہ نصاب لچکدار اور دلچسپ بنانے کے لئے ڈیزائن کیا گیا ہے اور اسے مکمل یا جزوی طور پر لیا جا سکتا ہے۔ پروجیکٹس چھوٹے شروع ہوتے ہیں اور 12 ہفتوں کے دورانیے کے آخر تک بڑھتے جاتے ہیں۔ اس نصاب میں ML کے حقیقی دنیا میں اطلاقات پر پوسٹ اسکرپٹ بھی شامل ہے، جسے اضافی کریڈٹ یا مباحثے کی بنیاد کے طور پر استعمال کیا جا سکتا ہے۔
مواد کا پروجیکٹس سے ہم آہنگ ہونا طلبہ کے لیے دلچسپی بڑھاتا ہے اور تصورات کے یاد رکھنے میں مدد دیتا ہے۔ کلاس سے پہلے ایک کم داؤ کا کوئز طلبہ کو سیکھنے کے لیے راغب کرتا ہے، اور کلاس کے بعد دوسرا کوئز یادداشت کو مزید مضبوط کرتا ہے۔ یہ نصاب لچکدار اور دلچسپ ہے اور مکمل یا جزوی طور پر لیا جا سکتا ہے۔ پروجیکٹس چھوٹے شروع ہوتے ہیں اور 12 ہفتوں کے آخر تک پیچیدہ ہو جاتے ہیں۔ ساتھ ہی اس نصاب میں ML کی اصلی دنیا میں ایپلیکیشنز پر پوسٹ اسکرپٹ شامل ہے جو اضافی کریڈٹ یا بحث کے لیے استعمال ہو سکتا ہے۔
> ہمارا [کوڈ آف کنڈکٹ](CODE_OF_CONDUCT.md)، [کنٹریبیوٹنگ](CONTRIBUTING.md)، [ترجمہ](TRANSLATIONS.md)، اور [ٹربل شوٹنگ](TROUBLESHOOTING.md) رہنما خطوط دیکھیں۔ ہم آپ کی تعمیری رائے کے خیرمقدم کرتے ہیں!
> ہمارا [Code of Conduct](CODE_OF_CONDUCT.md)، [Contributing](CONTRIBUTING.md)، [Translation](TRANSLATIONS.md)، اور [Troubleshooting](TROUBLESHOOTING.md) گائیڈ لائنز دیکھیں۔ ہم آپ کی تعمیری رائے کا خیرمقدم کرتے ہیں!
## ہر سبق میں شامل ہیں
## ہر سبق میں شامل ہے
- اختیاری سکیچ نوٹ
- اختیاری اسکچ نوٹ
- اختیاری اضافی ویڈیو
- ویڈیو واک تھرو (صرف کچھ اسباق)
- ویڈیو واک تھرو (کچھ اسباق میں)
- [پری لیکچر وارم اپ کوئز](https://ff-quizzes.netlify.app/en/ml/)
- تحریری سبق
- پروجیکٹ پر مبنی اسباق کے لئے پروجیکٹ بنانے کے مرحلہ وار رہنما
- علمی چیک
- چیلنج
- پروجیکٹ-بنیاد اسباق کے لیے قدم بہ قدم ہدایات جو آپ کو پروجیکٹ بنانے میں مدد دیتی ہیں
- علم کی جانچ
- ایک چیلنج
- اضافی مطالعہ
- اسائنمنٹ
- [پوسٹ لیکچر کوئز](https://ff-quizzes.netlify.app/en/ml/)
> **زبانوں کے بارے میں ایک نوٹ**: یہ اسباق بنیادی طور پر Python میں لکھے گئے ہیں، لیکن بہت سے R میں بھی دستیاب ہیں۔ R سبق مکمل کرنے کے لیے `/solution` فولڈر میں جائیں اور R اسباق تلاش کریں۔ ان میں .rmd توسیع شامل ہوتی ہے جو کہ **R Markdown** فائل کی نمائندگی کرتی ہے، جسے آسانی سے اس طرح بیان کیا جا سکتا ہے کہ یہ `code chunks` (R یا دیگر زبانوں کے) اور `YAML header` (جو آؤٹ پٹ جیسے PDF کی فارمیٹنگ کو ہدایت دیتا ہے) کو ایک `Markdown document` میں شامل کرتا ہے۔ اس طرح یہ ڈیٹا سائنس کے لیے ایک نمونہ مصنف فریم ورک کے طور پر کام کرتا ہے کیونکہ یہ آپ کو اپنے کوڈ، اس کا آؤٹ پٹ، اور اپنے خیالات کو Markdown میں لکھ کر یکجا کرنے کی اجازت دیتا ہے۔ مزید برآں، R Markdown دستاویزات PDF، HTML، یا Word جیسے آؤٹ پٹ فارمیٹس میں تبدیل کی جا سکتی ہیں۔
> **کوئز کے بارے میں ایک نوٹ**: تمام کوئز [کوئز ایپ فولڈر](../../quiz-app) میں شامل ہیں، جن کی تعداد 52 ہے ہر ایک میں تین سوالات ہیں۔ یہ اسباق کے اندر سے لنک کی گئی ہیں لیکن کوئز ایپ کو مقامی طور پر چلایا جا سکتا ہے؛ `quiz-app` فولڈر میں دی گئی ہدایات پر عمل کریں تاکہ مقامی طور پر ہوسٹ کریں یا Azure پر تعینات کریں۔
| سبق نمبر | موضوع | سبق کی جماعت | تعلیمی مقاصد | لنک شدہ سبق | مصنف |
| :-------: | :------------------------------------------------------------: | :-----------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------: |
| 01 | مشین لرننگ کا تعارف | [تعارف](1-Introduction/README.md) | مشین لرننگ کے بنیادی تصورات سیکھیں | [سبق](1-Introduction/1-intro-to-ML/README.md) | محمد |
| 02 | مشین لرننگ کی تاریخ | [تعارف](1-Introduction/README.md) | اس میدان کی تاریخی معلومات حاصل کریں | [سبق](1-Introduction/2-history-of-ML/README.md) | جین اور ایمی |
| 03 | مشین لرننگ میں نزاکت اور عدل | [تعارف](1-Introduction/README.md) | اہم فلسفیانہ مسائل جو طلباء کو مشین لرننگ ماڈلز بنانے اور لاگو کرنے میں مدنظر رکھنے چاہئیں | [سبق](1-Introduction/3-fairness/README.md) | ٹومومی |
| 04 | مشین لرننگ کی تکنیکیں | [تعارف](1-Introduction/README.md) | مشین لرننگ محققین کن تکنیکوں کا استعمال کرتے ہیں؟ | [سبق](1-Introduction/4-techniques-of-ML/README.md) | کرس اور جین |
| 05 | ریگریشن کا تعارف | [ریگریشن](2-Regression/README.md) | ریگریشن ماڈلز کے لیے Python اور Scikit-learn کے ساتھ شروع کریں | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | جین • ایرک وانجا |
| 06 | شمالی امریکہ کے کدو کی قیمتیں 🎃 | [ریگریشن](2-Regression/README.md) | مشین لرننگ کی تیاری کے لیے ڈیٹا کو دیکھیں اور صاف کریں | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | جین • ایرک وانجا |
| 07 | شمالی امریکہ کے کدو کی قیمتیں 🎃 | [ریگریشن](2-Regression/README.md) | خطی اور کثیر رکنی ریگریشن ماڈلز بنائیں | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | جین اور دمتری • ایرک وانجا |
| 08 | شمالی امریکہ کے کدو کی قیمتیں 🎃 | [ریگریشن](2-Regression/README.md) | لاجسٹک ریگریشن ماڈل بنائیں | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | جین • ایرک وانجا |
| 09 | ویب ایپ 🔌 | [ویب ایپ](3-Web-App/README.md) | تربیت یافتہ ماڈل کے استعمال کے لئے ویب ایپ بنائیں | [Python](3-Web-App/1-Web-App/README.md) | جین |
| 10 | درجہ بندی کا تعارف | [درجہ بندی](4-Classification/README.md) | اپنا ڈیٹا صاف، تیار اور دیکھیں؛ درجہ بندی کا تعارف | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | جین اور کیسی • ایرک وانجا |
| 11 | مزیدار ایشیائی اور ہندوستانی کھانے 🍜 | [درجہ بندی](4-Classification/README.md) | کلاسفائرز کا تعارف | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | جین اور کیسی • ایرک وانجا |
| 12 | مزیدار ایشیائی اور ہندوستانی کھانے 🍜 | [درجہ بندی](4-Classification/README.md) | مزید کلاسفائرز | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | جین اور کیسی • ایرک وانجا |
| 13 | مزیدار ایشیائی اور ہندوستانی کھانے 🍜 | [درجہ بندی](4-Classification/README.md) | اپنے ماڈل کی مدد سے ری کومینڈر ویب ایپ بنائیں | [Python](4-Classification/4-Applied/README.md) | جین |
| 14 | کلسٹرنگ کا تعارف | [کلسٹرنگ](5-Clustering/README.md) | اپنا ڈیٹا صاف، تیار اور دیکھیں؛ کلسٹرنگ کا تعارف | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | جین • ایرک وانجا |
| 15 | نائیجیریائی موسیقی کے ذوق کی دریافت 🎧 | [کلسٹرنگ](5-Clustering/README.md) | K-Means کلسٹرنگ کا طریقہ دریافت کریں | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | جین • ایرک وانجا |
| 16 | قدرتی زبان کی پروسیسنگ کا تعارف ☕️ | [قدرتی زبان کی پروسیسنگ](6-NLP/README.md) | سادہ بوٹ بنا کر NLP کے بنیادی اصول سیکھیں | [Python](6-NLP/1-Introduction-to-NLP/README.md) | اسٹیفن |
| 17 | عام NLP کے کام ☕️ | [قدرتی زبان کی پروسیسنگ](6-NLP/README.md) | زبان کی ساختوں سے نمٹنے کے دوران ضرورت پڑنے والے عام کاموں کو سمجھ کر NLP کا علم بڑھائیں | [Python](6-NLP/2-Tasks/README.md) | اسٹیفن |
| 18 | ترجمہ اور جذباتی تجزیہ ♥️ | [قدرتی زبان کی پروسیسنگ](6-NLP/README.md) | جین آستن کے ساتھ ترجمہ اور جذباتی تجزیہ | [Python](6-NLP/3-Translation-Sentiment/README.md) | اسٹیفن |
| 19 | یورپ کے رومانٹک ہوٹل ♥️ | [قدرتی زبان کی پروسیسنگ](6-NLP/README.md) | ہوٹل کے جائزوں کے ساتھ جذباتی تجزیہ 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | اسٹیفن |
| 20 | یورپ کے رومانٹک ہوٹل ♥️ | [قدرتی زبان کی پروسیسنگ](6-NLP/README.md) | ہوٹل کے جائزوں کے ساتھ جذباتی تجزیہ 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | اسٹیفن |
| 21 | ٹائم سیریز پیش گوئی کا تعارف | [ٹائم سیریز](7-TimeSeries/README.md) | ٹائم سیریز پیش گوئی کا تعارف | [Python](7-TimeSeries/1-Introduction/README.md) | فرانسسکا |
| 22 | ⚡️ عالمی بجلی استعمال ⚡️ - ARIMA کے ساتھ ٹائم سیریز پیش گوئی | [ٹائم سیریز](7-TimeSeries/README.md) | ARIMA کے ساتھ ٹائم سیریز پیش گوئی | [Python](7-TimeSeries/2-ARIMA/README.md) | فرانسسکا |
| 23 | ⚡️ عالمی بجلی استعمال ⚡️ - SVR کے ساتھ ٹائم سیریز پیش گوئی | [ٹائم سیریز](7-TimeSeries/README.md) | سپورٹ ویکٹر ریگریسر کے ساتھ ٹائم سیریز پیش گوئی | [Python](7-TimeSeries/3-SVR/README.md) | انربن |
| 24 | ری انفورسمنٹ لرننگ کا تعارف | [ری انفورسمنٹ لرننگ](8-Reinforcement/README.md) | Q-لرننگ کے ساتھ ری انفورسمنٹ لرننگ کا تعارف | [Python](8-Reinforcement/1-QLearning/README.md) | دمتری |
| 25 | پیٹر کو بھیڑیے سے بچائیں! 🐺 | [ری انفورسمنٹ لرننگ](8-Reinforcement/README.md) | ری انفورسمنٹ لرننگ جِم | [Python](8-Reinforcement/2-Gym/README.md) | دمتری |
| اختتامیہ | حقیقی دنیا میں ML کی مثالیں اور اطلاقات | [حقیقی دنیا میں ML](9-Real-World/README.md) | کلاسیکل مشین لرننگ کی دلچسپ اور معلوماتی حقیقی دنیا کی اطلاقات | [سبق](9-Real-World/1-Applications/README.md) | ٹیم |
| اختتامیہ | RAI ڈیش بورڈ کے ذریعے ML میں ماڈل کی جانچ | [حقیقی دنیا میں ML](9-Real-World/README.md) | ذمہ دار AI ڈیش بورڈ کمپونینٹس کا استعمال کرتے ہوئے مشین لرننگ میں ماڈل کی جانچ | [سبق](9-Real-World/2-Debugging-ML-Models/README.md) | روت یاکوبو |
> [اس کورس کے تمام اضافی وسائل ہماری Microsoft Learn کلیکشن میں تلاش کریں](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
- [پوسٹ-لیکچر کوئز](https://ff-quizzes.netlify.app/en/ml/)
> **زبانوں کے بارے میں ایک نوٹ**: یہ اسباق بنیادی طور پر Python میں لکھے گئے ہیں، لیکن بہت سے R میں بھی دستیاب ہیں۔ R کا سبق مکمل کرنے کے لیے، `/solution` فولڈر میں جائیں اور R اسباق تلاش کریں۔ ان میں .rmd ایکسٹینشن شامل ہوتا ہے جو ایک **R مارک ڈاؤن** فائل کی نمائندگی کرتا ہے جسے آسانی سے `code chunks` (R یا دوسری زبانوں کے) اور ایک `YAML header` (جو آؤٹ پٹس جیسے PDF کی فارمیٹنگ کی رہنمائی کرتا ہے) کو `Markdown document` میں شامل کرنے کے طور پر بیان کیا جا سکتا ہے۔ اس طرح، یہ ڈیٹا سائنس کے لیے ایک مثالی تحریری فریم ورک کے طور پر کام کرتا ہے کیونکہ یہ آپ کو اپنا کوڈ، اس کا آؤٹ پٹ، اور اپنے خیالات کو مارک ڈاؤن میں لکھ کر یکجا کرنے کی اجازت دیتا ہے۔ مزید برآں، R مارک ڈاؤن دستاویزات کو PDF، HTML، یا Word جیسے آؤٹ پٹ فارمیٹس میں رینڈر کیا جا سکتا ہے۔
> **کوئزز کے بارے میں ایک نوٹ**: تمام کوئزز [Quiz App folder](../../quiz-app) میں موجود ہیں، کل 52 کوئزز جن میں ہر ایک میں تین سوالات ہوتے ہیں۔ یہ اسباق کے اندر سے لنک کیے گئے ہیں لیکن کوئز ایپ کو لوکل طور پر چلایا جا سکتا ہے؛ `quiz-app` فولڈر میں ہدایات پر عمل کریں تاکہ مقامی طور پر ہوسٹ کریں یا Azure پر تعینات کریں۔
| سبق نمبر | موضوع | سبق کی تقسیم | سیکھنے کے مقاصد | منسلک سبق | مصنف |
| :------: | :-------------------------------------------------------: | :-----------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------: | :------------------------------: |
| 01 | مشین لرننگ کا تعارف | [Introduction](1-Introduction/README.md) | مشین لرننگ کے بنیادی تصورات کو سیکھیں | [Lesson](1-Introduction/1-intro-to-ML/README.md) | محمد |
| 02 | مشین لرننگ کی تاریخ | [Introduction](1-Introduction/README.md) | اس میدان کی تاریخ جانیں | [Lesson](1-Introduction/2-history-of-ML/README.md) | جین اور ایمی |
| 03 | مشین لرننگ اور انصاف | [Introduction](1-Introduction/README.md) | وہ اہم فلسفیانہ مسائل جو طلباء کو ML ماڈلز بناتے اور استعمال کرتے وقت انصاف کے بارے میں غور کرنا چاہیے؟ | [Lesson](1-Introduction/3-fairness/README.md) | ٹومی |
| 04 | مشین لرننگ کی تکنیکس | [Introduction](1-Introduction/README.md) | مشین لرننگ کے ماہرین کون سی تکنیک استعمال کرتے ہیں ML ماڈلز بنانے کے لیے؟ | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | کرس اور جین |
| 05 | ریگریشن کا تعارف | [Regression](2-Regression/README.md) | Python اور Scikit-learn کے ساتھ ریگریشن ماڈلز کی شروعات کریں | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | جین • ایرک ونجاؤ |
| 06 | شمالی امریکہ کے کدو کے نرخ 🎃 | [Regression](2-Regression/README.md) | مشین لرننگ کی تیاری کے لیے ڈیٹا کو بصری شکل میں لائیں اور صاف کریں | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | جین • ایرک ونجاؤ |
| 07 | شمالی امریکہ کے کدو کے نرخ 🎃 | [Regression](2-Regression/README.md) | خطی اور کثیر رکنی ریگریشن ماڈلز بنائیں | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | جین، دمتری اور ایرک ونجاؤ |
| 08 | شمالی امریکہ کے کدو کے نرخ 🎃 | [Regression](2-Regression/README.md) | لاجسٹک ریگریشن ماڈل بنائیں | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | جین • ایرک ونجاؤ |
| 09 | ایک ویب ایپ 🔌 | [Web App](3-Web-App/README.md) | اپنی تربیت شدہ ماڈل استعمال کرنے کے لیے ایک ویب ایپ بنائیں | [Python](3-Web-App/1-Web-App/README.md) | جین |
| 10 | درجہ بندی کا تعارف | [Classification](4-Classification/README.md) | اپنے ڈیٹا کو صاف کریں، تیار کریں اور بصری شکل میں لائیں؛ درجہ بندی کا تعارف | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | جین، کیسی اور ایرک ونجاؤ |
| 11 | مزیدار ایشیائی اور ہندی کھانے 🍜 | [Classification](4-Classification/README.md) | درجہ بند کرنے والوں کا تعارف | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | جین، کیسی اور ایرک ونجاؤ |
| 12 | مزیدار ایشیائی اور ہندی کھانے 🍜 | [Classification](4-Classification/README.md) | مزید درجہ بند کرنے والے | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | جین، کیسی اور ایرک ونجاؤ |
| 13 | مزیدار ایشیائی اور ہندی کھانے 🍜 | [Classification](4-Classification/README.md) | اپنی ماڈل استعمال کرتے ہوئے ایک سفارش کنندہ ویب ایپ بنائیں | [Python](4-Classification/4-Applied/README.md) | جین |
| 14 | کلسٹرنگ کا تعارف | [Clustering](5-Clustering/README.md) | اپنے ڈیٹا کو صاف کریں، تیار کریں اور بصری شکل میں لائیں؛ کلسٹرنگ کا تعارف | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | جین • ایرک ونجاؤ |
| 15 | نائیجیریا کے موسیقی کے ذوق کی تلاش 🎧 | [Clustering](5-Clustering/README.md) | K-Means کلسٹرنگ طریقہ کار کو دریافت کریں | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | جین • ایرک ونجاؤ |
| 16 | قدرتی زبان کی پراسیسنگ کا تعارف ☕️ | [Natural language processing](6-NLP/README.md) | ایک سادہ بوٹ بنا کر NLP کے بنیادی اصول سیکھیں | [Python](6-NLP/1-Introduction-to-NLP/README.md) | اسٹیفن |
| 17 | عمومی NLP کے کام ☕️ | [Natural language processing](6-NLP/README.md) | زبان کے ڈھانچوں کے ساتھ کام کرنے میں درکار عام کاموں کو سمجھ کر اپنے NLP کا علم گہرا کریں | [Python](6-NLP/2-Tasks/README.md) | اسٹیفن |
| 18 | ترجمہ اور جذباتی تجزیہ ♥️ | [Natural language processing](6-NLP/README.md) | جین آسٹن کے ساتھ ترجمہ اور جذباتی تجزیہ | [Python](6-NLP/3-Translation-Sentiment/README.md) | اسٹیفن |
| 19 | یورپ کے رومانٹک ہوٹلز ♥️ | [Natural language processing](6-NLP/README.md) | ہوٹل جائزوں کے ساتھ جذباتی تجزیہ 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | اسٹیفن |
| 20 | یورپ کے رومانٹک ہوٹلز ♥️ | [Natural language processing](6-NLP/README.md) | ہوٹل جائزوں کے ساتھ جذباتی تجزیہ 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | اسٹیفن |
| 21 | ٹائم سیریز پیشن گوئی کا تعارف | [Time series](7-TimeSeries/README.md) | ٹائم سیریز پیش گوئی کا تعارف | [Python](7-TimeSeries/1-Introduction/README.md) | فرانسسکا |
| 22 | ⚡️ عالمی توانائی کا استعمال ⚡️ - ARIMA کے ساتھ پیش گوئی | [Time series](7-TimeSeries/README.md) | ARIMA کے ساتھ ٹائم سیریز کی پیش گوئی | [Python](7-TimeSeries/2-ARIMA/README.md) | فرانسسکا |
| 23 | ⚡️ عالمی توانائی کا استعمال ⚡️ - SVR کے ساتھ پیش گوئی | [Time series](7-TimeSeries/README.md) | Support Vector Regressor کے ساتھ ٹائم سیریز پیش گوئی | [Python](7-TimeSeries/3-SVR/README.md) | انربن |
| 24 | reinforcement learning کا تعارف | [Reinforcement learning](8-Reinforcement/README.md) | Q-Learning کے ساتھ reinforcement learning کا تعارف | [Python](8-Reinforcement/1-QLearning/README.md) | دمتری |
| 25 | پیٹر کو بھیڑیے سے بچائیں! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Reinforcement learning Gym | [Python](8-Reinforcement/2-Gym/README.md) | دمتری |
| پوسٹ اسکرپٹ | کلاسیکی ML کی حقیقی دنیا کی مثالیں | [ML in the Wild](9-Real-World/README.md) | کلاسیکی مشین لرننگ کی دلچسپ اور واضح حقیقی دنیا کی ایپلی کیشنز | [Lesson](9-Real-World/1-Applications/README.md) | ٹیم |
| پوسٹ اسکرپٹ | RAI ڈیش بورڈ کے ذریعے ML میں ماڈل کی خرابی کی جانچ | [ML in the Wild](9-Real-World/README.md) | Responsible AI ڈیش بورڈ کے اجزاء کے ذریعے مشین لرننگ میں ماڈل کی خرابی کی جانچ | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | روت یا کوبو |
> [اس کورس کے لیے تمام اضافی وسائل ہماری Microsoft Learn کلیکشن میں تلاش کریں](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
## آف لائن رسائی
آپ اس دستاویز کو آف لائن [Docsify](https://docsify.js.org/#/) استعمال کرکے چلا سکتے ہیں۔ اس ریپو کو فورک کریں، اپنے مقامی کمپیوٹر پر [Docsify انسٹال کریں](https://docsify.js.org/#/quickstartاور پھر اس ریپو کے روٹ فولڈر میں `docsify serve` لکھیں۔ ویب سائٹ آپ کے لوکل ہوسٹ پر پورٹ 3000 پر چلائے گی: `localhost:3000`.
آپ اس دستاویز کو آف لائن [Docsify](https://docsify.js.org/#/) استعمال کرکے چلا سکتے ہیں۔ اس ریپو کو فورک کریں، اپنے لوکل میشن پر [Docsify انسٹال کریں](https://docsify.js.org/#/quickstart)، پھر اس ریپو کے روٹ فولڈر میں `docsify serve` ٹائپ کریں۔ ویب سائٹ آپ کے localhost پر پورٹ 3000 پر دستیاب ہوگی: `localhost:3000`۔
## پی ڈی ایفز
## پی ڈی ایف
نصاب کا پی ڈی ایف ورژن لنکس کے ساتھ یہاں حاصل کریں: [here](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
نصاب کا پی ڈی ایف مختلف اقسام کے لنکس کے ساتھ [یہاں](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) دستیاب ہے۔
## 🎒 دیگر کورسز
ہماری ٹیم دیگر کورسز بھی تیار کرتی ہے! دیکھیں:
ہماری ٹیم دیگر کورسز بھی بناتی ہے! دیکھیں:
<!-- CO-OP TRANSLATOR OTHER COURSES START -->
### LangChain
@ -173,49 +183,54 @@ Microsoft کے کلاؤڈ ایڈووکیٹس مشین لرننگ کے بارے
### Azure / Edge / MCP / Agents
[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
[![مبتدئین کے لیے MCP](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[![مبتدئین کے لیے AI ایجنٹس](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### Generative AI Series
[![ابتدائی افراد کے لیے جنریٹو AI](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![جنریٹو AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![جنریٹو AI (جاوا)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[![جنریٹو AI (جاوا اسکرپٹ)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
### جنریٹیو AI سیریز
[![مبتدئین کے لیے جنریٹیو AI](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![جنریٹیو AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![جنریٹیو AI (جاوا)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[![جنریٹیو AI (جاوا اسکرپٹ)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
---
### بنیادی تعلیم
[![ابتدائی افراد کے لیے ایم ایل](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[![ابتدائی افراد کے لیے ڈیٹا سائنس](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[![ابتدائی افراد کے لیے AI](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[![ابتدائی افراد کے لیے سائبرسیکورٹی](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[![ابتدائی افراد کے لیے ویب ڈیولپمنٹ](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[![ابتدائی افراد کے لیے IoT](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[![ابتدائی افراد کے لیے XR ڈیولپمنٹ](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
[![مبتدئین کے لیے ML](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[![مبتدئین کے لیے ڈیٹا سائنس](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[![مبتدئین کے لیے AI](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[![مبتدئین کے لیے سائبر سیکیورٹی](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[![مبتدئین کے لیے ویب ڈیولپمنٹ](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[![مبتدئین کے لیے IoT](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[![مبتدئین کے لیے XR ڈیولپمنٹ](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### کوپائلٹ سیریز
[![AI جوڑے پروگرامنگ کے لیے کوپائلٹ](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[![AI کے لیے کوپائلٹ جوڑی پروگرامنگ](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[![C#/.NET کے لیے کوپائلٹ](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
[![کوپائلٹ مہم](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst)
[![کوپائلٹ ایڈونچر](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst)
<!-- CO-OP TRANSLATOR OTHER COURSES END -->
## مدد حاصل کرنا
اگر آپ پھنس گئے ہیں یا AI ایپس بنانے کے بارے میں کوئی سوالات ہیں۔ MCP کے بارے میں بات چیت میں شامل ہوں جہاں ساتھی سیکھنے والے اور تجربہ کار ڈویلپرز ہیں۔ یہ ایک مددگار کمیونٹی ہے جہاں سوالات کا خیرمقدم کیا جاتا ہے اور علم آزادانہ طور پر شیئر کیا جاتا ہے۔
اگر آپ پھنس جائیں یا AI ایپس بنانے کے بارے میں کوئی سوال ہو۔ MCP کے بارے میں بحث میں دوسروں سیکھنے والوں اور تجربہ کار ڈویلپرز میں شامل ہوں۔ یہ ایک مددگار کمیونٹی ہے جہاں سوالات خوش آمدید ہیں اور علم آزادانہ طور پر شئیر کیا جاتا ہے۔
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
[![مائیکروسافٹ فاؤنڈری ڈسکارڈ](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
اگر آپ کے پاس پروڈکٹ فیڈبیک ہو یا بنانے کے دوران کوئی غلطی ہو تو یہاں جائیں:
اگر آپ کے پاس پروڈکٹ کا فیڈبیک ہے یا کوئی خرابی ہو رہی ہے تو براہ کرم ملاحظہ کریں:
[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## اضافی سیکھنے کے نکات
[![مائیکروسافٹ فاؤنڈری ڈویلپر فورم](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
- بہتر سمجھ کے لیے ہر سبق کے بعد نوٹ بکس کا جائزہ لیں۔
- الگورتھمز کو خود سے نافذ کرنے کی مشق کریں۔
- سیکھی گئی تصورات کا استعمال کرتے ہوئے حقیقی دنیا کے ڈیٹا سیٹس کو دریافت کریں۔
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**ڈسکلیمر**:
اس دستاویز کا ترجمہ AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کے ذریعے کیا گیا ہے۔ اگرچہ ہم درستگی کے لیے کوشاں ہیں، براہِ کرم ذہن میں رکھیں کہ خودکار ترجمے میں غلطیاں یا عدم درستیاں ہو سکتی ہیں۔ اصل دستاویز اپنی مادری زبان میں ایک معتبر ماخذ سمجھی جانی چاہیے۔ اہم معلومات کے لیے پیشہ ورانہ انسانی ترجمہ تجویز کیا جاتا ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تعبیر کی ذمہ داری ہم پر نہیں ہوگی۔
**دستخطی اعلامیہ**:
یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کے ذریعے ترجمہ کی گئی ہے۔ اگرچہ ہم درستگی کے لئے کوشاں ہیں، براہ کرم آگاہ رہیں کہ خودکار تراجم میں غلطیاں یا نواقص ہو سکتے ہیں۔ اصل دستاویز اپنی مادری زبان میں ایک مستند ماخذ کے طور پر سمجھی جانی چاہیے۔ اہم معلومات کے لئے پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے ہونے والی کسی بھی غلط فہمی یا غلط تشریح کی ذمہ داری ہم قبول نہیں کرتے۔
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -30,8 +30,8 @@
"language_code": "zh-CN"
},
"1-Introduction/3-fairness/assignment.md": {
"original_hash": "dbda60e7b1fe5f18974e7858eff0004e",
"translation_date": "2025-09-03T17:41:11+00:00",
"original_hash": "c81d9affadb89d017d610eadeb6c84f9",
"translation_date": "2026-02-28T08:43:11+00:00",
"source_file": "1-Introduction/3-fairness/assignment.md",
"language_code": "zh-CN"
},
@ -90,8 +90,8 @@
"language_code": "zh-CN"
},
"2-Regression/3-Linear/README.md": {
"original_hash": "40e64f004f3cb50aa1d8661672d3cd92",
"translation_date": "2025-09-05T08:55:34+00:00",
"original_hash": "9a8359f1945bd3beccccb2b46592580e",
"translation_date": "2026-02-28T08:44:09+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "zh-CN"
},
@ -186,8 +186,8 @@
"language_code": "zh-CN"
},
"4-Classification/3-Classifiers-2/README.md": {
"original_hash": "49047911108adc49d605cddfb455749c",
"translation_date": "2025-09-05T09:07:46+00:00",
"original_hash": "d94438d71164b0ff68002812aed1a8b4",
"translation_date": "2026-02-28T08:44:28+00:00",
"source_file": "4-Classification/3-Classifiers-2/README.md",
"language_code": "zh-CN"
},
@ -197,12 +197,24 @@
"source_file": "4-Classification/3-Classifiers-2/assignment.md",
"language_code": "zh-CN"
},
"4-Classification/3-Classifiers-2/notebook.ipynb": {
"original_hash": "624ca6cf73d3548ff1b3059e413fa4cd",
"translation_date": "2026-02-28T08:34:24+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "zh-CN"
},
"4-Classification/3-Classifiers-2/solution/Julia/README.md": {
"original_hash": "a39c15d63f3b2795ee2284a82b986b93",
"translation_date": "2025-09-03T18:12:23+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/Julia/README.md",
"language_code": "zh-CN"
},
"4-Classification/3-Classifiers-2/solution/notebook.ipynb": {
"original_hash": "70f41fe4fd4253adb44cd9d291406e4f",
"translation_date": "2026-02-28T08:34:30+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "zh-CN"
},
"4-Classification/4-Applied/README.md": {
"original_hash": "61bdec27ed2da8b098cd9065405d9bb0",
"translation_date": "2025-09-05T09:07:17+00:00",
@ -540,8 +552,8 @@
"language_code": "zh-CN"
},
"README.md": {
"original_hash": "2f594ee136e3127a47f56d80055227bc",
"translation_date": "2026-02-06T07:38:01+00:00",
"original_hash": "3a0286e1c4858e79ff54f080dadc1426",
"translation_date": "2026-02-28T08:43:05+00:00",
"source_file": "README.md",
"language_code": "zh-CN"
},

@ -1,16 +1,18 @@
# 探索负责任的AI工具箱
# 探索负责任的 AI 工具箱
## 说明
在本课程中您学习了负责任的AI工具箱,这是一个“开源的、社区驱动的项目,旨在帮助数据科学家分析和改进AI系统。” 在本次作业中请探索RAI工具箱的一个[笔记本](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/getting-started.ipynb),并在论文或演示文稿中报告您的发现。
在本课中,您了解了负责任的 AI 工具箱,这是一个“开源的、社区驱动的项目,旨在帮助数据科学家分析和改进 AI 系统”。对于此作业,请探索 RAI 工具箱的一个[笔记本](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/tabular/getting-started.ipynb),并在论文或演示文稿中报告您的发现。
## 评分标准
| 标准 | 卓越 | 合格 | 需要改进 |
| 标准 | 杰出 | 充分 | 需改进 |
| -------- | --------- | -------- | ----------------- |
| | 提交了一篇论文或PowerPoint演示文稿讨论了Fairlearn的系统、运行的笔记本以及从中得出的结论 | 提交了一篇没有结论的论文 | 未提交论文 |
| | 提交了讨论 Fairlearn 系统、运行的笔记本及运行后得出结论的论文或 PowerPoint 演示文稿 | 提交了没有结论的论文 | 未提交论文 |
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免责声明**
本文档使用AI翻译服务 [Co-op Translator](https://github.com/Azure/co-op-translator) 进行翻译。尽管我们努力确保翻译的准确性,但请注意,自动翻译可能包含错误或不准确之处。应以原始语言的文档作为权威来源。对于关键信息,建议使用专业人工翻译。我们不对因使用此翻译而产生的任何误解或误读承担责任。
本文件使用 AI 翻译服务 [Co-op Translator](https://github.com/Azure/co-op-translator) 进行翻译。虽然我们努力确保准确性,但请注意自动翻译可能包含错误或不准确之处。原始的本地语言文档应被视为权威资料。对于重要信息,建议采用专业人工翻译。我们不对因使用本翻译而产生的任何误解或误释承担责任。
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,86 +1,99 @@
# 使用 Scikit-learn 构建回归模型:四种回归方法
![线性回归与多项式回归信息图](../../../../2-Regression/3-Linear/images/linear-polynomial.png)
> 信息图由 [Dasani Madipalli](https://twitter.com/dasani_decoded) 提供
## [课前测验](https://ff-quizzes.netlify.app/en/ml/)
## 初学者提示
线性回归用于我们想预测**数值型**的场景(例如房价、温度、销售额)。
它通过找到一条最能代表输入特征和输出关系的直线来工作。
本课侧重于理解概念,之后再探讨更高级的回归技术。
![线性回归与多项式回归信息图](../../../../translated_images/zh-CN/linear-polynomial.5523c7cb6576ccab.webp)
> 信息图作者:[Dasani Madipalli](https://twitter.com/dasani_decoded)
## [课前测试](https://ff-quizzes.netlify.app/en/ml/)
> ### [本课也提供 R 语言版本!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
> ### [本课程也提供 R 版本!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### 介绍
到目前为止,您已经通过南瓜定价数据集的样本数据了解了什么是回归,并使用 Matplotlib 对其进行了可视化。
到目前为止,你已经通过南瓜定价数据集探讨了回归是什么。该数据集将在本课中持续使用。你还通过 Matplotlib 可视化了数据
现在您可以深入学习机器学习中的回归。虽然可视化可以帮助您理解数据但机器学习的真正力量在于_训练模型_。模型通过历史数据进行训练自动捕捉数据之间的依赖关系并能够预测模型未见过的新数据的结果。
现在你准备深入了解机器学习中的回归。虽然可视化有助于理解数据但机器学习的真正力量在于_训练模型_。模型基于历史数据训练自动捕捉数据之间的依赖关系从而能够预测模型未见过的新数据结果。
在本课程中您将进一步了解两种回归类型_基本线性回归_和_多项式回归_以及这些技术背后的部分数学原理。这些模型将帮助我们根据不同的输入数据预测南瓜价格。
本课将介绍两种回归类型_基础线性回归_ 和 _多项式回归_,以及这些技术背后的部分数学原理。利用这些模型,我们可以根据不同输入数据预测南瓜价格。
[![机器学习入门 - 理解线性回归](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "机器学习入门 - 理解线性回归")
[![ML for beginners - Understanding Linear Regression](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "ML for beginners - Understanding Linear Regression")
> 🎥 点击上方图片观看关于线性回归简短视频概述
> 🎥 点击上方图片观看线性回归简短视频。
> 在整个课程中,我们假设学生的数学知识较少,并努力使内容对来自其他领域的学生更易理解,因此请注意笔记、🧮 数学提示、图表和其他学习工具,以帮助理解
> 在整个课程中,我们假设数学基础较少,并努力让来自其它领域的学生也能理解,所以请注意文中的提示、🧮 计算说明、图示及其它辅助学习工具
### 前置知识
### 先决条件
到目前为止您应该已经熟悉我们正在研究的南瓜数据的结构。您可以在本课程的_notebook.ipynb_文件中找到预加载和预清理的数据。在文件中南瓜价格以蒲式耳为单位显示在一个新的数据框中。确保您可以在 Visual Studio Code 的内核中运行这些笔记本。
你现在应该熟悉我们正在检查的南瓜数据结构。该数据已预加载并预先清理,可在本课的 _notebook.ipynb_ 文件中找到。文件中,南瓜价格以每蒲式耳计算并显示在一个新的数据框架中。请确保能在 Visual Studio Code 的内核中运行这些笔记本文件
### 准备工作
提醒一下,您正在加载这些数据以便提出问题:
提醒一下,你加载这些数据是为了对它提出问题。
- 什么时候是购买南瓜的最佳时机?
- 我可以预期一箱迷你南瓜的价格是多少?
- 我应该购买半蒲式耳篮子还是 1 1/9 蒲式耳箱?
- 什么时候买南瓜最合适?
- 一箱迷你南瓜的价格会是多少?
- 我应该买半蒲式耳篮装,还是 1又1/9蒲式耳盒装
让我们继续挖掘这些数据。
让我们继续深入挖掘这些数据
在上节课,你创建了一个 Pandas 数据框并从原始数据集中提取了一部分数据按蒲式耳标准化了价格。这样做只能获取约400个数据点且只涉及秋季月份
在上一课中,您创建了一个 Pandas 数据框,并用原始数据集的一部分填充它,将价格标准化为蒲式耳单位。然而,通过这样做,您只能收集到大约 400 个数据点,并且仅限于秋季月份。
查看本课程附带笔记本中预加载的数据。数据已预加载,并绘制了初始散点图以显示月份数据。也许通过进一步清理数据,我们可以更详细地了解数据的性质。
看看本课随附笔记本中预加载的数据。数据已预加载,并绘制了初步的散点图以显示月份数据。也许通过进一步清理,我们可以更详细地了解数据的性质。
## 线性回归线
正如您在第一课中所学,线性回归的目标是绘制一条线以:
正如你在第一课中学到的一样,线性回归的目标是绘制一条线,用来:
- **显示变量关系**。展示变量间的关系
- **做出预测**。准确预测新数据点相对于该线的位置
通常通过**最小二乘回归**来绘制这类线。术语“最小二乘”指的是最小化模型的总误差的过程。对于每个数据点,我们测量实际点到回归线的垂直距离(称为残差)。
我们对这些距离做平方处理,主要出于两个原因:
- **显示变量关系**。展示变量之间的关系
- **进行预测**。准确预测新数据点在该线上的位置
1. **大小而非方向**:我们希望将 -5 的误差与 +5 的误差视为相同。平方使所有值均为正数。
通常使用**最小二乘回归**来绘制这种类型的线。“最小二乘”意味着围绕回归线的所有数据点的误差平方后相加。理想情况下,最终的总和越小越好,因为我们希望误差较少,即`最小二乘`。
2. **惩罚异常值**:平方使得较大的误差权重更大,促使回归线更贴近远离的点。
我们这样做是因为我们希望建模一条与所有数据点的累计距离最小的线。我们在相加之前对误差进行平方,因为我们关心的是误差的大小而不是方向。
然后我们将这些平方值加总。目标是找到这条最终平方和最小的线——这就是“最小二乘”的由来
> **🧮 数学展示**
>
> 这条线称为_最佳拟合线_可以通过[一个公式](https://en.wikipedia.org/wiki/Simple_linear_regression)表示
>
> **🧮 给我看数学过程**
>
> 这条被称作_最佳拟合直线_的线可以用[以下方程表示](https://en.wikipedia.org/wiki/Simple_linear_regression)
>
> ```
> Y = a + bX
> ```
>
> `X` 是“解释变量”。`Y` 是“因变量”。线的斜率是 `b`,而 `a` 是 y 截距,表示当 `X = 0``Y` 的值。
>
>![计算斜率](../../../../2-Regression/3-Linear/images/slope.png)
>
> 首先,计算斜率 `b`。信息图由 [Jen Looper](https://twitter.com/jenlooper) 提供
>
> 换句话说,参考我们南瓜数据的原始问题:“根据月份预测每蒲式耳南瓜的价格”,`X` 表示价格,`Y` 表示销售月份。
>
>![完成公式](../../../../2-Regression/3-Linear/images/calculation.png)
>
> 计算 `Y` 的值。如果您支付大约 $4那一定是四月信息图由 [Jen Looper](https://twitter.com/jenlooper) 提供
>
> 计算线的数学公式必须展示线的斜率,这也取决于截距,即当 `X = 0``Y` 的位置。
>
> 可以在 [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) 网站上观察这些值的计算方法。还可以访问[最小二乘计算器](https://www.mathsisfun.com/data/least-squares-calculator.html),观察数值如何影响线的形状
>
> 其中 `X` 是“解释变量”,`Y` 是“因变量”。斜率是 `b``a` 是 y 轴截距,表示当 `X = 0``Y` 的值。
>
>![计算斜率](../../../../translated_images/zh-CN/slope.f3c9d5910ddbfcf9.webp)
>
> 首先计算斜率 `b`。信息图作者:[Jen Looper](https://twitter.com/jenlooper)
>
> 换句话说,结合我们的南瓜数据原始问题:“按月份预测每蒲式耳的南瓜价格”,`X` 是价格,`Y` 是销售月份。
>
>![完成方程](../../../../translated_images/zh-CN/calculation.a209813050a1ddb1.webp)
>
> 计算 `Y` 的值。如果你支付大约 4 美元,那应该是四月!信息图作者:[Jen Looper](https://twitter.com/jenlooper)
>
> 计算该直线的数学过程必须呈现斜率,同时也依赖于截距,即当 `X = 0``Y` 的位置。
>
> 可以在 [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) 网站查看此计算方法。也可访问[最小二乘计算器](https://www.mathsisfun.com/data/least-squares-calculator.html),观察数值变化如何影响回归线。
## 相关性
另一个需要理解的术语是给定 X 和 Y 变量之间的**相关系数**。使用散点图,您可以快速可视化该系数。数据点整齐排列成一条线的图具有高相关性,而数据点在 X 和 Y 之间随意分布的图具有低相关性。
还有一个术语需要理解:给定 X 和 Y 变量间的**相关系数**。借助散点图,你可以快速直观地看出这个系数。数据点沿一条整齐线分布的散点图显示高相关性,数据点杂乱无序分布的则显示低相关性。
一个好的线性回归模型应该是使用最小二乘回归方法和回归线时,相关系数接近 1而不是 0
一个好的线性回归模型通常会在线性回归方程下,利用最小二乘法,具有较高(接近 1 远离 0的相关系数
✅ 运行本课程附带的笔记本,查看月份与价格的散点图。根据您对散点图的视觉解释,南瓜销售的月份与价格之间的数据相关性是高还是低?如果您使用更细化的度量(例如*一年中的天数*,即从年初开始的天数),相关性是否会发生变化
✅ 运行本课配套的笔记本,观察“月份”与“价格”的散点图。根据你对散点图的视觉判断,“月份”与南瓜销售价格的关联度是高还是低?如果用更细粒度的度量替代`Month`,例如“一年中的天数”(即从年初开始的天数数量),结果会有变化吗
在下面的代码中,我们假设已经清理了数据,并获得了一个名为 `new_pumpkins` 的数据框,类似于以下内容
下面的代码中,我们假设已清理数据,并获得一个叫做 `new_pumpkins` 的数据框,如下示例
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
---|-------|-----------|---------|------|---------|-----------|------------|-------
@ -90,36 +103,36 @@ ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Pri
73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
> 清理数据的代码可在 [`notebook.ipynb`](../../../../2-Regression/3-Linear/notebook.ipynb) 中找到。我们执行了与上一课相同的清理步骤,并使用以下表达式计算了 `DayOfYear` 列:
> 清理数据的代码可在 [`notebook.ipynb`](notebook.ipynb) 找到。我们按照上一课进行了相同的数据清理步骤,并使用以下表达式计算了 `DayOfYear` 列:
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
```
现在您已经了解了线性回归背后的数学原理,让我们创建一个回归模型,看看是否可以预测哪种南瓜包装的价格最优。为节日南瓜园购买南瓜的人可能需要这些信息,以优化南瓜包装的购买
现在你已经理解了线性回归背后的数学,我们来创建一个回归模型,看看是否能够预测哪种南瓜包装有最优价格。购买者想为假期制作南瓜田,这些信息可以帮助他们优化购买南瓜包装方案
## 寻找相关性
[![机器学习入门 - 寻找相关性:线性回归的关键](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "机器学习入门 - 寻找相关性:线性回归的关键")
[![ML for beginners - Looking for Correlation: The Key to Linear Regression](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "ML for beginners - Looking for Correlation: The Key to Linear Regression")
> 🎥 点击上方图片观看关于相关性的简短视频概述
> 🎥 点击上方图片观看相关性介绍短视频
从上一课中,您可能已经看到不同月份的平均价格如下所示
从上一课你大概看到了各月平均价格大致如下
<img alt="按月份的平均价格" src="../../../../translated_images/zh-CN/barchart.a833ea9194346d76.webp" width="50%"/>
<img alt="按月平均价格" src="../../../../translated_images/zh-CN/barchart.a833ea9194346d76.webp" width="50%"/>
表明可能存在某种相关性,我们可以尝试训练线性回归模型来预测 `Month``Price``DayOfYear``Price` 之间的关系。以下是显示后者关系的散点图:
说明可能存在一定程度的相关性,我们可以尝试训练线性回归模型来预测`Month`与`Price`之间,或者`DayOfYear`与`Price`之间的关系。下图展示了后者的散点图:
<img alt="价格与一年中的天数的散点图" src="../../../../translated_images/zh-CN/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
<img alt="价格 vs. 一年中的天数 散点图" src="../../../../translated_images/zh-CN/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
让我们使`corr` 函数查看是否存在相关性:
`corr` 函数查相关性:
```python
print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
```
看起来相关性很小,`Month` 的相关性为 -0.15`DayOfYear` 的相关性为 -0.17,但可能存在另一个重要关系。看起来不同南瓜品种对应的价格存在不同的聚类。为了验证这一假设,让我们为每种南瓜类别绘制不同颜色的点。通过向 `scatter` 绘图函数传递 `ax` 参数,我们可以将所有点绘制在同一个图上:
相关性看起来很小,`Month` 为 -0.15`DayOfYear` 为 -0.17,但可能存在其它重要的关系。看起来价格群聚对应不同南瓜品种。为了验证这个假设,我们用不同颜色为每个品种绘制散点图。通过向 `scatter` 绘图函数传递 `ax` 参数,所有点可绘制在同一张图上:
```python
ax=None
@ -128,75 +141,76 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
df = new_pumpkins[new_pumpkins['Variety']==var]
ax = df.plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var)
```
<img alt="价格 vs. 一年中的天数 散点图(彩色)" src="../../../../translated_images/zh-CN/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
<img alt="价格与一年中的天数的散点图" src="../../../../translated_images/zh-CN/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
我们的调查表明,品种对整体价格的影响比实际销售日期更大。我们可以通过柱状图看到这一点:
调查显示品种对总价影响大于实际销售日期。条形图如下:
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
```
<img alt="按品种分类的价格条形图" src="../../../../translated_images/zh-CN/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="价格与品种的柱状图" src="../../../../translated_images/zh-CN/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
让我们暂时专注于一种南瓜品种——“馅饼型”,看看日期对价格的影响:
暂时只关注南瓜品种 'pie type',观察日期对价格的影响:
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price')
```
<img alt="价格与一年中的天数的散点图" src="../../../../translated_images/zh-CN/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
<img alt="价格 vs. 一年中的天数 散点图(派南瓜)" src="../../../../translated_images/zh-CN/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
如果我们现在使`corr` 函数计算 `Price``DayOfYear` 之间的相关性,我们会得到类似 `-0.27` 的结果——这意味着训练预测模型是有意义的。
如果用 `corr` 函数计算 `Price``DayOfYear` 的相关系数,大约是 `-0.27` ——这意味着训练预测模型是合理的。
> 在训练线性回归模型之前,确保数据清洁非常重要。线性回归对缺失值的处理效果不好,因此清除所有空单元格是有意义的
> 在训练线性回归模型前,确保数据干净非常重要。线性回归对缺失值表现不好,因此建议删除所有空单元格
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
另一种方法是用对应列的均值填充这些空值。
另一种方法是用对应列的均值填充空值。
## 简单线性回归
[![机器学习入门 - 使用 Scikit-learn 进行线性和多项式回归](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "机器学习入门 - 使用 Scikit-learn 进行线性和多项式回归")
[![ML for beginners - Linear and Polynomial Regression using Scikit-learn](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "ML for beginners - Linear and Polynomial Regression using Scikit-learn")
> 🎥 点击上方图片观看关于线性和多项式回归的简短视频概述
> 🎥 点击上方图片观看线性回归与多项式回归介绍短视频
为了训练我们的线性回归模型,我们将使用 **Scikit-learn** 库。
训练线性回归模型,我们将使用**Scikit-learn**库。
```python
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
我们首先将输入值(特征)和预期输出(标签)分离到单独的 numpy 数组中
首先把输入值(特征)和预期输出(标签)分成两个 numpy 数组
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
> 注意,我们必须对输入数据使用 `reshape`,让线性回归模块能正确理解输入。线性回归期望输入是一个二维数组,数组的每一行是一个特征向量。我们这里只有一个输入,所以需要一个形状为 N×1 的数组,其中 N 是数据集大小。
> 请注意,我们必须对输入数据执行 `reshape`,以便线性回归包能够正确理解它。线性回归需要一个二维数组作为输入,其中数组的每一行对应于输入特征的向量。在我们的例子中,由于我们只有一个输入——我们需要一个形状为 N×1 的数组,其中 N 是数据集的大小。
然后,我们需要将数据分为训练集和测试集,以便在训练后验证我们的模型:
接着需要将数据拆分成训练集和测试集,以便训练后验证模型:
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
最后,训练实际的线性回归模型只需要两行代码。我们定义 `LinearRegression` 对象,并使用 `fit` 方法将其拟合到我们的数据:
最后,训练线性回归模型仅需两行代码。定义一个 `LinearRegression` 对象,用 `fit` 方法使其拟合数据:
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
`LinearRegression` 对象在 `fit` 后包含所有回归系数,可以通过 `.coef_` 属性访问。在我们的例子中,只有一个系数,大约是 `-0.017`。这意味着价格似乎随着时间略有下降,但幅度不大,每天大约下降 2 美分。我们还可以通过 `lin_reg.intercept_` 访问回归线与 Y 轴的交点——在我们的例子中,大约是 `21`,表示年初的价格。
`LinearRegression` 对象在 `fit` 后包含所有回归系数,可以通过 `.coef_` 属性访问。在我们的例子中,只有一个系数,约为 `-0.017`。这意味着价格似乎随着时间略微下降但幅度不大大约每天下降2美分。我们还可以使用 `lin_reg.intercept_` 访问回归与 Y 轴的交点 —— 对我们而言,它大约是 `21`,表示年初时的价格。
为了查看我们的模型有多准确我们可以预测测试数据集上的价格然后测量预测值与预期值的接近程度。这可以通过均方误差MSE指标完成它是所有预期值与预测值之间平方差的平均值。
为了查看模型的准确度我们可以对测试数据集进行价格预测然后测量预测结果与真实值的接近程度。这可以通过均方误差MSE指标完成即所有预测值与期望值差的平方的平均值。
```python
pred = lin_reg.predict(X_test)
@ -204,36 +218,38 @@ pred = lin_reg.predict(X_test)
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
```
我们的错误似乎集中在两个点上,大约是 17%。表现不太理想。另一个衡量模型质量的指标是 **决定系数**,可以通过以下方式获得:
我们的误差大约是2点约为17%。并不算好。模型质量的另一个指标是**决定系数**,可通过如下方式获得:
```python
score = lin_reg.score(X_train,y_train)
print('Model determination: ', score)
```
如果值为 0意味着模型没有考虑输入数据表现为*最差的线性预测器*,即结果的平均值。值为 1 表示我们可以完美预测所有期望的输出。在我们的案例中,决定系数约为 0.06,较低。
```
如果该值为0意味着模型不考虑输入数据表现仅作为*最差的线性预测器*即预测结果为结果的均值。值为1意味着我们可以完美预测所有期望输出。我们这里的决定系数约为0.06,非常低。
我们还可以将测试数据与回归线一起绘制,以更好地观察回归在我们案例中的表现
我们还可以将测试数据和回归直线一起绘制,以更好地观察回归效果
```python
plt.scatter(X_test,y_test)
plt.plot(X_test,pred)
```
<img alt="线性回归" src="../../../../translated_images/zh-CN/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
```
<img alt="Linear regression" src="../../../../translated_images/zh-CN/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
## 多项式回归
线性回归的另一种形式是多项式回归。有时变量之间存在线性关系——例如南瓜的体积越大,价格越高——但有时这些关系无法用平面或直线来表示。
另一种线性回归形式是多项式回归。虽然变量之间有时呈线性关系——比如南瓜体积越大,价格越高——但有时这些关系不能用平面或直线表示。
✅ 这里有一些[更多示例](https://online.stat.psu.edu/stat501/lesson/9/9.8),展示了可以使用多项式回归的数据。
✅ 这里有[一些更多示例](https://online.stat.psu.edu/stat501/lesson/9/9.8)适合使用多项式回归的数据。
再看看日期和价格间的关系。这个散点图看起来是否一定要用直线分析?价格难道不会波动?在这种情况下,可以尝试使用多项式回归。
再看看日期和价格间的关系。这个散点图一定要用直线分析?价格难道不会波动?在这种情况下,可以尝试多项式回归。
✅ 多项式是可能包含一个或多个变量和系数的数学表达式。
✅ 多项式是一种可能包含一个或多个变量与系数的数学表达式。
多项式回归会创建一条曲线,以更好地拟合非线性数据。在我们的案例中,如果将平方的 `DayOfYear` 变量包含在输入数据中,我们应该能够用抛物线拟合数据,该抛物线在一年中的某个点达到最低值。
多项式回归创建曲线,更好地拟合非线性数据。在本例中,如果我们加入平方的 `DayOfYear` 变量作为输入,应该能够用抛物线拟合数据,该曲线将在年内某一点达到最小值。
Scikit-learn 提供了一个非常有用的 [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline),可以将数据处理的不同步骤组合在一起。**管道**是**估计器**的链条。在我们的案例中,我们将创建一个管道,首先向模型添加多项式特征,然后训练回归:
Scikit-learn 提供了一个有用的 [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) 来组合不同的数据处理步骤。**管道**是一个**估计器**链。在这里,我们先为模型添加多项式特征,然后训练回归:
```python
from sklearn.preprocessing import PolynomialFeatures
@ -242,43 +258,43 @@ from sklearn.pipeline import make_pipeline
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
```
使用 `PolynomialFeatures(2)` 表示我们将包含输入数据中的所有二次多项式。在我们的案例中,这仅意味着 `DayOfYear`<sup>2</sup>,但如果有两个输入变量 X 和 Y这将添加 X<sup>2</sup>、XY 和 Y<sup>2</sup>。如果需要,我们也可以使用更高次的多项式。
```
使用 `PolynomialFeatures(2)` 意味着将包含所有输入数据的二阶多项式。在我们的例子中,这仅表示 `DayOfYear`<sup>2</sup>,但若有两个输入变量 X 和 Y则会增加 X<sup>2</sup>、XY 和 Y<sup>2</sup>。如果需要,也可以使用更高次的多项式。
管道可以像原始`LinearRegression` 对象一样使用,例如我们可以 `fit` 管道,然后使用 `predict` 获取预测结果。以下是显示测试数据和拟合曲线的图表
管道可以像原始 `LinearRegression` 对象一样使用,即先 `fit` 管道,再用 `predict` 获取预测结果。下面的图显示了测试数据及其拟合曲线
<img alt="多项式回归" src="../../../../translated_images/zh-CN/poly-results.ee587348f0f1f60b.webp" width="50%" />
<img alt="Polynomial regression" src="../../../../translated_images/zh-CN/poly-results.ee587348f0f1f60b.webp" width="50%" />
使用多项式回归,我们可以获得稍低的 MSE 和稍高的决定系数,但提升并不显著。我们需要考虑其他特征!
使用多项式回归,我们可以获得稍低的 MSE 和更高的决定系数,但提升有限。我们需要考虑其他特征!
> 可以看到南瓜价格最低点大约出现在万圣节附近。你如何解释这一现象
> 你可以看到最低的南瓜价格大约出现在万圣节附近。你能解释为什么吗
🎃 恭喜你!你刚刚创建了一个可以帮助预测南瓜派价格的模型。你可能可以对所有南瓜类型重复相同的过程,但这会很繁琐。现在让我们学习如何在模型中考虑南瓜品种!
🎃 恭喜,你刚刚创建了一个能预测馅饼南瓜价格的模型。你或许也能用相同方法处理所有南瓜品种,但那会很繁琐。现在让我们学习如何在模型中考虑南瓜品种!
## 类特征
## 类特征
理想情况下,我们希望能够使用同一个模型预测不同南瓜品种的价格。然而,`Variety` 列与 `Month` 等列有所不同,因为它包含非数值值。这类列被称为**分类特征**。
理想情况下,我们希望用同一个模型预测不同南瓜品种的价格。然而,`Variety` 列与 `Month` 类似的列不同,因为它包含非数字值。这样的列称为**类别特征**。
[![机器学习入门 - 使用线性回归预测分类特征](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "机器学习入门 - 使用线性回归预测分类特征")
[![ML for beginners - Categorical Feature Predictions with Linear Regression](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
> 🎥 点击上方图片观看关于使用分类特征的简短视频概述
> 🎥 点击上图观看关于使用类别变量的简短视频介绍
以下是品种与平均价格的关系
这是平均价格如何随品种变化的示意图
<img alt="按品种划分的平均价格" src="../../../../translated_images/zh-CN/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Average price by variety" src="../../../../translated_images/zh-CN/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
为了考虑品种,我们首先需要将其转换为数值形式,或者说**编码**。有几种方法可以实现
为了考虑品种,我们首先需要将其转换为数字形式,即**编码**。有几种方式
* 简单的**数值编码**会构建一个不同品种的表格,然后用表格中的索引替换品种名称。这对线性回归来说不是最好的选择,因为线性回归会将索引的实际数值考虑在内,并通过某个系数与结果相乘。在我们的案例中,索引号与价格之间的关系显然是非线性的,即使我们确保索引按某种特定方式排序
* **独热编码**会`Variety` 列替换为 4 个不同的列,每个品种对应一个列。如果某行属于某个品种,该列值为 `1`,否则为 `0`。这意味着线性回归中会有四个系数,每个南瓜品种对应一个,负责该品种的“起始价格”(或“附加价格”)。
* 简单的**数值编码**会建立一个品种表,然后用该表中的索引替换品种名。这对线性回归不是最佳,因为线性回归会把索引作为数值处理,乘以系数累加到结果中。在我们例子中,索引与价格的关系明显非线性,即使确保索引按特定顺序排列
* **独热编码**会`Variety` 列替换为4个独立的列每列代表一个品种。对应品种的行该列为 `1`,其他为 `0`。这意味着在线性回归中会有四个系数 ,分别对应每个南瓜品种,代表该品种的“起始价格”(或更准确说是“附加价格”)。
以下代码展示了如何对品种进行独热编码:
下面代码演示如何对品种进行独热编码:
```python
pd.get_dummies(new_pumpkins['Variety'])
```
```
ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE
----|-----------|-----------|--------------------------|----------
70 | 0 | 0 | 0 | 1
@ -290,14 +306,14 @@ pd.get_dummies(new_pumpkins['Variety'])
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
为了使用独热编码的品种作为输入训练线性回归,我们只需正确初始化 `X``y` 数据:
用独热编码的品种作为输入训练线性回归,只需正确初始化 `X``y` 数据:
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
其余代码与我们之前用于训练线性回归的代码相同。如果尝试,你会发现均方误差差不多,但决定系数显著提高(约 77%)。为了获得更准确的预测,我们可以考虑更多分类特征以及数值特征,例如 `Month``DayOfYear`。为了获得一个大的特征数组,我们可以使用 `join`
```
其余代码与之前训练线性回归的一样。尝试后可以看到均方误差大致相同但决定系数大幅提升约77%)。为了获得更准确的预测,我们可以同时考虑更多类别特征和数值特征,如 `Month``DayOfYear`。使用 `join` 可以得到一个大的特征数组
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@ -305,69 +321,70 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
.join(pd.get_dummies(new_pumpkins['City'])) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
```
这里我们还考虑了 `City``Package` 类型,这使得 MSE 降至 2.8410%),决定系数提高到 0.94
```
这里我们同时考虑了 `City``Package` 类型,得到 MSE 为 2.8410%),决定系数为 0.94
## 综合起来
## 综合应用
为了构建最佳模型,我们可以将上述示例中的组合数据(独热编码分类特征 + 数值特征)与多项式回归一起使用。以下是完整代码供参考
为了拟合最优模型,我们可以将上述的组合数据(独热编码类别 + 数值)和多项式回归结合。方便起见,完整代码如下
```python
# set up training data
# 设置训练数据
X = pd.get_dummies(new_pumpkins['Variety']) \
.join(new_pumpkins['Month']) \
.join(pd.get_dummies(new_pumpkins['City'])) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
# make train-test split
# 做训练-测试拆分
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# setup and train the pipeline
# 设置并训练流水线
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
# predict results for test data
# 预测测试数据结果
pred = pipeline.predict(X_test)
# calculate MSE and determination
# 计算均方误差和确定系数
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
score = pipeline.score(X_train,y_train)
print('Model determination: ', score)
```
这应该能让我们获得接近 97% 的决定系数,以及 MSE=2.23(约 8% 的预测误差)。
```
这应获得接近97%的最佳决定系数MSE=2.23约8%的预测误差)。
| 模型 | MSE | 决定系数 |
|-------|-----|---------------|
| `DayOfYear` 线性 | 2.77 (17.2%) | 0.07 |
| `DayOfYear` 多项式 | 2.73 (17.0%) | 0.08 |
| `Variety` 线性 | 5.24 (19.7%) | 0.77 |
| 所有特征线性 | 2.84 (10.5%) | 0.94 |
| 所有特征多项式 | 2.23 (8.25%) | 0.97 |
| `DayOfYear` 线性模型 | 2.77 (17.2%) | 0.07 |
| `DayOfYear` 多项式模型 | 2.73 (17.0%) | 0.08 |
| `Variety` 线性模型 | 5.24 (19.7%) | 0.77 |
| 全特征 线性模型 | 2.84 (10.5%) | 0.94 |
| 全特征 多项式模型 | 2.23 (8.25%) | 0.97 |
🏆 做得好!你在一节课中创建了四个回归模型,并将模型质量提升至 97%。在回归的最后一部分中,你将学习如何使用逻辑回归来确定类别
🏆 做得好!在本节课中你创建了四个回归模型并将模型质量提升至97%。回归的最后一节你将学习用于确定类别的逻辑回归
---
## 🚀挑战
在此笔记本中测试几个不同的变量,观察相关性如何影响模型准确性
在此笔记本中测试多个不同变量,观察相关性如何对应模型准确度
## [课后测验](https://ff-quizzes.netlify.app/en/ml/)
## 复习与自学
本课中我们学习了线性回归。还有其他重要的回归类型。阅读关于逐步回归、岭回归、套索回归和弹性网络技术的内容。一个不错的学习课程是 [斯坦福统计学习课程](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
本课学习了线性回归。还有其他重要的回归类型。阅读逐步回归、岭回归、套索回归和弹性网络技术。推荐学习的优秀课程是 [斯坦福统计学习课程](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
## 作业
[构建一个模型](assignment.md)
[构建模型](assignment.md)
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免责声明**
本文档使用AI翻译服务[Co-op Translator](https://github.com/Azure/co-op-translator)进行翻译。尽管我们努力确保准确性,但请注意,自动翻译可能包含错误或不准确之处。应以原始语言的文档作为权威来源。对于关键信息,建议使用专业人工翻译。因使用本翻译而引起的任何误解或误读,我们概不负责。
本文件使用 AI 翻译服务 [Co-op Translator](https://github.com/Azure/co-op-translator) 进行翻译。尽管我们力求准确,但请注意自动翻译可能包含错误或不准确之处。原始文档的母语版本应被视为权威来源。对于重要信息,建议采用专业人工翻译。我们不对因使用此翻译而引起的任何误解或误释承担责任。
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,42 +1,42 @@
# 美食分类器 2
# Cuisine classifiers 2
在第二节分类课程中,您将探索更多分类数值数据的方法。同时,您还将了解选择不同分类器的影响。
在第二节分类课程中,您将探索更多对数值数据进行分类的方法。您还将了解选择不同分类器的影响。
## [课前测验](https://ff-quizzes.netlify.app/en/ml/)
### 前提条件
### 先决条件
我们假设您已经完成了之前的课程,并在本四节课程的根目录中的 `data` 文件夹中准备了一个名为 _cleaned_cuisines.csv_ 的清理过的数据集
假设您已经完成了之前的课程,并且在该 4 节课程文件夹根目录的 `data` 文件夹中有一个清洗好的数据集文件 _cleaned_cuisines.csv_
### 准备工作
我们已经将清理过的数据集加载到您的 _notebook.ipynb_ 文件中,并将其分为 X 和 y 数据框,准备进行模型构建。
我们已经加载了包含清洗后数据集的 _notebook.ipynb_ 文件,并将其分拆成 X 和 y 两个数据框,准备好进行模型构建。
## 分类
## 分类图
之前,您已经了解了使用微软的速查表对数据进行分类的各种选项。Scikit-learn 提供了一个类似但更详细的速查表,可以进一步帮助您缩小选择范围(分类器的另一种说法是估计器)
之前,您通过微软的分类小抄了解了分类数据时的各种选择。Scikit-learn 提供了一个类似但更细致的分类小抄,可以进一步帮助收窄你的估计器(分类器)选择
![Scikit-learn 的机器学习地图](../../../../4-Classification/3-Classifiers-2/images/map.png)
> 提示[在线访问此地图](https://scikit-learn.org/stable/tutorial/machine_learning_map/),点击路径以阅读相关文档。
![ML Map from Scikit-learn](../../../../translated_images/zh-CN/map.e963a6a51349425a.webp)
> 提示: [在线查看该图谱](https://scikit-learn.org/stable/tutorial/machine_learning_map/) 并点击路径查看文档。
### 计划
一旦您对数据有了清晰的理解,这张地图就非常有用,您可以沿着它的路径做出决策:
一旦您对数据有了清晰的理解,这张图谱非常有帮助,您可以沿着路径做决策:
- 我们有 >50 个样本
- 我们希望预测一个类别
- 我们有标数据
- 我们的样本少于 100K
- ✨ 我们可以选择一个线性 SVC
- 如果这不起作用,因为我们有数值数据
- 我们可以尝试 ✨ KNeighbors 分类器
- 如果这不起作用,可以尝试 ✨ SVC 和 ✨ 集成分类器
- 我们有超过 50 个样本
- 我们预测一个类别
- 我们有标数据
- 我们有少于 10 万个样本
- ✨ 我们可以选择线性 SVC
- 如果不行,因为我们有数值数据
- 可以尝试 ✨ KNeighbors 分类器
- 如果不行,再尝试 ✨ SVC 和 ✨ 集成分类器
这是一条非常有帮助的路径。
这是一个很有帮助的思路路径。
## 练习 - 分数据
## 练习 - 分数据
按照这条路径,我们应该先导入一些需要使用的库。
沿着这个路径,先导入一些需要使用的库。
1. 导入所需的库:
@ -50,31 +50,31 @@
import numpy as np
```
1. 划分训练数据和测试数据
1. 拆分训练集和测试集
```python
X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
X_train, X_test, y_train, y_test = train_test_split(cuisines_features_df, cuisines_label_df, test_size=0.3)
```
## 线性 SVC 分类器
支持向量聚类SVC是支持向量机SVM机器学习技术家族的一部分下面可以了解更多。在这种方法中您可以选择一个“核函数”来决定如何聚类标签。“C”参数指的是“正则化”用于调节参数的影响。核函数可以是[多种选项](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC)之一;这里我们将其设置为“线性”,以确保我们使用线性 SVC。概率默认值为“false”这里我们将其设置为“true”以获取概率估计。我们将随机状态设置为“0”以打乱数据以获取概率
支持向量SVC是支持向量机家族的机器学习技术之一后文将深入了解。此方法中您可以选用“核函数”来决定如何聚类标签。“C”参数指正则化控制参数对模型的影响。核函数可以是 [多种](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC)之一;这里我们将其设为 'linear' 以使用线性 SVC。概率默认是 'false';这里设置为 'true' 以收集概率估计。为了打乱数据并得到概率,我们将随机状态设为 '0'
### 练习 - 应用线性 SVC
首先创建一个分类器数组。随着测试的进行,您将逐步向该数组添加内容
先创建一个分类器数组,后续测试将逐步添加
1. 从线性 SVC 开始:
1. 先创建一个线性 SVC:
```python
C = 10
# Create different classifiers.
# 创建不同的分类器。
classifiers = {
'Linear SVC': SVC(kernel='linear', C=C, probability=True,random_state=0)
}
```
2. 使用线性 SVC 训练您的模型并打印报告:
2. 用线性 SVC 训练模型并打印报告:
```python
n_classifiers = len(classifiers)
@ -105,21 +105,21 @@
weighted avg 0.79 0.79 0.79 1199
```
## K-Neighbors 分类器
## K-邻近分类器
K-Neighbors 是机器学习方法中“邻居”家族的一部分,可用于监督学习和非监督学习。在这种方法中,创建了预定义数量的点,并围绕这些点收集数据,以便预测数据的通用标签。
K-邻近属于邻居类机器学习方法,可用于有监督和无监督学习。此方法定义预设点数,数据聚集于这些点周围,从而预测数据的一般化标签。
### 练习 - 应用 K-Neighbors 分类器
### 练习 - 应用 K-邻近分类器
之前的分类器表现不错,适合数据,但也许我们可以获得更好的准确性。尝试使用 K-Neighbors 分类器。
先前的分类器效果不错,并且适配数据,但我们可能能得到更好的准确率。试试 K-邻近分类器。
1. 在分类器数组中添加一行(在线性 SVC 项后添加逗号):
1. 在分类器数组中添加一行(在线性 SVC 项后添加逗号):
```python
'KNN classifier': KNeighborsClassifier(C),
```
结果稍差一
结果稍差一
```output
Accuracy (train) for KNN classifier: 73.8%
@ -136,23 +136,23 @@ K-Neighbors 是机器学习方法中“邻居”家族的一部分,可用于
weighted avg 0.76 0.74 0.74 1199
```
了解 [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
学习关于 [K-邻近](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
## 支持向量分类器
支持向量分类器是[支持向量机](https://wikipedia.org/wiki/Support-vector_machine)机器学习方法家族的一部分可用于分类和回归任务。SVM 将“训练样本映射到空间中的点”,以最大化两个类别之间的距离。后续数据被映射到该空间,以预测其类别。
支持向量分类器是 [支持向量机](https://wikipedia.org/wiki/Support-vector_machine) 家族的机器学习方法,用于分类与回归任务。支持向量机“将训练样本映射为空间中的点”,以最大化两类别之间的距离。之后的数据映射进空间以预测类别。
### 练习 - 应用支持向量分类器
让我们尝试使用支持向量分类器获得更好的准确性
尝试用支持向量分类器提升准确率
1. 在 K-Neighbors 项目后添加逗号,然后添加以下行:
1. 在 K-邻近项后加逗号,然后添加此行:
```python
'SVC': SVC(),
```
结果非常好
结果很不错
```output
Accuracy (train) for SVC: 83.2%
@ -169,18 +169,18 @@ K-Neighbors 是机器学习方法中“邻居”家族的一部分,可用于
weighted avg 0.84 0.83 0.83 1199
```
了解 [支持向量](https://scikit-learn.org/stable/modules/svm.html#svm)
学习关于 [支持向量](https://scikit-learn.org/stable/modules/svm.html#svm)
## 集成分类器
让我们沿着路径走到最后,尽管之前的测试结果已经非常好。尝试一些“集成分类器”,特别是随机森林和 AdaBoost
我们沿路径尝试到最终,尽管之前测试效果不错,还是试试“集成分类器”,具体是随机森林和 AdaBoost
```python
'RFST': RandomForestClassifier(n_estimators=100),
'ADA': AdaBoostClassifier(n_estimators=100)
```
结果非常好,尤其是随机森林:
结果非常好,特别是随机森林:
```output
Accuracy (train) for RFST: 84.5%
@ -210,31 +210,33 @@ Accuracy (train) for ADA: 72.4%
weighted avg 0.73 0.72 0.72 1199
```
了解 [集成分类器](https://scikit-learn.org/stable/modules/ensemble.html)
学习关于 [集成分类器](https://scikit-learn.org/stable/modules/ensemble.html)
这种机器学习方法“结合多个基础估计器的预测”,以提高模型质量。在我们的示例中,我们使用了随机森林和 AdaBoost。
这种机器学习方法“结合多个基估计器的预测”来提升模型质量。在我们的示例中,使用了随机树和 AdaBoost。
- [随机森林](https://scikit-learn.org/stable/modules/ensemble.html#forest),一种平均方法,构建了一个随机性注入的“决策树森林”以避免过拟合。n_estimators 参数设置为树的数量。
- [随机森林](https://scikit-learn.org/stable/modules/ensemble.html#forest),一种平均方法,构建大量注入随机性的“决策树”的森林以避免过拟合。n_estimators 参数设为树的数量。
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) 将分类器拟合到数据集,然后将该分类器的副本拟合到同一数据集。它关注错误分类项的权重,并调整下一分类器的拟合以进行纠正
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) 拟合一个分类器到数据集,然后拟合该分类器的副本到同一数据集。它关注分类错误样本的权重,并调整后续分类器的拟合以纠正错误
---
## 🚀挑战
每种技术都有大量参数可以调整。研究每种技术的默认参数,并思考调整这些参数对模型质量的影响
每种技术都有大量参数可调。研究它们各自的默认参数,思考调整这些参数对模型质量意味着什么
## [课后测验](https://ff-quizzes.netlify.app/en/ml/)
## 复习与自学
这些课程中有很多术语,因此花点时间复习[这个术语表](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott),非常有用
这些课程中有大量术语,花点时间复习 [这份术语表](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) 吧
## 作业
## 作业
[参数调整](assignment.md)
[参数练习](assignment.md)
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免责声明**
本文档使用AI翻译服务[Co-op Translator](https://github.com/Azure/co-op-translator)进行翻译。尽管我们努力确保准确性,但请注意,自动翻译可能包含错误或不准确之处。应以原始语言的文档作为权威来源。对于关键信息,建议使用专业人工翻译。对于因使用本翻译而引起的任何误解或误读,我们概不负责。
本文档使用AI翻译服务[Co-op Translator](https://github.com/Azure/co-op-translator)进行翻译。虽然我们努力确保准确性,但请注意自动翻译可能包含错误或不准确之处。原始语言的文档应被视为权威来源。对于关键信息,建议使用专业人工翻译。我们不对因使用本翻译而产生的任何误解或误释承担责任。
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -4,7 +4,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"构建分类模型\n"
"# 构建分类模型\n"
]
},
{
@ -116,15 +116,15 @@
}
],
"source": [
"cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_feature_df.head()"
"cuisines_features_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_features_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**免责声明** \n本文档使用AI翻译服务[Co-op Translator](https://github.com/Azure/co-op-translator)进行翻译。虽然我们尽力确保翻译的准确性,但请注意,自动翻译可能包含错误或不准确之处。原始语言的文档应被视为权威来源。对于关键信息,建议使用专业人工翻译。我们不对因使用此翻译而产生的任何误解或误读承担责任。\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**免责声明**\n本文件由 AI 翻译服务 [Co-op Translator](https://github.com/Azure/co-op-translator) 翻译而成。尽管我们力求准确,但请注意,自动翻译可能包含错误或不准确之处。原始文件的原文应视为权威来源。对于重要信息,建议使用专业人工翻译。我们不对因使用本翻译而产生的任何误解或误读承担责任。\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -152,12 +152,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "15a83277036572e0773229b5f21c1e12",
"translation_date": "2025-09-03T20:27:20+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "zh"
}
},
"nbformat": 4,

@ -116,8 +116,8 @@
}
],
"source": [
"cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_feature_df.head()"
"cuisines_features_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_features_df.head()"
]
},
{
@ -148,7 +148,7 @@
"metadata": {},
"outputs": [],
"source": [
"X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)"
"X_train, X_test, y_train, y_test = train_test_split(cuisines_features_df, cuisines_label_df, test_size=0.3)"
]
},
{
@ -263,7 +263,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**免责声明** \n本文档使用AI翻译服务[Co-op Translator](https://github.com/Azure/co-op-translator)进行翻译。尽管我们努力确保翻译的准确性,但请注意,自动翻译可能包含错误或不准确之处。原始语言的文档应被视为权威来源。对于关键信息,建议使用专业人工翻译。我们对因使用此翻译而产生的任何误解或误读不承担责任。\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**免责声明**\n本文档通过 AI 翻译服务 [Co-op Translator](https://github.com/Azure/co-op-translator) 进行了翻译。虽然我们力求准确,但请注意自动翻译可能包含错误或不准确之处。请以原始语言的原始文档为权威来源。对于重要内容,建议采用专业人工翻译。我们不对因使用本翻译而产生的任何误解或误释承担责任。\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -291,12 +291,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "7ea2b714669c823a596d986ba2d5739f",
"translation_date": "2025-09-03T20:27:44+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "zh"
}
},
"nbformat": 4,

@ -13,73 +13,82 @@
#### 通过 GitHub Action 支持(自动且始终保持最新)
<!-- CO-OP TRANSLATOR LANGUAGES TABLE START -->
[阿拉伯语](../ar/README.md) | [孟加拉语](../bn/README.md) | [保加利亚语](../bg/README.md) | [缅甸语(缅甸)](../my/README.md) | [中文(简体)](./README.md) | [中文(繁体,香港)](../zh-HK/README.md) | [中文(繁体,澳门)](../zh-MO/README.md) | [中文(繁体,台湾)](../zh-TW/README.md) | [克罗地亚语](../hr/README.md) | [捷克语](../cs/README.md) | [丹麦语](../da/README.md) | [荷兰语](../nl/README.md) | [爱沙尼亚语](../et/README.md) | [芬兰语](../fi/README.md) | [法语](../fr/README.md) | [德语](../de/README.md) | [希腊语](../el/README.md) | [希伯来语](../he/README.md) | [印地语](../hi/README.md) | [匈牙利语](../hu/README.md) | [印度尼西亚语](../id/README.md) | [意大利语](../it/README.md) | [日语](../ja/README.md) | [卡纳达语](../kn/README.md) | [韩语](../ko/README.md) | [立陶宛语](../lt/README.md) | [马来语](../ms/README.md) | [马拉雅拉姆语](../ml/README.md) | [马拉地语](../mr/README.md) | [尼泊尔语](../ne/README.md) | [尼日利亚洋泾浜语](../pcm/README.md) | [挪威语](../no/README.md) | [波斯语(法尔西语)](../fa/README.md) | [波兰语](../pl/README.md) | [葡萄牙语(巴西)](../pt-BR/README.md) | [葡萄牙语(葡萄牙)](../pt-PT/README.md) | [旁遮普语(古鲁穆奇)](../pa/README.md) | [罗马尼亚语](../ro/README.md) | [俄语](../ru/README.md) | [塞尔维亚语(西里尔字母)](../sr/README.md) | [斯洛伐克语](../sk/README.md) | [斯洛文尼亚语](../sl/README.md) | [西班牙语](../es/README.md) | [斯瓦希里语](../sw/README.md) | [瑞典语](../sv/README.md) | [他加禄语(菲律宾语)](../tl/README.md) | [泰米尔语](../ta/README.md) | [卢固语](../te/README.md) | [泰语](../th/README.md) | [土耳其语](../tr/README.md) | [乌克兰语](../uk/README.md) | [乌尔都语](../ur/README.md) | [越南语](../vi/README.md)
[阿拉伯语](../ar/README.md) | [孟加拉语](../bn/README.md) | [保加利亚语](../bg/README.md) | [缅甸语](../my/README.md) | [中文(简体)](./README.md) | [中文(繁体,香港)](../zh-HK/README.md) | [中文(繁体,澳门)](../zh-MO/README.md) | [中文(繁体,台湾)](../zh-TW/README.md) | [克罗地亚语](../hr/README.md) | [捷克语](../cs/README.md) | [丹麦语](../da/README.md) | [荷兰语](../nl/README.md) | [爱沙尼亚语](../et/README.md) | [芬兰语](../fi/README.md) | [法语](../fr/README.md) | [德语](../de/README.md) | [希腊语](../el/README.md) | [希伯来语](../he/README.md) | [印地语](../hi/README.md) | [匈牙利语](../hu/README.md) | [印度尼西亚语](../id/README.md) | [意大利语](../it/README.md) | [日语](../ja/README.md) | [卡纳达语](../kn/README.md) | [韩语](../ko/README.md) | [立陶宛语](../lt/README.md) | [马来语](../ms/README.md) | [马拉雅拉姆语](../ml/README.md) | [马拉地语](../mr/README.md) | [尼泊尔语](../ne/README.md) | [尼日利亚皮钦语](../pcm/README.md) | [挪威语](../no/README.md) | [波斯语(法尔西语)](../fa/README.md) | [波兰语](../pl/README.md) | [葡萄牙语(巴西)](../pt-BR/README.md) | [葡萄牙语(葡萄牙)](../pt-PT/README.md) | [旁遮普语(古鲁穆奇)](../pa/README.md) | [罗马尼亚语](../ro/README.md) | [俄语](../ru/README.md) | [塞尔维亚语(西里尔字母)](../sr/README.md) | [斯洛伐克语](../sk/README.md) | [斯洛文尼亚语](../sl/README.md) | [西班牙语](../es/README.md) | [斯瓦希里语](../sw/README.md) | [瑞典语](../sv/README.md) | [塔加洛语(菲律宾语)](../tl/README.md) | [泰米尔语](../ta/README.md) | [卢固语](../te/README.md) | [泰语](../th/README.md) | [土耳其语](../tr/README.md) | [乌克兰语](../uk/README.md) | [乌尔都语](../ur/README.md) | [越南语](../vi/README.md)
> **更偏好本地克隆?**
> 此仓库包含 50 多种语言翻译,显著增加下载大小。若想不含翻译克隆,请使用稀疏检出:
> **更喜欢本地克隆?**
>
> 此仓库包含 50 多种语言的翻译,显著增加下载大小。若想不含翻译地克隆仓库,请使用稀疏检出:
>
> **Bash / macOS / Linux:**
> ```bash
> git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git
> cd ML-For-Beginners
> git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'
> ```
> 这给你提供完成课程所需的一切,且下载更迅速。
>
> **CMDWindows**
> ```cmd
> git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git
> cd ML-For-Beginners
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ```
>
> 这样您将获得完成课程所需的全部内容,同时下载速度更快。
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
#### 加入我们的社区
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
我们正在进行 Discord 上的 AI 学习系列,了解更多并加入我们,时间为 2025 年 9 月 18 日至 30 日,访问 [Learn with AI Series](https://aka.ms/learnwithai/discord)。你将获得使用 GitHub Copilot 进行数据科学的技巧和窍门。
我们正在进行一个 Discord AI 学习系列,了解更多并于 2025 年 9 月 18 日至 30 日加入我们,访问 [Learn with AI Series](https://aka.ms/learnwithai/discord)。您将获得使用 GitHub Copilot 进行数据科学的技巧和窍门。
![Learn with AI series](../../translated_images/zh-CN/3.9b58fd8d6c373c20.webp)
# 面向初学者的机器学习课程
> 🌍 通过世界文化探索机器学习,环游世界之旅 🌍
> 🌍 通过探索世界文化,环游世界学习机器学习 🌍
微软云倡导者很高兴提供一门为期12周、26课的**机器学习**课程。在本课程中,你将学习有时称为**经典机器学习**的内容,主要使用 Scikit-learn 库,避开深度学习,后者包含在我们的 [AI 初学者课程](https://aka.ms/ai4beginners) 中。你还可以搭配我们的 [数据科学初学者课程](https://aka.ms/ds4beginners) 一起学习!
微软云倡导者很高兴推出一个为期 12 周、共 26 课的**机器学习**课程。在本课程中,您将学习有时被称为**经典机器学习**的知识,主要使用 Scikit-learn 库,避免深度学习,后者包含在我们的[AI for Beginners 课程](https://aka.ms/ai4beginners)中。也可将这些课程与我们的[数据科学初学者课程](https://aka.ms/ds4beginners)搭配使用。
跟随我们环游世界,应用这些经典技术于全球各地的数据。每课包含课前和课后测验、书面指导、解决方案、作业等内容。我们的基于项目的教学方法让你在实践中学习,这是一种经验证的技能掌握方式。
跟随我们环游世界,将这些经典技术应用于来自全球各地的数据。每节课包括课前和课后测验、书面指导完成课程、解决方案、作业等。我们基于项目的教学法允许您在构建中学习,这是一种经验证的新技能“沉淀”方式。
**✍️ 衷心感谢我们的作者** Jen Looper、Stephen Howell、Francesca Lazzeri、Tomomi Imura、Cassie Breviu、Dmitry Soshnikov、Chris Noring、Anirban Mukherjee、Ornella Altunyan、Ruth Yakubu 和 Amy Boyd
**🎨 同时感谢我们的插画师** Tomomi Imura、Dasani Madipalli 和 Jen Looper
**🙏 特别感谢 🙏 微软学生大使作者、评审及内容贡献者**,特别是 Rishit Dagli、Muhammad Sakib Khan Inan、Rohan Raj、Alexandru Petrescu、Abhishek Jaiswal、Nawrin Tabassum、Ioan Samuila 和 Snigdha Agarwal
**🎨 同样感谢我们的插画师** Tomomi Imura、Dasani Madipalli 和 Jen Looper
**🤩 额外感谢微软学生大使 Eric Wanjau、Jasleen Sondhi 和 Vidushi Gupta 对我们 R 语言课程的贡献!**
**🙏 特别感谢我们的微软学生大使作者、评审和内容贡献者**,尤其是 Rishit Dagli、Muhammad Sakib Khan Inan、Rohan Raj、Alexandru Petrescu、Abhishek Jaiswal、Nawrin Tabassum、Ioan Samuila 和 Snigdha Agarwal
# 入门指南
**🤩 额外感谢微软学生大使 Eric Wanjau、Jasleen Sondhi 和 Vidushi Gupta 对我们的 R 课程贡献!**
按以下步骤操作:
1. **Fork 仓库**点击本页右上角的“Fork”按钮。
2. **克隆仓库**`git clone https://github.com/microsoft/ML-For-Beginners.git`
# 快速开始
> [在我们的 Microsoft Learn 集合中查找本课程的所有附加资源](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
请按照以下步骤操作:
1. **Fork 仓库**点击本页右上角的「Fork」按钮。
2. **克隆仓库** `git clone https://github.com/microsoft/ML-For-Beginners.git`
> 🔧 **需要帮助?** 请查看我们的 [疑难解答指南](TROUBLESHOOTING.md),了解安装、设置和运行课程常见问题的解决方案。
> [在我们的 Microsoft Learn 集合中查看本课程的所有附加资源](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> 🔧 **需要帮助?** 查看我们的[故障排除指南](TROUBLESHOOTING.md),解决安装、设置及课程运行的常见问题。
**[学生](https://aka.ms/student-page)**要使用本课程,请 fork 整个仓库至你自己的 GitHub 账户,独立或组队完成练习:
**[学生](https://aka.ms/student-page)**使用本课程时,请将整个仓库 Fork 到自己的 GitHub 账户中,单独或组队完成练习:
- 从课前测验开始。
- 阅读讲义,完成活动,每个知识点检查时暂停并反思。
- 尽量通过理解课程内容自己动手创建项目,不仅仅是运行解决方案代码;解决方案代码可在每个项目导向课程的 `/solution` 文件夹中找到
- 阅读课程并完成活动,在每个知识点检查处暂停反思。
- 通过理解课程来尝试创建项目,而非直接运行解决方案代码;解决方案代码位于每个面向项目的课程的 `/solution` 文件夹中
- 参加课后测验。
- 完成挑战。
- 完成作业。
- 完成课程组后,访问[讨论区](https://github.com/microsoft/ML-For-Beginners/discussions),通过填写适当的 PAT 评分量表“大胆表达学习感受”。“PAT”是一个进度评估工具填写它有助于加深学习。你也可以对其他人的 PAT 进行回应,大家共同学习。
- 完成一组课程后,访问[讨论板](https://github.com/microsoft/ML-For-Beginners/discussions),通过填写相应的 PAT 评分表“边学边分享”。“PAT”是进度评估工具填写后能促进您的学习。您还可以对其他人的 PAT 进行反应,与大家共同学习。
> 深入学习建议跟进这些 [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) 模块和学习途径。
> 进一步学习可推荐参阅这些[Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott)模块与学习路径。
**教师**,我们提供了 [一些建议](for-teachers.md) 来辅助你使用本课程。
**教师**,我们提供了[一些建议](for-teachers.md),帮助您使用本课程。
---
## 视频讲解
部分课程提供短视频形式。你可以在课程内嵌链接或通过点击下面图片访问[微软开发者 YouTube 频道的“ML for Beginners”播放列表](https://aka.ms/ml-beginners-videos)
部分课程提供短视频版本。您可在课程内直接观看,或在微软开发者 YouTube 频道的[ML for Beginners 播放列表](https://aka.ms/ml-beginners-videos)中点击下方图片观看所有视频
[![ML for beginners banner](../../translated_images/zh-CN/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
@ -89,135 +98,140 @@
[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
**Gif 作者** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
**Gif 动图作者** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
> 🎥 点击上方图片,观看项目及开发团队视频!
> 🎥 点击上方图片观看关于项目和团队成员的视频!
---
## 教学理念
## 教学
构建本课程时,我们遵循了两个教学原则:确保课程是动手的**基于项目教学**,并包含**频繁测验**。此外,课程具备统一的**主题**,以增强课程整体性。
构建本课程时,我们选择了两项教学原则:确保课程是**动手的项目型学习**,并包含**频繁测验**。此外,课程具备统一的**主题**以增强连贯性。
通过使内容与项目紧密结合让学习过程更吸引人提升概念记忆度。课前低压力测验激发学习意图课后测验帮助巩固知识。课程设计灵活且趣味十足可整体或部分学习。项目由浅入深层层递进贯穿12周周期。课程还包括有关机器学习实际应用的附录供加分或讨论使用
通过确保内容与项目对齐,学习过程更具吸引力,知识点的掌握和记忆力也将有所提升。此外,课前的低风险测验帮助学生树立学习目标,课后的测验则确保知识的巩固。课程设计灵活且有趣,可整套或部分学习。项目从简单开始,到 12 周结束时逐渐复杂。本课程还包含真实世界机器学习应用的补充内容,可用于额外加分或讨论基础
> 请查阅我们的 [行为规范](CODE_OF_CONDUCT.md)、[贡献指南](CONTRIBUTING.md)、[翻译指南](TRANSLATIONS.md) 和 [疑难解答](TROUBLESHOOTING.md)。我们欢迎你的建设性反馈!
> 查看我们的[行为准则](CODE_OF_CONDUCT.md)、[贡献指南](CONTRIBUTING.md)、[翻译指南](TRANSLATIONS.md)和[故障排除](TROUBLESHOOTING.md)指南。欢迎您的建设性反馈!
## 每节课包含
## 每节课包含
- 可选草图笔记
- 可选补充视频
- 视频讲解(部分课程)
- [课前热身测验](https://ff-quizzes.netlify.app/en/ml/)
- 书面课程内容
- 对于基于项目的课程,项目构建的逐步指南
- 面向项目课程的分步项目构建指南
- 知识点检查
- 挑战任务
- 挑战
- 补充阅读
- 作业
- [课后测验](https://ff-quizzes.netlify.app/en/ml/)
> **关于语言的说明**:这些课程主要以 Python 编写,但许多课程也提供 R 版本。若要完成 R 课程,请进入 `/solution` 文件夹寻找对应的 R 课程文件。它们具有 .rmd 扩展名,代表**R Markdown**文件,简单来说,是在 Markdown 文档中嵌入 `代码块`R 或其他语言)和包含格式输出指引的 `YAML 头部`。因此它是数据科学的理想编写框架允许你同时记录代码、输出及笔记。R Markdown 文档可以渲染成 PDF、HTML 或 Word 等格式。
> **关于测验的说明**:所有测验均包含在[测验应用文件夹](../../quiz-app)中共52个测验每个测验包含三个问题。测验链接嵌入课程中但测验应用程序也可本地运行请按照`quiz-app`文件夹中的说明本地托管或部署到Azure。
| 课程编号 | 主题 | 课程分组 | 学习目标 | 关联课程 | 作者 |
| :------: | :----------------------------------------------------------: | :------------------------------------------: | -------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: |
| 01 | 机器学习简介 | [简介](1-Introduction/README.md) | 了解机器学习的基本概念 | [课程](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | 机器学习的历史 | [简介](1-Introduction/README.md) | 了解该领域的历史背景 | [课程](1-Introduction/2-history-of-ML/README.md) | Jen 和 Amy |
| 03 | 公平性与机器学习 | [简介](1-Introduction/README.md) | 学生在构建和应用机器学习模型时,应考虑的重要公平性哲学问题 | [课程](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | 机器学习技术 | [简介](1-Introduction/README.md) | 机器学习研究人员用来构建模型的技术是什么? | [课程](1-Introduction/4-techniques-of-ML/README.md) | Chris 和 Jen |
| 05 | 回归简介 | [回归](2-Regression/README.md) | 使用Python和Scikit-learn开始构建回归模型 | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | 北美南瓜价格 🎃 | [回归](2-Regression/README.md) | 可视化和清理数据为机器学习做准备 | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | 北美南瓜价格 🎃 | [回归](2-Regression/README.md) | 构建线性和多项式回归模型 | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen 和 Dmitry • Eric Wanjau |
| 08 | 北美南瓜价格 🎃 | [回归](2-Regression/README.md) | 构建逻辑回归模型 | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | Web应用 🔌 | [Web App](3-Web-App/README.md) | 构建用于使用训练模型的Web应用 | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | 分类简介 | [分类](4-Classification/README.md) | 清理、准备和可视化数据;分类简介 | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen 和 Cassie • Eric Wanjau |
| 11 | 美味的亚洲和印度美食 🍜 | [分类](4-Classification/README.md) | 分类器介 | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen 和 Cassie • Eric Wanjau |
| 12 | 美味的亚洲和印度美食 🍜 | [分类](4-Classification/README.md) | 更多分类器 | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen 和 Cassie • Eric Wanjau |
| 13 | 美味的亚洲和印度美食 🍜 | [分类](4-Classification/README.md) | 使用你的模型构建推荐Web应用 | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | 聚类简介 | [聚类](5-Clustering/README.md) | 清理、准备和可视化数据;聚类简介 | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | 探索尼日利亚音乐喜好 🎧 | [聚类](5-Clustering/README.md) | 探索K-Means聚类方法 | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | 自然语言处理简介 ☕️ | [自然语言处理](6-NLP/README.md) | 通过构建简单机器人了解NLP基础 | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | 常见NLP任务 ☕️ | [自然语言处理](6-NLP/README.md) | 通过了解处理语言结构所需的常见任务加深NLP知识 | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | 翻译和情感分析 ♥️ | [自然语言处理](6-NLP/README.md) | 使用简·奥斯汀进行翻译和情感分析 | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | 欧洲浪漫酒店 ♥️ | [自然语言处理](6-NLP/README.md) | 使用酒店评论进行情感分析1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | 欧洲浪漫酒店 ♥️ | [自然语言处理](6-NLP/README.md) | 使用酒店评论进行情感分析2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | 时间序列预测简介 | [时间序列](7-TimeSeries/README.md) | 时间序列预测简介 | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ 世界电力使用 ⚡️ - 使用ARIMA的时间序列预测 | [时间序列](7-TimeSeries/README.md) | 使用ARIMA进行时间序列预测 | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ 世界电力使用 ⚡️ - 使用SVR的时间序列预测 | [时间序列](7-TimeSeries/README.md) | 使用支持向量回归进行时间序列预测 | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | 强化学习简介 | [强化学习](8-Reinforcement/README.md) | 使用Q学习介绍强化学习 | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | 帮助Peter躲避狼 🐺 | [强化学习](8-Reinforcement/README.md) | 强化学习Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| 后记 | 现实机器学习场景和应用 | [现实机器学习](9-Real-World/README.md) | 经典机器学习在现实中的有趣且启发性应用 | [课程](9-Real-World/1-Applications/README.md) | 团队 |
| 后记 | 使用RAI仪表盘进行机器学习模型调试 | [现实机器学习](9-Real-World/README.md) | 使用Responsible AI仪表盘组件进行机器学习模型调试 | [课程](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [在我们的Microsoft Learn合集里查找本课程的所有额外资源](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> **关于语言的说明**:这些课程主要是用 Python 编写的,但许多课程也提供 R 版本。要完成 R 课程,请进入 `/solution` 文件夹并查找 R 课程。它们带有 .rmd 扩展名,表示一个 **R Markdown** 文件,简单来说就是在 `Markdown 文档` 中嵌入 `代码块`R 或其他语言的代码)和 `YAML 头部`(指导如何格式化输出如 PDF。因此它作为数据科学的示例性著作框架因为它允许你结合代码、输出和想法用 Markdown 记录它们。此外R Markdown 文档可以渲染为 PDF、HTML 或 Word 等输出格式。
> **关于测验的说明**:所有测验都包含在 [Quiz App folder](../../quiz-app) 中,共 52 个测验,每个测验有三个问题。它们在课程中有链接,但测验应用可以本地运行;请按照 `quiz-app` 文件夹中的说明本地托管或部署到 Azure。
| 课程编号 | 主题 | 课程分组 | 学习目标 | 课程链接 | 作者 |
| :------: | :------------------------------------------------------------: | :------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: |
| 01 | 机器学习简介 | [Introduction](1-Introduction/README.md) | 了解机器学习背后的基本概念 | [课程](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | 机器学习的发展历史 | [Introduction](1-Introduction/README.md) | 了解该领域的发展历史 | [课程](1-Introduction/2-history-of-ML/README.md) | Jen 和 Amy |
| 03 | 公平性与机器学习 | [Introduction](1-Introduction/README.md) | 构建和应用机器学习模型时,学生应考虑的公平性相关的重要哲学问题 | [课程](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | 机器学习技术 | [Introduction](1-Introduction/README.md) | 机器学习研究人员用来构建机器学习模型的技术是什么? | [课程](1-Introduction/4-techniques-of-ML/README.md) | Chris 和 Jen |
| 05 | 回归简介 | [Regression](2-Regression/README.md) | 使用 Python 和 Scikit-learn 入门回归模型 | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | 北美南瓜价格 🎃 | [Regression](2-Regression/README.md) | 可视化和清理数据为机器学习做准备 | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | 北美南瓜价格 🎃 | [Regression](2-Regression/README.md) | 构建线性和多项式回归模型 | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen 和 Dmitry • Eric Wanjau |
| 08 | 北美南瓜价格 🎃 | [Regression](2-Regression/README.md) | 构建逻辑回归模型 | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | Web 应用 🔌 | [Web App](3-Web-App/README.md) | 构建一个用于使用训练模型的 Web 应用 | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | 分类简介 | [Classification](4-Classification/README.md) | 清理、准备和可视化数据;分类简介 | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen 和 Cassie • Eric Wanjau |
| 11 | 美味的亚洲和印度菜肴 🍜 | [Classification](4-Classification/README.md) | 分类器介 | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen 和 Cassie • Eric Wanjau |
| 12 | 美味的亚洲和印度菜肴 🍜 | [Classification](4-Classification/README.md) | 更多分类器 | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen 和 Cassie • Eric Wanjau |
| 13 | 美味的亚洲和印度菜肴 🍜 | [Classification](4-Classification/README.md) | 使用你的模型构建推荐网络应用 | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | 聚类简介 | [Clustering](5-Clustering/README.md) | 清理、准备和可视化数据;聚类简介 | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | 探索尼日利亚音乐喜好 🎧 | [Clustering](5-Clustering/README.md) | 探索 K-Means 聚类方法 | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | 自然语言处理简介 ☕️ | [Natural language processing](6-NLP/README.md) | 通过构建一个简单机器人学习 NLP 基础 | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | 常见 NLP 任务 ☕️ | [Natural language processing](6-NLP/README.md) | 通过了解处理语言结构时需要的常见任务深化 NLP 知识 | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | 翻译与情感分析 ♥️ | [Natural language processing](6-NLP/README.md) | 使用简·奥斯汀进行翻译和情感分析 | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | 欧洲浪漫酒店 ♥️ | [Natural language processing](6-NLP/README.md) | 酒店评论情感分析 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | 欧洲浪漫酒店 ♥️ | [Natural language processing](6-NLP/README.md) | 酒店评论情感分析 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | 时间序列预测简介 | [Time series](7-TimeSeries/README.md) | 时间序列预测简介 | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ 世界用电量 ⚡️ - 使用 ARIMA 进行时间序列预测 | [Time series](7-TimeSeries/README.md) | 使用 ARIMA 进行时间序列预测 | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ 世界用电量 ⚡️ - 使用 SVR 进行时间序列预测 | [Time series](7-TimeSeries/README.md) | 使用支持向量回归进行时间序列预测 | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | 强化学习简介 | [Reinforcement learning](8-Reinforcement/README.md) | 使用 Q-Learning 进行强化学习简介 | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | 帮助 Peter 避开狼!🐺 | [Reinforcement learning](8-Reinforcement/README.md) | 强化学习 Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| 后记 | 真实世界的机器学习场景和应用 | [ML in the Wild](9-Real-World/README.md) | 经典机器学习的有趣且富有启发性的实际应用 | [课程](9-Real-World/1-Applications/README.md) | 团队 |
| 后记 | 使用 RAI 仪表盘进行机器学习模型调试 | [ML in the Wild](9-Real-World/README.md) | 使用 Responsible AI 仪表盘组件调试机器学习模型 | [课程](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [在我们的 Microsoft Learn 集合中查找本课程的所有其他资源](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
## 离线访问
您可以使用[Docsify](https://docsify.js.org/#/)离线运行这份文档。Fork本仓库后在本地机器上[安装Docsify](https://docsify.js.org/#/quickstart),然后在本仓库根目录输入`docsify serve`。网站将在本地主机3000端口运行`localhost:3000`。
你可以使用 [Docsify](https://docsify.js.org/#/) 离线运行本文档。Fork 本仓库,在本地机器上[安装 Docsify](https://docsify.js.org/#/quickstart),然后在本仓库根目录中输入 `docsify serve`。网站将在本地主机的 3000 端口提供服务`localhost:3000`。
## PDF文件
## PDF
带链接的课程大纲pdf可在[这里](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf)找到
在[此处](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf)查找包含链接的课程大纲 PDF
## 🎒 其他课程
## 🎒 其他课程
我们团队还制作其他课程!看这里
我们团队还制作其他课程!看:
<!-- CO-OP TRANSLATOR OTHER COURSES START -->
### LangChain
[![适合初学者的LangChain4j](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners)
[![适合初学者的LangChain.js](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin)
[![适合初学者的LangChain](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin)
[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners)
[![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin)
[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin)
---
### Azure / Edge / MCP / Agents
[![适合初学者的AZD](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[![适合初学者的Edge AI](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![适合初学者的MCP](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[![适合初学者的AI代理](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### 生成式人工智能系列
[![生成式人工智能入门](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![生成式人工智能 (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![生成式人工智能 (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[![生成式人工智能 (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
### 生成式 AI 系列
[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
---
### 核心学习
[![机器学习入门](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[![数据科学入门](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[![人工智能入门](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[![网络安全入门](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[![网页开发入门](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[![物联网入门](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[![XR开发入门](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### Copilot 系列
[![用于 AI 配对编程的 Copilot](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[![用于 C#/.NET 的 Copilot](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
[![Copilot 冒险](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst)
[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst)
<!-- CO-OP TRANSLATOR OTHER COURSES END -->
## 获取帮助
如果遇到困难或对构建人工智能应用有任何疑问,请加入学习者和经验丰富的开发者社区,共同讨论 MCP。这是一个支持性的社区欢迎提问并自由分享知识。
如果您遇到困难或对构建 AI 应用有任何疑问,请加入学习者和经验丰富的开发者社区,一起讨论 MCP。这是一个支持性的社区欢迎提并自由分享知识。
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
如果在构建过程中有产品反馈或出现错误,请访问:
如果您在构建过程中有产品反馈或遇到错误,请访问:
[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## 额外学习建议
[![Microsoft Foundry 开发者论坛](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
- 每节课后复习笔记本,以加深理解。
- 练习自行实现算法。
- 运用所学概念探索真实世界数据集。
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免责声明**
本文件已使用人工智能翻译服务 [Co-op Translator](https://github.com/Azure/co-op-translator) 进行翻译。虽然我们力求准确,但请注意自动翻译可能包含错误或不准确之处。原始文件的母语版本应视为权威来源。对于重要信息,建议采用专业人工翻译。我们对因使用本翻译而产生的任何误解或曲解不承担责任
本文件人工智能翻译服务 [Co-op Translator](https://github.com/Azure/co-op-translator) 翻译。虽然我们力求准确,但请注意自动翻译可能包含错误或不准确之处。原始的母语文档应被视为权威来源。对于重要信息,建议采用专业人工翻译。对于因使用本翻译而产生的任何误解或误读,我们概不负责
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
Loading…
Cancel
Save