इस पाठ में आपने जिम्मेदार 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 के सिस्टम, चलाए गए नोटबुक, और उसे चलाने से निकाले गए निष्कर्षों पर चर्चा की गई है | एक पेपर प्रस्तुत किया गया है लेकिन निष्कर्ष नहीं हैं | कोई पेपर प्रस्तुत नहीं किया गया है |
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**अस्वीकरण**:
यह दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) का उपयोग करके अनुवादित किया गया है। जबकि हम सटीकता सुनिश्चित करने का प्रयास करते हैं, कृपया ध्यान दें कि स्वचालित अनुवाद में त्रुटियां या अशुद्धियां हो सकती हैं। मूल भाषा में उपलब्ध मूल दस्तावेज़ को प्रामाणिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सिफारिश की जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम उत्तरदायी नहीं हैं।
इस दस्तावेज़ का अनुवाद एआई अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) का उपयोग करके किया गया है। जबकि हम सटीकता के लिए प्रयासरत हैं, कृपया ध्यान दें कि स्वचालित अनुवाद में त्रुटियाँ या अशुद्धियाँ हो सकती हैं। मूल दस्तावेज़ अपनी मूल भाषा में प्रामाणिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सलाह दी जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम उत्तरदायी नहीं हैं।
> ### [यह पाठ R में भी उपलब्ध है!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### परिचय
अब तक आपने कद्दू की कीमतों के डेटा का उपयोग करके रिग्रेशन के बारे में जाना और इसे Matplotlib का उपयोग करके विज़ुअलाइज़ किया।
### परिचय
अब तक आपने रिग्रेशन क्या है, इसे कद्दू की कीमतों के डेटासेट से प्राप्त नमूना डेटा के साथ समझा है, जिसे हम इस पाठ में उपयोग करेंगे। आपने इसे Matplotlib का उपयोग करके भी विज़ुअलाइज़ किया है।
अब आप मशीन लर्निंग के लिए रिग्रेशन को गहराई से समझने के लिए तैयार हैं। जबकि विज़ुअलाइज़ेशन डेटा को समझने में मदद करता है, मशीन लर्निंग की असली ताकत _मॉडल को ट्रेन करने_ में है। मॉडल ऐतिहासिक डेटा पर प्रशिक्षित होते हैं ताकि डेटा की निर्भरताओं को स्वचालित रूप से कैप्चर किया जा सके, और वे नए डेटा के लिए परिणामों की भविष्यवाणी करने की अनुमति देते हैं, जिसे मॉडल ने पहले नहीं देखा है।
अब आप एमएल के लिए रिग्रेशन में और गहराई तक जाने के लिए तैयार हैं। जबकि विज़ुअलाइज़ेशन आपको डेटा को समझने में मदद करता है, मशीन लर्निंग की असली ताकत _मॉडल ट्रेनिंग_ से आती है। मॉडल ऐतिहासिक डेटा पर प्रशिक्षित किए जाते हैं ताकि वे डेटा निर्भरताओं को स्वचालित रूप से पकड़ सकें, और नए डेटा के लिए पूर्वानुमान लगाने की अनुमति देते हैं, जिसे मॉडल ने पहले नहीं देखा होता है।
इस पाठ में, आप रिग्रेशन के दो प्रकारों के बारे में जानेंगे: _बेसिक लिनियर रिग्रेशन_ और _पॉलिनोमियल रिग्रेशन_, साथ ही इन तकनीकों के पीछे की गणितीय अवधारणाओं को भी समझेंगे। ये मॉडल हमें विभिन्न इनपुट डेटा के आधार पर कद्दू की कीमतों की भविष्यवाणी करने में मदद करेंगे।
इस पाठ में, आप दो प्रकार के रिग्रेशन के बारे में और जानेंगे: _मूलभूत लाइनियर रिग्रेशन_ और _पॉलीनॉमियल रिग्रेशन_, साथ ही इन तकनीकों के पीछे की कुछ गणित। ये मॉडल हमें विभिन्न इनपुट डेटा के आधार पर कद्दू के दामों की भविष्यवाणी करने में सक्षम बनाएंगे।
[](https://youtu.be/CRxFT8oTDMg "शुरुआती के लिए मशीन लर्निंग - लिनियर रिग्रेशन को समझना")
[](https://youtu.be/CRxFT8oTDMg "एमएल शुरुआती के लिए - लाइनियर रिग्रेशन को समझना")
> 🎥 ऊपर दी गई छवि पर क्लिक करें और लिनियर रिग्रेशन का एक छोटा वीडियो देखें।
> 🎥 ऊपर दिए गए चित्र पर क्लिक करें लाइनियर रिग्रेशन का संक्षिप्त वीडियो अवलोकन देखने के लिए।
> इस पाठ्यक्रम में, हम गणित का न्यूनतम ज्ञान मानते हैं और इसे अन्य क्षेत्रों से आने वाले छात्रों के लिए सुलभ बनाने का प्रयास करते हैं। इसलिए, नोट्स, 🧮 गणना, आरेख और अन्य शिक्षण उपकरणों पर ध्यान दें जो समझने में मदद करेंगे।
> इस पूरे पाठ्यक्रम में, हम गणित का न्यूनतम ज्ञान मानते हैं, और इसे उन छात्रों के लिए सुलभ बनाने का प्रयास करते हैं जो अन्य क्षेत्रों से आते हैं, इसलिए समझ में मदद के लिए नोट्स, 🧮 कॉलआउट्स, आरेख, और अन्य शिक्षण उपकरण देखें।
### पूर्वापेक्षा
अब तक आपको उस कद्दू डेटा की संरचना से परिचित होना चाहिए जिसे हम जांच रहे हैं। यह डेटा इस पाठ के _notebook.ipynb_ फ़ाइल में पहले से लोड और साफ किया गया है। इस फ़ाइल में, कद्दू की कीमत प्रति बुशल एक नए डेटा फ्रेम में प्रदर्शित की गई है। सुनिश्चित करें कि आप इन नोटबुक्स को Visual Studio Code के कर्नल्स में चला सकते हैं।
अब तक आपको उस कद्दू डेटा की संरचना का परिचय मिल चुका होगा जिसका हम निरीक्षण कर रहे हैं। आप इसे इस पाठ के _notebook.ipynb_ फ़ाइल में पहले से लोड और साफ-सुथरा पा सकते हैं। फ़ाइल में, कद्दू की कीमत प्रति बशेल नए डेटा फ्रेम में दिखाई गई है। सुनिश्चित करें कि आप इन नोटबुक्स को Visual Studio Code में कर्नल में चला सकते हैं।
### तैयारी
याद दिलाने के लिए, आप इस डेटा को लोड कर रहे हैं ताकि आप इससे सवाल पूछ सकें।
एक अनुस्मारक के रूप में, आप यह डेटा इस उद्देश्य से लोड कर रहे हैं कि आप इसके बारे में प्रश्न पूछ सकें।
- कद्दू खरीदने का सबसे अच्छा समय कब होता है?
- मुझे मिनिएचर कद्दू के एक केस की क्या कीमत मिल सकती है?
- क्या मुझे उन्हें आधा-बशेल बास्केट में खरीदना चाहिए या 1 1/9 बशेल बॉक्स में?
आइए इस डेटा में और गहराई से उतारते रहें।
पिछले पाठ में, आपने एक Pandas डेटा फ्रेम बनाया और इसे मूल डेटासेट के एक हिस्से से भरा, प्राइजिंग को बशेल के अनुसार मानकीकृत करते हुए। ऐसा करते हुए, आप केवल लगभग 400 डेटा पॉइंट्स जुटा सके और वे केवल पतझड़ के महीनों के लिए थे।
- कद्दू खरीदने का सबसे अच्छा समय कब है?
- मिनिएचर कद्दुओं के एक केस की कीमत क्या हो सकती है?
- क्या मुझे उन्हें आधे-बुशल की टोकरी में खरीदना चाहिए या 1 1/9 बुशल बॉक्स में?
आइए इस डेटा में और गहराई से खुदाई करें।
इस पाठ के साथ आने वाली नोटबुक में प्रीलोड किए गए डेटा को देखें। डेटा पहले से लोड है और एक प्रारंभिक स्कैटरप्लॉट माह डेटा दिखाने के लिए बनाया गया है। शायद हम इसे और साफ़ करके डेटा की प्रकृति के बारे में थोड़ी अधिक जानकारी प्राप्त कर सकते हैं।
पिछले पाठ में, आपने एक Pandas डेटा फ्रेम बनाया और इसे मूल डेटा सेट के एक हिस्से से भरा, बुशल द्वारा कीमतों को मानकीकृत किया। ऐसा करने पर, हालांकि, आप केवल लगभग 400 डेटा पॉइंट्स और केवल पतझड़ के महीनों के लिए डेटा एकत्र कर सके।
## एक लाइनियर रिग्रेशन लाइन
इस पाठ के साथ आने वाले नोटबुक में पहले से लोड किए गए डेटा पर एक नज़र डालें। डेटा पहले से लोड है और एक प्रारंभिक स्कैटरप्लॉट महीने के डेटा को दिखाने के लिए चार्ट किया गया है। शायद हम इसे और साफ करके डेटा की प्रकृति के बारे में अधिक जानकारी प्राप्त कर सकते हैं।
जैसा कि आपने पाठ 1 में सीखा, लाइनियर रिग्रेशन अभ्यास का उद्देश्य एक ऐसी रेखा प्लॉट करना है जो:
## एक लिनियर रिग्रेशन लाइन
- **चर संबंध दर्शाए।** चर के बीच संबंध दिखाना
- **पूर्वानुमान करना।** यह सावधानीपूर्वक पूर्वानुमान लगाना कि नया डेटा पॉइंट उस रेखा के संबंध में कहां पड़ता है।
जैसा कि आपने पाठ 1 में सीखा, लिनियर रिग्रेशन अभ्यास का लक्ष्य एक रेखा खींचना है ताकि:
**लीस्ट-स्क्वेयर रिग्रेशन** के तहत ऐसी रेखा खींचना आम बात है। "लीस्ट-स्क्वेयर" शब्द हमारे मॉडल में कुल त्रुटि को न्यूनतम करने की प्रक्रिया को संदर्भित करता है। प्रत्येक डेटा पॉइंट के लिए, हम वास्तविक पॉइंट और हमारी रिग्रेशन रेखा के बीच ऊर्ध्वाधर दूरी (जिसे अवशिष्ट कहा जाता है) को मापते हैं।
- **चर के संबंध दिखाए जा सकें**। चर के बीच संबंध दिखाएं
- **भविष्यवाणियां करें**। यह सटीक भविष्यवाणी करें कि एक नया डेटा पॉइंट उस रेखा के संबंध में कहां गिरेगा।
**लीस्ट-स्क्वेयर्स रिग्रेशन** का उपयोग इस प्रकार की रेखा खींचने के लिए किया जाता है। 'लीस्ट-स्क्वेयर्स' शब्द का मतलब है कि रिग्रेशन लाइन के चारों ओर के सभी डेटा पॉइंट्स को वर्गाकार किया जाता है और फिर जोड़ा जाता है। आदर्श रूप से, वह अंतिम योग जितना संभव हो उतना छोटा होना चाहिए, क्योंकि हम त्रुटियों की कम संख्या चाहते हैं, या `लीस्ट-स्क्वेयर्स`।
हम इन दूरियों के वर्ग करते हैं इसके दो मुख्य कारण हैं:
हम ऐसा इसलिए करते हैं क्योंकि हम एक ऐसी रेखा का मॉडल बनाना चाहते हैं जो हमारे सभी डेटा पॉइंट्स से न्यूनतम संचयी दूरी रखती हो। हम इन शब्दों को जोड़ने से पहले वर्गाकार करते हैं क्योंकि हमें इसकी दिशा की बजाय इसकी परिमाण की परवाह है।
1. **परिमाण अधिक महत्वपूर्ण है, दिशा नहीं:** हम -5 की त्रुटि को +5 की त्रुटि के समान मानना चाहते हैं। वर्ग करने से सभी मान सकारात्मक हो जाते हैं।
> **🧮 मुझे गणित दिखाएं**
>
> इस रेखा, जिसे _सर्वश्रेष्ठ फिट की रेखा_ कहा जाता है, को [एक समीकरण](https://en.wikipedia.org/wiki/Simple_linear_regression) द्वारा व्यक्त किया जा सकता है:
>
2. **बहिर्विष्टों को दंडित करना:** वर्ग करने से बड़ी त्रुटियों को अधिक महत्व मिलता है, जो रेखा को दूर के पॉइंट्स के करीब रहने के लिए बाध्य करता है।
फिर हम इन वर्गीकृत मानों को जोड़ते हैं। हमारा लक्ष्य वह विशिष्ट रेखा खोजने का है जहाँ यह अंतिम योग न्यूनतम हो (सबसे कम संभव मान) यही कारण है इसे "लीस्ट-स्क्वेयर" कहा जाता है।
> **🧮 मुझे गणित दिखाएं**
>
> इस रेखा, जिसे _सबसे उपयुक्त फिट रेखा_ कहा जाता है, को एक [समीकरण](https://en.wikipedia.org/wiki/Simple_linear_regression) द्वारा व्यक्त किया जा सकता है:
>
> ```
> Y = a + bX
> ```
>
> `X` 'व्याख्यात्मक चर' है। `Y` 'आश्रित चर' है। रेखा की ढलान `b` है और `a` y-अवरोध है, जो उस स्थिति को संदर्भित करता है जब `X = 0` होता है।
>
> `X` 'स्पष्टीकरण चर' है। `Y` 'निर्भर चर' है। रेखा का ढलान `b` है और `a` वाई-अवरोध है, जो उस समय `Y` का मान दर्शाता है जब `X = 0` होता है।
>
>
>
> सबसे पहले, ढलान `b` की गणना करें। इनफोग्राफिक द्वारा [जेन लूपर](https://twitter.com/jenlooper)
>
> पहले, ढलान `b` की गणना करें। इन्फोग्राफिक: [जेन लूपर](https://twitter.com/jenlooper)
> दूसरे शब्दों में, और हमारे कद्दू डेटा के मूल प्रश्न को संदर्भित करते हुए: "माह के द्वारा प्रति बशेल कद्दू की कीमत की भविष्यवाणी करें", `X` मूल्य को संदर्भित करता है और `Y` बिक्री के माह को।
>
> दूसरे शब्दों में, और हमारे कद्दू डेटा के मूल प्रश्न का संदर्भ देते हुए: "महीने के अनुसार प्रति बुशल कद्दू की कीमत की भविष्यवाणी करें", `X` कीमत को संदर्भित करेगा और `Y` बिक्री के महीने को।
>
>
>
> Y का मान गणना करें। यदि आप लगभग $4 दे रहे हैं, तो यह अप्रैल होना चाहिए! इनफोग्राफिक द्वारा [जेन लूपर](https://twitter.com/jenlooper)
>
> `Y` का मान निकालें। यदि आप लगभग $4 का भुगतान कर रहे हैं, तो यह अप्रैल होना चाहिए! इन्फोग्राफिक: [जेन लूपर](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) देखें कि संख्या के मान कैसे रेखा को प्रभावित करते हैं।
## सहसंबंध (Correlation)
## सहसंबंध
एक और शब्द जिसे समझना महत्वपूर्ण है वह है **सहसंबंध गुणांक** (Correlation Coefficient) जो दिए गए X और Y चर के बीच होता है। स्कैटरप्लॉट का उपयोग करके, आप इस गुणांक को जल्दी से विज़ुअलाइज़ कर सकते हैं। यदि डेटा पॉइंट्स एक सीधी रेखा में व्यवस्थित हैं, तो सहसंबंध उच्च होता है, लेकिन यदि डेटा पॉइंट्स X और Y के बीच हर जगह बिखरे हुए हैं, तो सहसंबंध कम होता है।
एक और शब्द जिसे समझना जरूरी है वह है दी गई `X` और `Y` चर के बीच **सहसंबंध गुणांक**। स्कैटरप्लॉट का उपयोग करके, आप जल्दी से इस सहसंबंध को विज़ुअलाइज़ कर सकते हैं। एक प्लॉट जिसमें डेटा पॉइंट्स एक साफ रेखा में बिखरे हुए हों, उसका सहसंबंध उच्च होगा, जबकि एक प्लॉट जिसमें डेटा पॉइंट्स कहीं भी बिखरे हों, उसका सहसंबंध कम होगा।
एक अच्छा लिनियर रिग्रेशन मॉडल वह होगा जिसका सहसंबंध गुणांक उच्च (1 के करीब) हो, न कि 0 के करीब, और जो लीस्ट-स्क्वेयर्स रिग्रेशन विधि का उपयोग करके रिग्रेशन की रेखा के साथ मेल खाता हो।
एक अच्छा लाइनियर रिग्रेशन मॉडल वह होगा जिसमें लीस्ट-स्क्वेयर रिग्रेशन विधि के साथ रिग्रेशन लाइन वाले उच्च (0 से अधिक निकट 1) सहसंबंध गुणांक हो।
✅ इस पाठ के साथ आने वाले नोटबुक को चलाएं और महीने से कीमत के स्कैटरप्लॉट को देखें। क्या कद्दू की बिक्री के लिए महीने और कीमत के बीच डेटा का सहसंबंध उच्च या निम्न लगता है, आपकी दृश्य व्याख्या के अनुसार? क्या यह बदलता है यदि आप `महीने` के बजाय अधिक सूक्ष्म माप, जैसे *साल का दिन* (यानी साल की शुरुआत से दिनों की संख्या) का उपयोग करते हैं?
✅ इस पाठ के साथ आने वाली नोटबुक चलाएं और महीने के अनुसार कीमत के स्कैटरप्लॉट को देखें। क्या कद्दू बिक्री के लिए महीने और कीमत के बीच डेटा का सहसंबंध आपके विज़ुअल व्याख्या के अनुसार उच्च या निम्न लगता है? क्या यह तब बदलता है यदि आप `Month` के बजाय अधिक सूक्ष्म माप जैसे *साल का दिन* (उदाहरण के लिए वर्ष की शुरुआत से दिन की संख्या) का उपयोग करें?
नीचे दिए गए कोड में, हम मानते हैं कि हमने डेटा को साफ कर लिया है और `new_pumpkins` नामक एक डेटा फ्रेम प्राप्त किया है, जो निम्नलिखित के समान है:
नीचे दिए गए कोड में, हम मान लेते हैं कि हमने डेटा को साफ कर लिया है, और हमें एक डेटा फ्रेम `new_pumpkins` मिला है, जो निम्न जैसा है:
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
> डेटा को साफ करने का कोड [`notebook.ipynb`](../../../../2-Regression/3-Linear/notebook.ipynb) में उपलब्ध है। हमने पिछले पाठ में समान सफाई चरणों का पालन किया है और `DayOfYear` कॉलम की गणना निम्नलिखित अभिव्यक्ति का उपयोग करके की है:
> डेटा साफ़ करने के लिए कोड [`notebook.ipynb`](notebook.ipynb) में उपलब्ध है। हमने पिछले पाठ की तरह ही सफाई के चरण किए हैं, और `DayOfYear` कॉलम को निम्न अभिव्यक्ति का उपयोग करके निकाला है:
अब जब आपको लिनियर रिग्रेशन के पीछे के गणित की समझ हो गई है, तो आइए एक रिग्रेशन मॉडल बनाएं और देखें कि क्या हम यह भविष्यवाणी कर सकते हैं कि कद्दू के किस पैकेज की कीमत सबसे अच्छी होगी। कोई व्यक्ति जो छुट्टी के लिए कद्दू का पैच खरीद रहा है, वह इस जानकारी का उपयोग कद्दू के पैकेजों की खरीद को अनुकूलित करने के लिए कर सकता है।
अब जब आपको लाइनियर रिग्रेशन के पीछे गणित की समझ है, तो चलिए एक रिग्रेशन मॉडल बनाते हैं ताकि हम देख सकें कि कौन-सा कद्दू पैकेज सबसे अच्छे दाम देगा। कोई जो छुट्टियों के लिए कद्दू की खेती कर रहा है, वे इस जानकारी का उपयोग पैच के लिए अपने कद्दू पैकेजों की खरीद को अनुकूलित करने के लिए करना चाहेंगे।
## सहसंबंध की तलाश
[](https://youtu.be/uoRq-lW2eQo "शुरुआती के लिए मशीन लर्निंग - सहसंबंध की तलाश: लिनियर रिग्रेशन की कुंजी")
[](https://youtu.be/uoRq-lW2eQo "एमएल शुरुआती के लिए - सहसंबंध की तलाश: लाइनियर रिग्रेशन की कुंजी")
> 🎥 ऊपर दी गई छवि पर क्लिक करें और सहसंबंध का एक छोटा वीडियो देखें।
> 🎥 ऊपर दिए गए चित्र पर क्लिक करें सहसंबंध का संक्षिप्त वीडियो अवलोकन देखने के लिए।
पिछले पाठ से आपने शायद देखा होगा कि विभिन्न महीनों के लिए औसत कीमत इस प्रकार दिखती है:
पिछले पाठ से आपने शायद देखा होगा कि विभिन्न महीनों के लिए औसत कीमत इस प्रकार है:
<imgalt="महीने के अनुसार औसत कीमत" src="../../../../translated_images/hi/barchart.a833ea9194346d76.webp"width="50%"/>
<imgalt="Average price by month" src="../../../../translated_images/hi/barchart.a833ea9194346d76.webp"width="50%"/>
यह सुझाव देता है कि कुछ सहसंबंध हो सकता है, और हम `Month` और `Price` के बीच, या `DayOfYear` और `Price` के बीच संबंध की भविष्यवाणी करने के लिए एक लिनियर रिग्रेशन मॉडल को प्रशिक्षित करने का प्रयास कर सकते हैं। यहाँ एक स्कैटरप्लॉट है जो बाद के संबंध को दिखाता है:
यह सुझाव देता है कि कुछ सहसंबंध होना चाहिए, और हम `Month` और `Price`, या `DayOfYear` और `Price` के बीच संबंध का पूर्वानुमान लगाने के लिए लाइनियर रिग्रेशन मॉडल प्रशिक्षण देने का प्रयास कर सकते हैं। यहाँ वह स्कैटरप्लॉट है जो बाद वाले संबंध को दिखाता है:
<imgalt="साल के दिन बनाम कीमत का स्कैटरप्लॉट" src="../../../../translated_images/hi/scatter-dayofyear.bc171c189c9fd553.webp"width="50%"/>
<imgalt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/hi/scatter-dayofyear.bc171c189c9fd553.webp"width="50%"/>
आइए `corr` फ़ंक्शन का उपयोग करके देखें कि क्या कोई सहसंबंध है:
आइए देखें कि `corr` फ़ंक्शन का उपयोग करके सहसंबंध क्या है:
ऐसा लगता है कि सहसंबंध बहुत छोटा है, `Month` के लिए -0.15 और `DayOfMonth` के लिए -0.17, लेकिन एक और महत्वपूर्ण संबंध हो सकता है। ऐसा लगता है कि विभिन्न कद्दू की किस्मों के लिए कीमतों के अलग-अलग समूह हैं। इस परिकल्पना की पुष्टि करने के लिए, आइए प्रत्येक कद्दू श्रेणी को एक अलग रंग का उपयोग करके प्लॉट करें। `scatter` प्लॉटिंग फ़ंक्शन में `ax` पैरामीटर पास करके हम सभी बिंदुओं को एक ही ग्राफ़ पर प्लॉट कर सकते हैं:
ऐसा लगता है कि सहसंबंध काफी छोटा है, `Month` के लिए -0.15 और `DayOfMonth` के लिए -0.17, लेकिन एक और महत्वपूर्ण संबंध हो सकता है। ऐसा लगता है कि विभिन्न कद्दू किस्मों के लिए अलग-अलग क्लस्टर वाले दाम हैं। इस परिकल्पना की पुष्टि करने के लिए, चलिए हम प्रत्येक कद्दू श्रेणी को अलग रंग में प्लॉट करें। `scatter` प्लॉटिंग फ़ंक्शन में `ax` पैरामीटर पास करके हम सभी पॉइंट्स को एक ही ग्राफ़ पर प्लॉट कर सकते हैं।
```python
ax=None
@ -127,75 +142,75 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
<imgalt="साल के दिन बनाम कीमत का स्कैटरप्लॉट" src="../../../../translated_images/hi/pie-pumpkins-scatter.d14f9804a53f927e.webp"width="50%"/>
<imgalt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/hi/pie-pumpkins-scatter.d14f9804a53f927e.webp"width="50%"/>
यदि हम अब `corr` फ़ंक्शन का उपयोग करके `Price` और `DayOfYear` के बीच सहसंबंध की गणना करते हैं, तो हमें कुछ `-0.27` जैसा मिलेगा - जिसका अर्थ है कि एक भविष्यवाणी मॉडल को प्रशिक्षित करना समझ में आता है।
यदि अब हम `Price` और `DayOfYear` के बीच सहसंबंध `corr` फ़ंक्शन का उपयोग कर गणना करें, तो हमें कुछ ऐसा मिलेगा: `-0.27` - जो दर्शाता है कि एक भविष्यवाणीक मॉडल प्रशिक्षण देना उचित है।
> एक लिनियर रिग्रेशन मॉडल को प्रशिक्षित करने से पहले, यह सुनिश्चित करना महत्वपूर्ण है कि हमारा डेटा साफ है। लिनियर रिग्रेशन खाली मानों के साथ अच्छा काम नहीं करता है, इसलिए सभी खाली कोशिकाओं से छुटकारा पाना समझदारी है:
> लाइनियर रिग्रेशन मॉडल को प्रशिक्षित करने से पहले, यह सुनिश्चित करना महत्वपूर्ण है कि हमारा डेटा स्वच्छ हो। लाइनियर रिग्रेशन गायब मानों के साथ ठीक से काम नहीं करता, इसलिए सभी खाली सेल्स को हटाना समझदारी है:
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
एक अन्य तरीका यह होगा कि ख़ाली मानों को संबंधित कॉलम के औसत मान से भर दें।
एक और दृष्टिकोण यह होगा कि उन खाली मानों को संबंधित कॉलम के औसत मानों से भर दिया जाए।
## सरल लाइनियर रिग्रेशन
## सरल लिनियर रिग्रेशन
[](https://youtu.be/e4c_UP2fSjg "एमएल शुरुआती के लिए - Scikit-learn का उपयोग करके लाइनियर और पॉलीनॉमियल रिग्रेशन")
[](https://youtu.be/e4c_UP2fSjg "शुरुआती के लिए मशीन लर्निंग - 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 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 को इनपुट के रूप में अपेक्षा करता है, जहां 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-अक्ष के साथ इंटरसेक्शन पॉइंट को `lin_reg.intercept_` का उपयोग करके भी एक्सेस कर सकते हैं - यह हमारे मामले में लगभग `21` होगा, जो साल की शुरुआत में कीमत को इंगित करता है।
`LinearRegression` ऑब्जेक्ट `fit` करने के बाद रिग्रेशन के सभी गुणांक (coefficients) रखता है, जिन्हें `.coef_` प्रॉपर्टी का उपयोग करके एक्सेस किया जा सकता है। हमारे मामले में, केवल एक गुणांक है, जो लगभग `-0.017`के आसपास होना चाहिए। इसका मतलब है कि कीमतें समय के साथ थोड़ा गिरती हैं, लेकिन अधिक नहीं, लगभग 2 सेंट प्रति दिन। हम रिग्रेशन के Y-अक्ष के साथ कटाव (intersection point) को भी `lin_reg.intercept_` का उपयोग करके एक्सेस कर सकते हैं - हमारे मामले में यह लगभग `21` के आसपास होगा, जो वर्ष की शुरुआत में कीमत को दर्शाता है।
यह देखने के लिए कि हमारा मॉडल कितना सटीक है, हम टेस्ट डेटासेट पर कीमतों की भविष्यवाणी कर सकते हैं, और फिर यह माप सकते हैं कि हमारी भविष्यवाणियां अपेक्षित मानों के कितनी करीब हैं। यह औसत वर्ग त्रुटि (MSE) मेट्रिक्स का उपयोग करके किया जा सकता है, जो अपेक्षित और भविष्यवाणी किए गए मान के बीच सभी वर्गीय अंतर का औसत है।
देखने के लिए कि हमारा मॉडल कितना सटीक है, हम टेस्ट डेटासेट पर कीमतों की भविष्यवाणी कर सकते हैं, और फिर माप सकते हैं कि हमारी भविष्यवाणियां अपेक्षित मूल्यों के कितनी निकट हैं। इसे मीन स्क्वायर एरर (MSE) मेट्रिक्स का उपयोग करके किया जा सकता है, जो अपेक्षित और पूर्वानुमानित मूल्य के बीच सभी स्क्वायर्ड अंतर का औसत है।
```python
pred = lin_reg.predict(X_test)
@ -203,36 +218,37 @@ pred = lin_reg.predict(X_test)
हमारी त्रुटि लगभग 2 बिंदुओं के आसपास है, जो ~17% है। यह बहुत अच्छा नहीं है। मॉडल की गुणवत्ता का एक और संकेतक **निर्धारण गुणांक** है, जिसे इस तरह प्राप्त किया जा सकता है:
हमारी त्रुटि लगभग 2 पॉइंट्स के आसपास लगती है, जो ~17% है। बहुत अच्छी नहीं। मॉडल की गुणवत्ता का एक अन्य संकेतक है **निर्धारण गुणांक** (coefficient of determination), जिसे इस प्रकार प्राप्त किया जा सकता है:
```python
score = lin_reg.score(X_train,y_train)
print('Model determination: ', score)
```
यदि मान 0 है, तो इसका मतलब है कि मॉडल इनपुट डेटा को ध्यान में नहीं रखता है और *सबसे खराब रैखिक भविष्यवक्ता* के रूप में कार्य करता है, जो केवल परिणाम का औसत मान है। मान 1 का मतलब है कि हम सभी अपेक्षित आउटपुट को पूरी तरह से भविष्यवाणी कर सकते हैं। हमारे मामले में, निर्धारण गुणांक लगभग 0.06 है, जो काफी कम है।
```
यदि मान 0 है, तो इसका मतलब है कि मॉडल इनपुट डेटा को ध्यान में नहीं रखता है, और *सबसे खराब रैखिक पूर्वानुमानक* के रूप में कार्य करता है, जो परिणाम का केवल औसत मान है। मान 1 का मतलब है कि हम सभी अपेक्षित आउटपुट्स को पूरी तरह से सही पूर्वानुमानित कर सकते हैं। हमारे मामले में, गुणांक लगभग 0.06 के आसपास है, जो काफी कम है।
हम परीक्षण डेटा को रिग्रेशन लाइन के साथ भी प्लॉट कर सकते हैं ताकि यह बेहतर तरीके से समझ सकें कि हमारे मामले में रिग्रेशन कैसे काम करता है:
हम परीक्षण डेटा को रिग्रेशन लाइन के साथ भी प्लॉट कर सकते हैं ताकि बेहतर तरीके से देख सकें कि हमारे मामले में रिग्रेशन कैसे काम करता है:
रैखिक रिग्रेशन का एक अन्य प्रकार बहुपद रिग्रेशन है। कभी-कभी चर के बीच रैखिक संबंध होता है - जैसे कि कद्दू का आकार बढ़ने पर उसकी कीमत बढ़ती है - लेकिन कभी-कभी इन संबंधों को एक समतल या सीधी रेखा के रूप में प्लॉट नहीं किया जा सकता।
रैखिक रिग्रेशन का एक अन्य प्रकार है बहुपद रिग्रेशन। जबकि कभी-कभी चर के बीच रैखिक संबंध होता है - जैसे लंबे आकार वाला कद्दू का दाम अधिक होता है - कभी-कभी इन संबंधों को तल या सीधी रेखा के रूप में प्रदर्शित नहीं किया जा सकता।
✅ यहां [कुछ और उदाहरण](https://online.stat.psu.edu/stat501/lesson/9/9.8) हैं जो बहुपद रिग्रेशन का उपयोग कर सकते हैं।
✅ यहां [कुछ और उदाहरण](https://online.stat.psu.edu/stat501/lesson/9/9.8) हैं जिनमें बहुपद रिग्रेशन का उपयोग किया जा सकता है
Date और Price के बीच संबंध पर फिर से नज़र डालें। क्या यह स्कैटरप्लॉट ऐसा लगता है कि इसे सीधी रेखा से विश्लेषण किया जाना चाहिए? क्या कीमतें बदल नहीं सकतीं? इस मामले में, आप बहुपद रिग्रेशन आज़मा सकते हैं।
दिनांक और मूल्य के संबंध को फिर से देखें। क्या यह स्कैटरप्लॉट इस तरह दिखता है कि इसे ज़रूरी तौर पर सीधी रेखा से विश्लेषित किया जाना चाहिए? क्या कीमतें स्थिर नहीं रह सकतीं? इस मामले में, आप बहुपद रिग्रेशन आजमा सकते हैं।
✅ बहुपद गणितीय अभिव्यक्तियाँ हैं जो एक या अधिक चर और गुणांक से बनी हो सकती हैं।
✅ बहुपद गणितीय व्यंजक होते हैं जो एक या अधिक चर और गुणांकों से मिलकर बनते हैं
बहुपद रिग्रेशन एक घुमावदार रेखा बनाता है जो गैर-रैखिक डेटा को बेहतर तरीके से फिट करता है। हमारे मामले में, यदि हम इनपुट डेटा में `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 में एक उपयोगी [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
@ -241,62 +257,62 @@ from sklearn.pipeline import make_pipeline
`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` का उपयोग कर सकते हैं। यहां ग्राफ है जो परीक्षण डेटा और अनुमानित वक्र को दिखाता है:
बहुपद रिग्रेशन का उपयोग करके, हम थोड़ा कम MSE और थोड़ा अधिक निर्धारण प्राप्त कर सकते हैं, लेकिन यह बहुत महत्वपूर्ण नहीं है। हमें अन्य विशेषताओं को ध्यान में रखना होगा!
बहुपद रिग्रेशन का उपयोग करते हुए, हम थोड़ा कम MSE और उच्च निर्धारण प्राप्त कर सकते हैं, लेकिन विशेष रूप से नहीं। हमें अन्य विशेषताओं को भी ध्यान में रखना होगा!
> आप देख सकते हैं कि न्यूनतम कद्दू की कीमतें कहीं हैलोवीन के आसपास देखी जाती हैं। आप इसे कैसे समझाएंगे?
> आप देख सकते हैं कि न्यूनतम कद्दू के दाम लगभग हैलोवीन के आसपास होते हैं। आप इसे कैसे समझाएंगे?
🎃 बधाई हो, आपने एक ऐसा मॉडल बनाया है जो पाई कद्दू की कीमत का अनुमान लगाने में मदद कर सकता है। आप शायद सभी प्रकार के कद्दू के लिए वही प्रक्रिया दोहरा सकते हैं, लेकिन यह थोड़ा थकाऊ होगा। अब चलिए सीखते हैं कि अपने मॉडल में कद्दू की विविधता को कैसे ध्यान में रखा जाए!
🎃 बधाई हो, आपने एक ऐसा मॉडल बनाया है जो पाई कद्दू की कीमत का पूर्वानुमान लगाने में मदद कर सकता है। आप संभवतः सभी कद्दू प्रकारों के लिए समान प्रक्रिया दोहरा सकते हैं, लेकिन वह थकाऊ होगा। अब सीखते हैं कि हमारे मॉडल में कद्दू की किस्म को कैसे ध्यान में रखा जाए!
## श्रेणीबद्ध विशेषताएँ
## श्रेणीबद्ध विशेषताएँ (CategoricalFeatures)
आदर्श दुनिया में, हम एक ही मॉडल का उपयोग करके विभिन्न कद्दू की किस्मों के लिए कीमतों का अनुमान लगाना चाहते हैं। हालांकि, `Variety` कॉलम `Month` जैसे कॉलम से थोड़ा अलग है, क्योंकि इसमें गैर-संख्या मान होते हैं। ऐसे कॉलम को **श्रेणीबद्ध** कहा जाता है।
आदर्श दुनिया में, हम एक ही मॉडल का उपयोग करके विभिन्न कद्दू किस्मों के लिए कीमतों की भविष्यवाणी कर सके। हालांकि, `Variety` कॉलम कुछ हद तक `Month` जैसे कॉलमों से अलग है, क्योंकि इसमें गैर-आंकिक (non-numeric) मान होते हैं। ऐसे कॉलम को **श्रेणीबद्ध** कहा जाता है।
[](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
[](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
> 🎥 ऊपर दी गई छवि पर क्लिक करें श्रेणीबद्ध विशेषताओं का उपयोग करने का एक छोटा वीडियो देखने के लिए।
> 🎥 श्रेणीबद्ध विशेषताओं के उपयोग पर एक संक्षिप्त वीडियो अवलोकन के लिए ऊपर की छवि पर क्लिक करें।
यहां आप देख सकते हैं कि किस्म के आधार पर औसत कीमत कैसे बदलती है:
यहाँ आप देख सकते हैं कि औसत कीमत किस्म पर कैसे निर्भर करती है:
<imgalt="Average price by variety"src="../../../../translated_images/hi/price-by-variety.744a2f9925d9bcb4.webp"width="50%"/>
<imgalt="Average price by variety"src="../../../../translated_images/hi/price-by-variety.744a2f9925d9bcb4.webp"width="50%"/>
किस्म को ध्यान में रखने के लिए, हमें पहले इसे संख्यात्मक रूप में बदलना होगा, या **एन्कोड** करना होगा। इसे करने के कई तरीके हैं:
किस्म को ध्यान में रखने के लिए, हमें पहले इसे संख्यात्मक रूप में कनवर्ट या **एन्कोड** करना होगा। इसे करने के कई तरीके हैं:
* सरल **संख्यात्मक एन्कोडिंग** विभिन्न किस्मों की एक तालिका बनाएगी और फिर किस्म के नाम को उस तालिका में एक इंडेक्स से बदल देगी। यह रैखिक रिग्रेशन के लिए सबसे अच्छा विचार नहीं है, क्योंकि रैखिक रिग्रेशन इंडेक्स के वास्तविक संख्यात्मक मान को लेता है और इसे परिणाम में जोड़ता है, गुणांक से गुणा करता है। हमारे मामले में, इंडेक्स नंबर और कीमत के बीच संबंध स्पष्ट रूप से गैर-रैखिक है, भले ही हम सुनिश्चित करें कि इंडेक्स किसी विशिष्ट तरीके से क्रमबद्ध हैं।
* **वन-हॉट एन्कोडिंग** `Variety` कॉलम को 4 अलग-अलग कॉलम से बदल देगा, प्रत्येक किस्म के लिए एक। प्रत्येक कॉलम में `1` होगा यदि संबंधित पंक्ति दी गई किस्म की है, और अन्यथा `0`। इसका मतलब है कि रैखिक रिग्रेशन में चार गुणांक होंगे, प्रत्येक कद्दू की किस्म के लिए एक, जो उस विशेष किस्म के लिए "शुरुआती कीमत" (या "अतिरिक्त कीमत") के लिए जिम्मेदार होगा।
* सरल **न्यूमेरिक एन्कोडिंग** एक अलग किस्मों की तालिका बनाएगा, और फिर किस्म के नाम को उस तालिका में इंडेक्स द्वारा प्रतिस्थापित करेगा। यह रैखिक रिग्रेशन के लिए अच्छा विचार नहीं है, क्योंकि रैखिक रिग्रेशन इंडेक्स का वास्तविक संख्यात्मक मान लेता है, और इसे गुणांक से गुणा करके परिणाम में जोड़ता है। हमारे मामले में, इंडेक्स संख्या और कीमत के बीच संबंध स्पष्ट रूप से गैर-रैखिक है, भले ही हम सुनिश्चत कर लें कि इंडेक्सों को किसी विशिष्ट क्रम में व्यवस्थित किया गया हो।
* **वन-हॉट एन्कोडिंग** `Variety` कॉलम को चार अलग-अलग कॉलमों में बदल देगा, प्रत्येक किस्म के लिए एक। प्रत्येक कॉलम में `1` होगा यदि संबंधित पंक्ति उस विशिष्ट किस्म की हो, अन्यथा `0` होगा। इसका मतलब है कि रैखिक रिग्रेशन में चार गुणांक होंगे, प्रत्येक कद्दू किस्म के लिए, जो उस विशेष किस्म की "शुरुआती कीमत" (या अधिक सटीक कहा जाए तो "अतिरिक्त कीमत") के लिए जिम्मेदार होगा।
नीचे दिया गया कोड दिखाता है कि हम किस्म को वन-हॉट एन्कोड कैसे कर सकते हैं:
नीचे का कोड दिखाता है कि हम किस प्रकार एक किस्म को वन-हॉट एन्कोड कर सकते हैं:
```python
pd.get_dummies(new_pumpkins['Variety'])
```
```
ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE
वन-हॉट एन्कोडेड किस्म का उपयोग करके रैखिक रिग्रेशन को प्रशिक्षित करने के लिए, हमें केवल `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']) \
@ -304,68 +320,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 (10%) और निर्धारण 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)
यह हमें लगभग 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 |
| मॉडल | 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% तक सुधार दिया। रिग्रेशन पर अंतिम अनुभाग में, आप श्रेणियों को निर्धारित करने के लिए लॉजिस्टिक रिग्रेशन के बारे में जानेंगे।
🏆 बहुत अच्छा! आपने एक पाठ में चार रिग्रेशन मॉडल बनाए, और मॉडल की गुणवत्ता को 97% तक बढ़ाया। रिग्रेशन के अंतिम भाग में, आप लॉजिस्टिक रिग्रेशन के बारे में सीखेंगे जिससे श्रेणियां निर्धारित की जा सकेंगी।
---
## 🚀चुनौती
---
## 🚀चुनौती (Challenge)
इस नोटबुक में कई अलग-अलग चर का परीक्षण करें और देखें कि सहसंबंध मॉडल की सटीकता से कैसे मेल खाता है।
इस नोटबुक में कई अलग-अलग चर परिक्षण करें ताकि देखें कि सहसंबंध मॉडल की सटीकता से कैसे संबंधित है।
## [पाठ के बाद क्विज़](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) है।
इस पाठ में हमने रैखिक रिग्रेशन के बारे में सीखा। अन्य महत्वपूर्ण प्रकार के रिग्रेशन भी हैं। स्टेपवाइज, रिज, लासो और इलास्टिकनेट तकनीकों के बारे में पढ़ें। अधिक जानने के लिए एक अच्छा कोर्स है [Stanford Statistical Learning course](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) का उपयोग करके किया गया है। यद्यपि हम सटीकता के लिए प्रयासरत हैं, कृपया ध्यान दें कि स्वचालित अनुवाद में त्रुटियां या गलतियां हो सकती हैं। मूल दस्तावेज़ अपनी मूल भाषा में अधिकृत स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए पेशेवर मानव अनुवाद की सिफारिश की जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम ज़िम्मेदार नहीं हैं।
इस दूसरे वर्गीकरण पाठ में, आप संख्यात्मक डेटा को वर्गीकृत करने के और तरीके जानेंगे। आप यह भी समझेंगे कि एक वर्गीकरणकर्ता को दूसरे पर चुनने के क्या परिणाम हो सकते हैं।
इस दूसरे वर्गीकरण पाठ में, आप संख्यात्मक डेटा को वर्गीकृत करने के और तरीकों का अन्वेषण करेंगे। आप यह भी जानेंगे कि एक क्लासिफायर चुनने के क्या परिणाम हो सकते हैं।
हम मानते हैं कि आपने पिछले पाठ पूरे कर लिए हैं और आपके पास `data` फ़ोल्डर में _cleaned_cuisines.csv_ नामक एक साफ़ किया हुआ डेटासेट है, जो इस 4-पाठ फ़ोल्डर की रूट में है।
हम मानते हैं कि आपने पूर्व के पाठ पूरे कर लिए हैं और आपके `data` फ़ोल्डर में एक साफ़ किया गया डेटासेट है जिसका नाम _cleaned_cuisines.csv_ है, जो इस 4-पाठ फ़ोल्डर के रूट में है।
### तैयारी
हमने आपके _notebook.ipynb_ फ़ाइल में साफ़ किया हुआ डेटासेट लोड कर दिया है और इसे X और y डेटा फ्रेम में विभाजित कर दिया है, जो मॉडल निर्माण प्रक्रिया के लिए तैयार हैं।
हमने आपके _notebook.ipynb_ फ़ाइल को साफ़ किए गए डेटासेट के साथ लोड कर लिया है और इसे X और y डेटा फ्रेम्स में विभाजित कर दिया है, ताकि मॉडल निर्माण प्रक्रिया के लिए तैयार हो।
## एक वर्गीकरण मानचित्र
पिछले पाठ में, आपने डेटा को वर्गीकृत करने के विभिन्न विकल्पों के बारे में सीखा था, जिसमें Microsoft का चीट शीट शामिल था। Scikit-learn एक समान, लेकिन अधिक विस्तृत चीट शीट प्रदान करता है, जो आपके वर्गीकरणकर्ताओं (जिसे 'एस्टिमेटर्स' भी कहा जाता है) को और अधिक संकीर्ण करने में मदद कर सकता है:
पहले, आपने माइक्रोसॉफ्ट की चीट शीट का उपयोग करके डेटा वर्गीकृत करने के विभिन्न विकल्पों के बारे में सीखा। Scikit-learn एक समान, लेकिन अधिक सूक्ष्म चीट शीट प्रदान करता है जो आपके अनुमानों (क्लासिफायर्स के लिए एक और शब्द) को और सीमित करने में मदद कर सकता है:

> टिप: [इस मानचित्र को ऑनलाइन देखें](https://scikit-learn.org/stable/tutorial/machine_learning_map/) और मार्ग पर क्लिक करके प्रलेखन पढ़ें।

> टिप: [इस मानचित्र को ऑनलाइन देखें](https://scikit-learn.org/stable/tutorial/machine_learning_map/) और प्रलेखन पढ़ने के लिए रास्ते पर क्लिक करें।
### योजना
यह मानचित्र तब बहुत सहायक होता है जब आपको अपने डेटा की स्पष्ट समझ हो, क्योंकि आप इसके मार्गों पर चलते हुए निर्णय ले सकते हैं:
यह मानचित्र तब बहुत सहायक होता है जब आपके डेटा की अच्छी समझ हो, क्योंकि आप इसके रास्तों पर 'चलकर' निर्णय तक पहुंच सकते हैं:
- हमारे पास >50 नमूने हैं
- हम एक श्रेणी की भविष्यवाणी करना चाहते हैं
- हमारे पास लेबल किया हुआ डेटा है
- हमारे पास लेबल्ड डेटा है
- हमारे पास 100K से कम नमूने हैं
- ✨ हम एक Linear SVC चुन सकते हैं
- यदि यह काम नहीं करता है, क्योंकि हमारे पास संख्यात्मक डेटा है
- हम ✨ KNeighbors Classifier आज़मा सकते हैं
- यदि यह काम नहीं करता है, तो ✨ SVC और ✨ Ensemble Classifiers आज़माएं
- ✨ हम Linear SVC चुन सकते हैं
- अगर वह काम नहीं करता, क्योंकि हमारे पास संख्यात्मक डेटा है
- हम ✨ KNeighbors Classifier आज़मा सकते हैं
- अगर वह काम नहीं करता, तो ✨ SVC और ✨ Ensemble Classifiers आज़माएं
यह अनुसरण करने के लिए एक बहुत ही सहायक मार्ग है।
यह एक बहुत ही उपयोगी मार्ग है जिसे अनुसरण किया जा सकता है।
## अभ्यास - डेटा विभाजित करें
इस मार्ग का अनुसरण करते हुए, हमें उपयोग के लिए कुछ लाइब्रेरी आयात करके शुरू करना चाहिए।
इस रास्ते का पालन करते हुए, हमें शुरू में उपयोग के लिए कुछ लाइब्रेरीज़ आयात करनी चाहिए।
1. आवश्यक लाइब्रेरी आयात करें:
1. आवश्यक लाइब्रेरीज़ आयात करें:
```python
from sklearn.neighbors import KNeighborsClassifier
@ -53,28 +53,28 @@
1. अपने प्रशिक्षण और परीक्षण डेटा को विभाजित करें:
सपोर्ट-वेक्टर क्लस्टरिंग (SVC) मशीन लर्निंग तकनीकों के सपोर्ट-वेक्टर मशीन परिवार का हिस्सा है (नीचे इनके बारे में और जानें)। इस विधि में, आप लेबल को क्लस्टर करने के लिए 'कर्नेल' चुन सकते हैं। 'C' पैरामीटर 'रेग्युलराइज़ेशन' को संदर्भित करता है, जो पैरामीटरों के प्रभाव को नियंत्रित करता है। कर्नेल [कई](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC) में से एक हो सकता है; यहां हम इसे 'linear' पर सेट करते हैं ताकि हम Linear SVC का लाभ उठा सकें। Probability डिफ़ॉल्ट रूप से 'false' होती है; यहां हम इसे 'true' पर सेट करते हैं ताकि संभावना अनुमान प्राप्त कर सकें। हम डेटा को शफल करने के लिए रैंडम स्टेट को '0' पर सेट करते हैं।
सपोर्ट-वेक्टर क्लस्टरिंग (SVC) ML तकनीकों के सपोर्ट-वेक्टर मशीन परिवार का एक हिस्सा है (नीचे इसके बारे में और जानें)। इस विधि में, आप लेबलों को क्लस्टर करने के लिए एक 'कर्नेल' चुन सकते हैं। 'C' पैरामीटर 'रेग्युलराइजेशन' को संदर्भित करता है जो पैरामीटरों के प्रभाव को नियंत्रित करता है। कर्नेल [कई](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC) हो सकते हैं; यहाँ हमने इसे 'linear' पर सेट किया है ताकि हम linear SVC का लाभ उठा सकें। Probability डिफ़ॉल्ट रूप से 'false' होता है; यहाँ हमने इसे 'true' सेट किया है ताकि संभावना अनुमान एकत्रित किए जा सकें। हमने रैंडम स्टेट को '0' पर सेट किया है ताकि डेटा का शफल किया जा सके और संभावनाएँ प्राप्त की जा सकें।
### अभ्यास - Linear SVC लागू करें
### अभ्यास - linear SVC लागू करें
क्लासिफायर का एक ऐरे बनाकर शुरू करें। जैसे-जैसे हम परीक्षण करेंगे, आप इस ऐरे में प्रगतिशील रूप से जोड़ेंगे।
शुरू करें क्लासिफायर की एक सूची बनाकर। हम परीक्षण करते समय इस सूची में धीरे-धीरे और जोड़ेंगे।
2. Linear SVC का उपयोग करके अपने मॉडल को प्रशिक्षित करें और एक रिपोर्ट प्रिंट करें:
2. Linear SVC का उपयोग करके मॉडल को प्रशिक्षित करें और एक रिपोर्ट प्रिंट करें:
```python
n_classifiers = len(classifiers)
@ -105,21 +105,21 @@
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,15 +138,15 @@ K-Neighbors "पड़ोसियों" परिवार का हिस्
✅ [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors) के बारे में जानें
## सपोर्ट वेक्टर क्लासिफायर
## Support Vector क्लासिफायर
सपोर्ट-वेक्टर क्लासिफायर [सपोर्ट-वेक्टर मशीन](https://wikipedia.org/wiki/Support-vector_machine) परिवार का हिस्सा हैं, जो वर्गीकरण और प्रतिगमन कार्यों के लिए उपयोग किए जाते हैं। SVM "प्रशिक्षण उदाहरणों को स्थान में बिंदुओं पर मैप करते हैं" ताकि दो श्रेणियों के बीच की दूरी को अधिकतम किया जा सके। इसके बाद डेटा को इस स्थान में मैप किया जाता है ताकि उनकी श्रेणी की भविष्यवाणी की जा सके।
Support-Vector क्लासिफायर्स ML विधियों के [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine) परिवार का हिस्सा हैं जो वर्गीकरण और प्रतिगमन कार्यों के लिए उपयोग होते हैं। SVMs "प्रशिक्षण उदाहरणों को स्थान में पॉइंट्स के रूप में मैप करते हैं" ताकि दो श्रेणियों के बीच की दूरी अधिकतम हो सके। बाद के डेटा को इस स्थान में मैप किया जाता है ताकि उनकी श्रेणी की भविष्यवाणी की जा सके।
### अभ्यास - सपोर्ट वेक्टर क्लासिफायर लागू करें
### अभ्यास - Support Vector क्लासिफायर लागू करें
आइए सपोर्ट वेक्टर क्लासिफायर के साथ थोड़ी बेहतर सटीकता प्राप्त करने का प्रयास करें।
थोड़ी बेहतर सटीकता के लिए Support Vector क्लासिफायर आज़माएँ।
1. K-Neighbors आइटम के बाद एक कॉमा जोड़ें, और फिर यह पंक्ति जोड़ें:
1. K-Neighbors आइटम के बाद कॉमा जोड़ें, फिर यह लाइन जोड़ें:
```python
'SVC': SVC(),
@ -169,18 +169,18 @@ K-Neighbors "पड़ोसियों" परिवार का हिस्
weighted avg 0.84 0.83 0.83 1199
```
✅ [सपोर्ट-वेक्टर](https://scikit-learn.org/stable/modules/svm.html#svm) के बारे में जानें
✅ [Support-Vectors](https://scikit-learn.org/stable/modules/svm.html#svm) के बारे में जानें
## एन्सेम्बल क्लासिफायर
## Ensemble क्लासिफायर्स
आइए इस मार्ग के अंत तक चलते हैं, भले ही पिछला परीक्षण काफी अच्छा था। आइए कुछ 'एन्सेम्बल क्लासिफायर' आज़माएं, विशेष रूप से Random Forest और AdaBoost:
चलो पिछले परीक्षण के बावजूद, हम रास्ते के अंत तक चलते हैं। कुछ 'Ensemble Classifiers', विशेष रूप से 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
```
✅ [एन्सेम्बल क्लासिफायर](https://scikit-learn.org/stable/modules/ensemble.html) के बारे में जानें
✅ [Ensemble Classifiers](https://scikit-learn.org/stable/modules/ensemble.html) के बारे में जानें
यह मशीन लर्निंग विधि "कई बेस एस्टिमेटर्स की भविष्यवाणियों को जोड़ती है" ताकि मॉडल की गुणवत्ता में सुधार हो सके। हमारे उदाहरण में, हमने Random Trees और AdaBoost का उपयोग किया।
यह मशीन लर्निंग विधि "कई बुनियादी अनुमानों (base estimators) की भविष्यवाणियों को संयोजित करती है" ताकि मॉडल की गुणवत्ता सुधारी जा सके। हमारे उदाहरण में, हमने 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://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 DISCLAIMER START -->
**अस्वीकरण**:
यह दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) का उपयोग करके अनुवादित किया गया है। जबकि हम सटीकता के लिए प्रयासरत हैं, कृपया ध्यान दें कि स्वचालित अनुवाद में त्रुटियां या अशुद्धियां हो सकती हैं। मूल भाषा में उपलब्ध मूल दस्तावेज़ को आधिकारिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सिफारिश की जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम उत्तरदायी नहीं हैं।
इस दस्तावेज़ का अनुवाद एआई अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) का उपयोग करके किया गया है। हम सटीकता के लिए प्रयास करते हैं, कृपया ध्यान दें कि स्वचालित अनुवादों में त्रुटियां या अशुद्धियां हो सकती हैं। मूल दस्तावेज़ को इसकी मूल भाषा में अधिकारिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानवीय अनुवाद की सलाह दी जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या व्याख्या के लिए हम जिम्मेदार नहीं हैं।
"\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"
"\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"
> इस रिपॉजिटरी में 50+ भाषा के अनुवाद शामिल हैं जो डाउनलोड साइज को काफी बढ़ा देते हैं। अनुवाद के बिना क्लोन करने के लिए, sparse checkout का उपयोग करें:
> **स्थानीय रूप से क्लोन करना पसंद है?**
>
> इस रिपॉजिटरी में 50+ भाषा अनुवाद शामिल हैं जो डाउनलोड आकार को काफी बढ़ाते हैं। बिना अनुवाद के क्लोन करने के लिए sparse checkout का उपयोग करें:
हमारे पास AI के साथ सीखने की एक Discord श्रृंखला चल रही है, अधिक जानने और हमारे साथ जुड़ने के लिए [Learn with AI Series](https://aka.ms/learnwithai/discord) देखें, जो 18 - 30 सितंबर, 2025 तक चलेगी। आपको GitHub Copilot का उपयोग डेटा साइंस के लिए करने के टिप्स और ट्रिक्स मिलेंगे।
हमारे पास AI के साथ सीखने की एक Discord श्रृंखला चल रही है, अधिक जानने और शामिल होने के लिए [Learn with AI Series](https://aka.ms/learnwithai/discord) पर जाएं 18 - 30 सितंबर, 2025 से। आपको GitHub Copilot का उपयोग डेटा साइंस के लिए करने के टिप्स और ट्रिक्स मिलेंगे।

# शुरुआती के लिए मशीन लर्निंग - एक पाठ्यक्रम
# शुरुआती लोगों के लिए मशीन लर्निंग - एक पाठ्यक्रम
> 🌍 दुनिया के विभिन्न सांस्कृतिक संदर्भों के माध्यम से मशीन लर्निंग की खोज करते हुए दुनिया की यात्रा करें 🌍
> 🌍 हम दुनिया के विभिन्न सांस्कृतिक क्षेत्रों की मदद से मशीन लर्निंग का अन्वेषण करते हुए दुनिया की सैर करेंगे 🌍
Microsoft के Cloud Advocates 12 सप्ताह, 26 पाठों का एक पाठ्यक्रम पेश करते हैं जो पूरी तरह से **मशीन लर्निंग** के बारे में है। इस पाठ्यक्रम में, आप उस प्रक्रिया को सीखेंगे जिसे कभी-कभी **क्लासिक मशीन लर्निंग** कहा जाता है, जिसमें मुख्य रूप से Scikit-learn लाइब्रेरी का उपयोग होता है और गहन शिक्षण से बचा जाता है, जिसे हमारे [AI for Beginners' curriculum](https://aka.ms/ai4beginners) में शामिल किया गया है। साथ ही, इन पाठों को हमारे ['Data Science for Beginners' curriculum](https://aka.ms/ds4beginners) के साथ जोड़ें।
Microsoft में Cloud Advocates खुशी से प्रस्तुत करते हैं 12 सप्ताह का, 26-पाठ्यक्रम वाला एक पाठ्यक्रम जो पूरी तरह से **मशीन लर्निंग** के बारे में है। इस पाठ्यक्रम में, आप सीखेंगे जिसे कभी-कभी **क्लासिक मशीन लर्निंग** कहा जाता है, मुख्य रूप से Scikit-learn लाइब्रेरी का उपयोग करके, और डीप लर्निंग से बचेंगे, जो हमारे [AI for Beginners' पाठ्यक्रम](https://aka.ms/ai4beginners) में कवर किया गया है। साथ ही ये पाठ [Data Science for Beginners' पाठ्यक्रम](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
**🎨 हमारे चित्रकारों को भी धन्यवाद** टोमॉमी इमुरा, दासानी मडिपल्ली, और जेन लूपर
**🙏 विशेष धन्यवाद 🙏 हमारे Microsoft Student Ambassador लेखकों, समीक्षकों, और सामग्री योगदानकर्ताओं को**, खासतौर पर Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, और Snigdha Agarwal
**🙏 विशेष धन्यवाद 🙏 हमारे Microsoft Student Ambassador लेखकों, समीक्षाकर्ताओं, और सामग्री योगदानकर्ताओं को**, विशेष रूप से ऋषित डागली, मुहम्मद साक़िब खान इनान, रोहन राज, अलेक्जेंड्रू पेट्रेस्कू, अभिषेक जायसवाल, नवरीन तबस्सुम, इआन सामुइला, और स्निग्धा अग्रवाल को
**🤩 Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi, और Vidushi Gupta को हमारे R पाठों के लिए अतिरिक्त आभार!**
**🤩 अतिरिक्त आभार Microsoft Student Ambassadors एरिक वांजाऊ, जसलीन सोंधी, और विदुषी गुप्ता को हमारे R पाठों के लिए!**
# आरंभ कैसे करें
इन चरणों का पालन करें:
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)
1. **रिपॉजिटरी को Fork करें**: इस पृष्ठ के ऊपर-दाएं कोने में "Fork" बटन पर क्लिक करें।
2. **रिपॉजिटरी को Clone करें**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
> 🔧 **मदद चाहिए?** सामान्य इंस्टॉलेशन, सेटअप, और लेसन चलाने से संबंधित समस्याओं के समाधान के लिए हमारे [Troubleshooting Guide](TROUBLESHOOTING.md) को देखें।
> [इस पाठ्यक्रम के सभी अतिरिक्त संसाधन हमारे Microsoft Learn संग्रह में देखें](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> 🔧 **मदद चाहिए?** सामान्य समस्याओं जैसे इंस्टॉलेशन, सेटअप, और पाठ चलाने से संबंधित समाधान के लिए हमारा [Troubleshooting Guide](TROUBLESHOOTING.md) देखें।
**[छात्रों](https://aka.ms/student-page)**, इस पाठ्यक्रम का उपयोग करने के लिए, पूरी रिपॉजिटरी को अपने GitHub खाते में फोर्क करें और अपने या समूह के साथ अभ्यास पूर्ण करें:
**[छात्र](https://aka.ms/student-page)**, इस पाठ्यक्रम का उपयोग करने के लिए, पूरे रिपॉजिटरी को अपने GitHub अकाउंट पर fork करें और खुद से या समूह में अभ्यास पूरा करें:
- प्री-लेक्चर क्विज़ से शुरुआत करें।
- व्याख्यान पढ़ें और गतिविधियां पूरी करें, हर ज्ञान जांच पर रुकें और सोचें।
- समाधान कोड चलाने से पहले पाठों को समझकर परियोजनाएं बनाने का प्रयास करें; हालांकि कोड हर परियोजना-आधारित पाठ के `/solution` फ़ोल्डर्स में उपलब्ध है।
- प्रि-लेक्चर क्विज़ के साथ शुरुआत करें।
- व्याख्यान पढ़ें और गतिविधियाँ पूरी करें, हर ज्ञान जांच पर रुककर सोचें।
- परियोजना बनाने का प्रयास करें पाठों को समझकर, समाधान कोड चलाने के बजाय; हलाँकि वह कोड `/solution` फोल्डरों में उपलब्ध है हर प्रोजेक्ट-आधारित पाठ में।
- पोस्ट-लेक्चर क्विज़ लें।
- चुनौती पूरी करें।
- असाइनमेंट पूरा करें।
- एक पाठ समूह पूरा करने के बाद, [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) पर जाएं और "आवाज़़ उठाएं" उपयुक्त PAT रूपरेट भरकर। 'PAT' एक प्रगति मूल्यांकन उपकरण है जिसे आप अपनी सीख को बढ़ाने के लिए भरते हैं। आप दूसरों के PAT पर भी प्रतिक्रिया दे सकते हैं ताकि हम साथ सीख सकें।
- एक समूह पूरा करने के बाद, [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) में पा सकते हैं, नीचे की छवि पर क्लिक करके।
कुछ पाठ छोटे वीडियो के रूप में उपलब्ध हैं। आप उन्हें पाठ के साथ इन-लाइन पा सकते हैं, या [Microsoft Developer YouTube चैनल पर ML for Beginners प्लेलिस्ट](https://aka.ms/ml-beginners-videos) में नीचे दी गई छवि पर क्लिक करके देख सकते हैं।
[](https://aka.ms/ml-beginners-videos)
> 🎥 परियोजना और इसे बनाने वाले लोगों के बारे में वीडियो देखने के लिए ऊपर की छवि पर क्लिक करें!
> 🎥 ऊपर की छवि पर क्लिक करें परियोजना और इसे बनाने वालों के बारे में वीडियो के लिए!
---
## शिक्षण पद्धति
## शिक्षाशास्त्र
इस पाठ्यक्रम का निर्माण करते समय हमने दो शैक्षणिक सिद्धांत चुने हैं: इसे हाथ-से-करने वाला **परियोजना आधारित** बनाना और इसमें **बार-बार क्विज़** शामिल करना। इसके अलावा, इस पाठ्यक्रम में एक सामान्य **थीम** है जो इसे सामंजस्य प्रदान करता है।
इस पाठ्यक्रम के निर्माण में हमने दो शैक्षणिक सिद्धांत चुने हैं: इसे हाथों-हाथ **परियोजना-आधारित** बनाना सुनिश्चित करना और इसमें **बार-बार क्विज़** शामिल करना। इसके अलावा, इस पाठ्यक्रम में आम **थीम** भी है जो इसे एकरूपता देता है।
सुनिश्चित करके कि सामग्री परियोजनाओं के साथ संरेखित हो, छात्र के लिए प्रक्रिया अधिक आकर्षक हो जाती है और अवधारणाओं की पकड़ बढ़ती है। इसके अलावा, कक्षा के पहले एक कम दांव वाला क्विज़ छात्र के लिए विषय सीखने की इच्छा निर्धारित करता है, जबकि कक्षा के बाद दूसरा क्विज़ और अधिक पकड़ सुनिश्चित करता है। यह पाठ्यक्रम लचीला और मजेदार बनाने के लिए डिज़ाइन किया गया है और इसे पूरी तरह या आंशिक रूप से लिया जा सकता है। परियोजनाएं छोटी से शुरू होकर 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) दिशानिर्देश देखें। हम आपकी रचनात्मक प्रतिक्रिया का स्वागत करते हैं!
> **भाषाओं के बारे में एक नोट**: ये पाठ मुख्य रूप से Python में लिखे गए हैं, लेकिन कई R में भी उपलब्ध हैं। R पाठ पूरा करने के लिए, `/solution` फ़ोल्डर में पता करें कि R के पाठ कहां हैं। इनमें .rmd एक्सटेंशन होता है, जो एक **R Markdown** फ़ाइल को दर्शाता है जिसे सरलता से `कोड खंड` (R या अन्य भाषाओं के) और एक `YAML हेडर` (जो PDF जैसे आउटपुट को कैसे फॉर्मेट करना है इसका मार्गदर्शन करता है) को एक `Markdown दस्तावेज़` में सम्मिलित करना कहा जा सकता है। इस प्रकार, यह डेटा साइंस के लिए एक आदर्श लेखन ढांचा प्रदान करता है क्यूंकि यह आपको अपना कोड, उसका आउटपुट, और अपने विचार Markdown में लिखकर संयोजित करने की अनुमति देता है। इसके अलावा, R Markdown दस्तावेज़ PDF, HTML, या Word जैसे आउटपुट फॉर्मेट में प्रस्तुत किए जा सकते हैं।
> **क्विज़ के बारे में एक नोट**: सभी क्विज़ [Quiz App फ़ोल्डर](../../quiz-app) में शामिल हैं, कुल 52 क्विज़ हैं, प्रत्येक में तीन प्रश्न होते हैं। इन्हें पाठों के भीतर लिंक किया गया है, लेकिन क्विज़ ऐप को स्थानीय रूप से चलाया जा सकता है; स्थानीय रूप से होस्ट या Azure पर डिप्लॉय करने के लिए `quiz-app` फ़ोल्डर में दिए गए निर्देशों का पालन करें।
| पाठ संख्या | विषय | पाठ समूह | सीखने के उद्देश्य | संबंधित पाठ | लेखक |
| 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) | न्याय से जुड़े महत्वपूर्ण दार्शनिक मुद्दे क्या हैं, जिन्हें छात्रों को ML मॉडल बनाते और लागू करते समय ध्यान में रखना चाहिए? | [पाठ](1-Introduction/3-fairness/README.md) | टोमोमी |
| 04 | मशीन लर्निंग के तकनीक | [परिचय](1-Introduction/README.md) | ML शोधकर्ता ML मॉडल बनाने के लिए कौन-कौन सी तकनीकें उपयोग करते हैं? | [पाठ](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) | ML के लिए डेटा का दृश्यांकन और सफाई करें | [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) | क्लासिकल ML के दिलचस्प और प्रकट करने वाले वास्तविक दुनिया के अनुप्रयोग | [पाठ](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)
## ऑफ़लाइन पहुँच
आप [Docsify](https://docsify.js.org/#/) का उपयोग करके इस दस्तावेज़ को ऑफ़लाइन चला सकते हैं। इस रिपॉजिटरी को फोर्क करें, अपनी स्थानीय मशीन पर [Docsify स्थापित करें](https://docsify.js.org/#/quickstart), और फिर इस रिपॉजिटरी के रूट फ़ोल्डर में टाइप करें `docsify serve`। वेबसाइट आपके स्थानीयहोस्ट पर पोर्ट 3000 पर सेवा देगा: `localhost:3000`।
## पीडीएफ़
लिंक के साथ पाठ्यक्रम का पीडीएफ [यहाँ](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) देखें।
## 🎒 अन्य पाठ्यक्रम
हमारी टीम अन्य पाठ्यक्रम भी बनाती है! देखें:
> **भाषाओं के बारे में एक नोट**: ये पाठ मुख्य रूप से Python में लिखे गए हैं, लेकिन कई R में भी उपलब्ध हैं। एक R पाठ पूरा करने के लिए, `/solution` फ़ोल्डर पर जाएं और R पाठ खोजें। इनमें .rmd एक्सटेंशन होता है जो एक **R Markdown** फ़ाइल को दर्शाता है जिसे सरलता से ऐसे परिभाषित किया जा सकता है कि यह `कोड चंक्स` (R या अन्य भाषाओं के) और `YAML हैडर` (जो आउटपुट जैसे PDF के स्वरूप को मार्गदर्शन करता है) को `Markdown दस्तावेज़` में एम्बेड करता है। इसलिए, यह डेटा साइंस के लिए एक आदर्श लेखक ढांचा के रूप में काम करता है क्योंकि यह आपको अपने कोड, उसके आउटपुट, और अपने विचारों को Markdown में लिखने की अनुमति देकर संयोजित करने देता है। इसके अलावा, R Markdown दस्तावेज़ों को 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) | Muhammad |
| 02 | मशीन लर्निंग का इतिहास | [Introduction](1-Introduction/README.md) | इस क्षेत्र के पीछे का इतिहास सीखें | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy |
| 03 | निष्पक्षता और मशीन लर्निंग | [Introduction](1-Introduction/README.md) | निष्पक्षता से जुड़े महत्वपूर्ण दार्शनिक मुद्दे क्या हैं जिन्हें छात्र ML मॉडल बनाने और लागू करते वक्त विचार करें? | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | मशीन लर्निंग के लिए तकनीकें | [Introduction](1-Introduction/README.md) | ML शोधकर्ता ML मॉडल बनाने के लिए कौन-कौन सी तकनीकें इस्तेमाल करते हैं? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and 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) | ML के लिए डेटा को देखना और साफ करना | [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 and 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 App](3-Web-App/README.md) | अपने प्रशिक्षित मॉडल का उपयोग करने के लिए एक वेब ऐप बनाएं | [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 and 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 and 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 and 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-लर्निंग के साथ पुनर्बलन लर्निंग का परिचय | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | पीटर को भेड़िये से बचाएं! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | पुनर्बलन लर्निंग जिम | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| उपसंहार | वास्तविक दुनिया के ML परिदृश्य और अनुप्रयोग | [ML in the Wild](9-Real-World/README.md) | क्लासिक ML के रोचक और खुलासे वाले वास्तविक विश्व अनुप्रयोग | [Lesson](9-Real-World/1-Applications/README.md) | Team |
| उपसंहार | RAI डैशबोर्ड का उपयोग करके ML मॉडल डिबगिंग | [ML in the Wild](9-Real-World/README.md) | जिम्मेदार AI डैशबोर्ड घटकों का उपयोग करते हुए मशीन लर्निंग में मॉडल डिबगिंग | [Lesson](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/#/) का उपयोग करके चला सकते हैं। इस रिपॉजिटरी को फोर्क करें, अपने स्थानीय मशीन पर [Docsify स्थापित करें](https://docsify.js.org/#/quickstart), और फिर इस रिपॉजिटरी के रूट फ़ोल्डर में `docsify serve` टाइप करें। वेबसाइट आपके लोकलहोस्ट पर पोर्ट 3000 पर सर्व होगी: `localhost:3000`।
## पीडीएफ
लिंक के साथ पाठ्यक्रम का PDF यहाँ देखें [here](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf)।
## 🎒 अन्य कोर्स
हमारी टीम अन्य कोर्स भी बनाती है! देखें:
<!-- CO-OP TRANSLATOR OTHER COURSES START -->
### LangChain
@ -170,44 +172,49 @@ Microsoft के Cloud Advocates 12 सप्ताह, 26 पाठों क
---
### Generative AI Series
[](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
### जेनेरेटिव एआई श्रृंखला
[](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
---
### कोर लर्निंग
[](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
### मूल सीखना
[](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### कॉपाइलट सीरीज
[](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
यदि आप अटक गए हैं या एआई ऐप्स बनाने के बारे में कोई प्रश्न हैं। सहपाठियों और अनुभवी डेवलपर्स के साथ एमसीपी पर चर्चाओं में शामिल हों। यह एक सहायक समुदाय है जहाँ प्रश्न स्वागत योग्य हैं और ज्ञान स्वतंत्र रूप से साझा किया जाता है।
यदि आप अटक जाते हैं या AI ऐप बनाने के बारे में कोई प्रश्न हैं। MCP के बारे में चर्चाओं में साथी शिक्षार्थियों और अनुभवी डेवलपर्स के साथ जुड़ें। यह एक सहायक समुदाय है जहां प्रश्न स्वागत योग्य हैं और ज्ञान खुलेआम साझा किया जाता है।
- बेहतर समझ के लिए प्रत्येक पाठ के बाद नोटबुक समीक्षा करें।
- स्वयं एल्गोरिदम लागू करने का अभ्यास करें।
- सीखे गए सिद्धांतों का उपयोग कर वास्तविक विश्व डेटासेट्स का अन्वेषण करें।
---
<!-- 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) का उपयोग करके अनुवादित किया गया है। जबकि हम सटीकता के लिए प्रयासरत हैं, कृपया ध्यान दें कि स्वचालित अनुवादों में त्रुटियाँ या गलतियाँ हो सकती हैं। मूल दस्तावेज़ अपनी मूल भाषा में प्रामाणिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सलाह दी जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम जिम्मेदार नहीं हैं।
これまでに、今回取り上げるカボチャデータの構造について理解しているはずです。このレッスンの_notebook.ipynb_ファイルには、事前にロードされ、クリーンアップされたデータが含まれています。このファイルでは、カボチャの価格が新しいデータフレームに1ブッシェルあたりで表示されています。このノートブックをVisual Studio Codeのカーネルで実行できることを確認してください。
かぼちゃのデータ構造についてはすでに理解しているはずです。このレッスンの _notebook.ipynb_ ファイル内に、事前に読み込みと整形済みのデータがあります。その中で、かぼちゃの価格が単位「ブッシェル(容量単位)」あたりの価格として新しいデータフレームに表示されています。Visual Studio Codeのカーネル環境でこれらのノートブックが実行できることを確認してください。
> この直線を計算する数学は、傾きと切片に依存します。計算方法については、[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)で数値の影響を確認してみてください。
[](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
DiscordではAI学習シリーズを開催中です。詳細と参加は[Learn with AI Series](https://aka.ms/learnwithai/discord)(2025年9月18日~30日)から。GitHub Copilotを使ったデータサイエンスのヒントやコツが得られます。
2025年9月18日〜30日の間、Discordで「AIと一緒に学ぼう」シリーズを開催しています。詳細と参加はこちらから [Learn with AI Series](https://aka.ms/learnwithai/discord)。GitHub Copilotを使ったデータサイエンスのコツやヒントをお届けします。

# Machine Learning for Beginners - カリキュラム
# 初心者のための機械学習 - カリキュラム
> 🌍 世界の文化を通じて機械学習を探求しながら、世界を旅しよう 🌍
> 🌍 世界の文化を通じて機械学習を探求しながら世界一周の旅へ 🌍
MicrosoftのCloud Advocatesは、**機械学習**に関する12週間、26レッスンのカリキュラムを提供します。このカリキュラムでは、主にScikit-learnを使い、ディープラーニングは扱わずに「クラシック機械学習」と呼ばれる分野を学びます。ディープラーニングは[AI for Beginners](https://aka.ms/ai4beginners)カリキュラムで取り扱っています。こちらと併せて['Data Science for Beginners'カリキュラム](https://aka.ms/ds4beginners)もどうぞ。
MicrosoftのCloud Advocatesは、**機械学習**に関する12週間、26レッスンのカリキュラムを提供します。このカリキュラムでは、主にScikit-learnライブラリを使用し、ディープラーニングは避けるいわゆる**クラシック機械学習**を学びます(ディープラーニングは[AI for Beginners'カリキュラム](https://aka.ms/ai4beginners)で扱っています)。合わせて[『初心者のためのデータサイエンス』カリキュラム](https://aka.ms/ds4beginners)もご利用ください。
一部レッスンはショートフォーム動画で提供しています。レッスン内のインラインや、[Microsoft DeveloperのYouTubeチャンネル上のML for Beginnersプレイリスト](https://aka.ms/ml-beginners-videos)からご覧ください。下の画像をクリックするとアクセスできます。
一部のレッスンは短い動画で提供されています。各レッスン内、または[Microsoft Developer YouTubeチャンネルのML for Beginnersプレイリスト](https://aka.ms/ml-beginners-videos)でご覧になれます。下の画像をクリックしてください。
[](https://aka.ms/ml-beginners-videos)
| 04 | 機械学習の手法 | [Introduction](1-Introduction/README.md) | ML研究者がMLモデル構築に使用する手法は何か | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and 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 and 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 |
| 04 | 機械学習の技法 | [Introduction](1-Introduction/README.md) | ML研究者がMLモデルを構築するために使う技法とは? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and 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) | MLのためのデータの可視化とクレンジング | [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 and 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 |
[](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[-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://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
이 수업에서는 책임 있는 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의 시스템, 실행한 노트북, 실행 결과에서 도출된 결론을 논의하는 논문 또는 파워포인트 발표 자료가 제출됨 | 결론 없이 논문이 제출됨 | 논문이 제출되지 않음 |
---
<!-- 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)를 사용하여 번역되었습니다. 정확성을 위해 최선을 다하고 있으나, 자동 번역은 오류나 부정확한 내용이 포함될 수 있음을 유의하시기 바랍니다. 원본 문서의 원어 버전이 권위 있는 출처로 간주되어야 합니다. 중요한 정보의 경우 전문가의 인간 번역을 권장합니다. 본 번역의 사용으로 인한 어떠한 오해나 오역에 대해서도 당사는 책임을 지지 않습니다.
> ### [이 강의는 R 버전으로도 제공됩니다!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### 소개
지금까지 호박 가격 데이터셋을 사용하여 회귀 분석이 무엇인지 탐구하고, Matplotlib을 사용하여 시각화하는 방법을 배웠습니다.
지금까지 당신은 우리 수업 전반에 걸쳐 사용할 호박 가격 데이터로부터 회귀가 무엇인지 탐구했습니다. 또한 Matplotlib를 사용해 시각화해 보았습니다.
이제 머신러닝을 위한 회귀 분석을 더 깊이 탐구할 준비가 되었습니다. 시각화를 통해 데이터를 이해할 수 있지만, 머신러닝의 진정한 힘은 _모델 훈련_에서 나옵니다. 모델은 과거 데이터를 기반으로 데이터 간의 의존성을 자동으로 학습하며, 이전에 본 적 없는 새로운 데이터에 대한 결과를 예측할 수 있습니다.
이제 머신러닝을 위한 회귀를 더 깊게 학습할 준비가 되었습니다. 시각화는 데이터를 이해하는 데 도움을 주지만, 머신러닝의 진정한 힘은 _모델 학습_에 있습니다. 모델은 과거 데이터를 학습해 데이터 간의 관계를 자동으로 포착하며, 학습하지 않은 새로운 데이터에 대한 결과를 예측할 수 있게 해줍니다.
이번 강의에서는 두 가지 유형의 회귀 분석, 즉 _기본 선형 회귀_와 _다항 회귀_에 대해 배우고, 이러한 기술의 수학적 기초를 살펴볼 것입니다. 이러한 모델을 사용하여 다양한 입력 데이터를 기반으로 호박 가격을 예측할 수 있습니다.
이번 수업에서는 _기본 선형 회귀_와 _다항 회귀_ 두 가지 유형과 이 기법들의 수학적 배경에 관해 배웁니다. 이런 모델을 통해 다양한 입력 변수에 따라 호박 가격을 예측할 수 있게 됩니다.
[](https://youtu.be/CRxFT8oTDMg "초보자를 위한 머신러닝 - 선형 회귀 이해하기")
[](https://youtu.be/CRxFT8oTDMg "초보자용 머신러닝 - 선형 회귀 이해하기")
> 🎥 위 이미지를 클릭하면 선형 회귀에 대한 짧은 영상 개요를 볼 수 있습니다.
> 🎥 위 이미지를 클릭하면 선형 회귀에 관한 짧은 동영상을 볼 수 있습니다.
> 이 커리큘럼에서는 수학에 대한 최소한의 지식을 가정하며, 다른 분야에서 온 학생들이 이해할 수 있도록 접근성을 높이고자 합니다. 따라서 주석, 🧮 수학 관련 내용, 다이어그램 및 기타 학습 도구를 활용하여 이해를 돕습니다.
> 이 교육 과정 전반에서 최소한의 수학 지식을 가정하며, 다른 분야에서 온 학생들도 이해하기 쉽도록 노트, 🧮 주석, 도표 및 기타 학습 도구들을 활용합니다.
### 사전 준비
### 선수 지식
이제까지 호박 데이터의 구조를 익혔을 것입니다. 이 강의의 _notebook.ipynb_ 파일에서 미리 로드되고 정리된 데이터를 확인할 수 있습니다. 이 파일에서는 호박 가격이 새로운 데이터 프레임에 부셸 단위로 표시됩니다. Visual Studio Code의 커널에서 이 노트북을 실행할 수 있는지 확인하세요.
당신은 현재 우리가 다루는 호박 데이터 구조에 익숙할 것입니다. 해당 데이터는 이번 수업의 _notebook.ipynb_ 파일에 미리 불러와지고 전처리되어 있습니다. 이 파일에서는 한 단위(bushel) 당 호박 가격이 새로운 데이터 프레임에 표시되어 있습니다. Visual Studio Code의 커널에서 해당 노트북을 실행할 수 있는지 확인하세요.
### 준비 작업
### 준비 사항
이 데이터를 로드하는 이유는 질문을 던지기 위함입니다.
이 데이터를 불러오는 이유는 질문을 던지기 위해서입니다.
- 호박을 구매하기 가장 좋은 시기는 언제인가요?
- 미니어처 호박 한 상자의 가격은 얼마일까요?
- 반 부셸 바구니로 구매하는 것이 좋을까요, 아니면 1 1/9 부셸 상자로 구매하는 것이 좋을까요?
- 호박을 가장 싸게 살 수 있는 시기는 언제일까요?
- 미니어처 호박 하나 가격은 대략 얼마일까요?
- 반 bushel 바구니 단위로 사는 게 좋을까요, 아니면 1 1/9 버셜 박스로 사는 게 좋을까요?
이 데이터를 더 깊이 탐구해 봅시다.
계속해서 이 데이터를 자세히 탐색해 봅시다.
이전 강의에서는 Pandas 데이터 프레임을 생성하고 원본 데이터셋의 일부를 표준화하여 부셸 단위로 가격을 표시했습니다. 하지만 그렇게 함으로써 약 400개의 데이터 포인트만 얻을 수 있었고, 가을철 데이터만 포함되었습니다.
이전 수업에서는 Pandas 데이터 프레임을 만들고 원본 데이터 일부를 기준으로 단위를 버셜별 가격으로 표준화했습니다. 하지만 그 경우 가을철 데이터 약 400개만 수집할 수 있었습니다.
이번 강의의 노트북에 미리 로드된 데이터를 살펴보세요. 데이터는 미리 로드되어 있으며 초기 산점도가 월별 데이터를 보여주도록 차트화되어 있습니다. 데이터를 더 정리하면 데이터의 특성을 조금 더 자세히 알 수 있을지도 모릅니다.
이번 수업에 첨부된 노트북에 미리 불러온 데이터를 확인하세요. 데이터가 미리 불러와져 있으며, 기본 산점도가 월별 데이터를 보여 줍니다. 데이터를 더 정제하면 더 구체적인 데이터 특성을 알 수 있을지도 모릅니다.
## 선형 회귀선
1강에서 배운 바와 같이, 선형 회귀의 목표는 다음을 가능하게 하는 선을 그리는 것입니다:
1강에서 배운 것처럼, 선형 회귀 연습의 목표는 다음을 수행할 수 있는 선을 그리는 것입니다.
- **변수 관계를 보여줌**. 변수 간의 관계를 보여줍니다.
- **예측 수행**. 새로운 데이터 포인트가 이 선과 어떤 관계에 있을지 정확히 예측합니다.
- **변수 관계 표시.** 변수 간 관계를 시각화합니다.
- **예측 수행.** 새로운 데이터가 이 선과 어떤 관계인지 정확히 예측합니다.
**최소 제곱 회귀**는 이러한 유형의 선을 그리는 데 일반적으로 사용됩니다. '최소 제곱'이라는 용어는 회귀선 주변의 모든 데이터 포인트를 제곱한 다음 합산한다는 것을 의미합니다. 이상적으로는 최종 합계가 가능한 한 작아야 합니다. 이는 오류 수를 줄이고자 하기 때문입니다.
이런 선을 그릴 때 흔히 쓰는 방식이 **최소제곱법 회귀(Least-Squares Regression)**입니다. "최소제곱"이란 모델 오차의 총합을 최소화하는 과정을 뜻합니다. 각 데이터 점과 회귀선 사이 수직 거리(잔차)를 계산하며,
우리는 데이터 포인트와 선 사이의 누적 거리가 가장 적은 선을 모델링하고자 합니다. 또한 방향보다는 크기에 관심이 있으므로 항을 제곱한 후 합산합니다.
이 거리 값들을 제곱하는 데는 다음 두 가지 이유가 있습니다:
> **🧮 수학을 보여주세요**
>
> 이 선은 _최적의 적합선_이라고 하며, [다음 방정식](https://en.wikipedia.org/wiki/Simple_linear_regression)으로 표현할 수 있습니다:
>
1. **크기만 고려, 방향 무시:** -5와 +5의 오차를 동일하게 취급하기 위해 모든 값을 양수로 만듭니다.
2. **이상치 가중:** 큰 오차에는 제곱값이 훨씬 커지므로 외곽값에 대해 더 강한 패널티를 줍니다.
이 제곱 거리들을 모두 더한 값이 가장 작은 선을 찾는 것이 목표입니다. 이 때문에 "최소제곱"이라는 이름이 붙었습니다.
> **🧮 수학으로 보기**
>
> 최적의 선을 의미하는 _최적선_은 [다음 방정식](https://en.wikipedia.org/wiki/Simple_linear_regression)으로 표현할 수 있습니다:
>
> ```
> Y = a + bX
> ```
>
> `X`는 '설명 변수'이고, `Y`는 '종속 변수'입니다. 선의 기울기는 `b`이고, `a`는 y절편으로, 이는 `X = 0`일 때 `Y`의 값을 나타냅니다.
> `Y` 값을 계산합니다. 약 $4를 지불한다면, 아마도 4월일 것입니다! 인포그래픽 제작: [Jen Looper](https://twitter.com/jenlooper)
> `Y` 값을 계산하세요. 만약 가격이 약 4달러라면 4월일 겁니다! 인포그래픽 출처: [Jen Looper](https://twitter.com/jenlooper)
>
> 선의 기울기는 y절편에 따라 달라지며, 이는 `X = 0`일 때 `Y`가 위치하는 지점입니다.
> 선의 기울기를 구하는 수학은 단절점(절편)에도 의존하며, `X=0`일 때 `Y`가 어디에 위치하는지 보여 줍니다.
>
> 이러한 값의 계산 방법은 [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 변수 간의 **상관계수(Correlation Coefficient)**입니다. 산점도를 통해 빠르게 상관계수를 시각화할 수 있습니다. 데이터 점들이 한 줄로 정렬돼 있으면 상관관계가 높고, 산점도가 흩어져 있으면 상관관계가 낮습니다.
좋은 선형 회귀 모델은 높은 상관 계수(1에 가까운 값)를 가지며, 최소 제곱 회귀 방법과 회귀선을 사용합니다.
좋은 선형 회귀 모델은 최소제곱 회귀를 사용해 상관계수가 높게(0에 가까운 것보다 1에 가까운) 나오는 모델입니다.
✅ 이번 강의의 노트북을 실행하고 월별 가격 산점도를 확인하세요. 호박 판매의 월별 가격 데이터는 산점도를 시각적으로 해석했을 때 높은 상관관계를 가지는 것 같나요, 아니면 낮은 상관관계를 가지는 것 같나요? `Month` 대신 더 세분화된 측정값(예: *연도의 일수*, 즉 연초부터의 일수)을 사용하면 결과가 달라지나요?
✅ 강의 첨부 노트북을 실행하여 월별-가격 산점도를 살펴보세요. 호박 판매 월별 가격 데이터는 시각적으로 보았을 때 상관관계가 높아 보이나요, 낮아 보이나요? `Month` 대신 더 세분화한 척도(예: *연중 일수*, 즉 1년 시작일부터 지난 일수)를 사용하면 결과가 달라지나요?
아래 코드에서는 데이터를 정리하고 `new_pumpkins`라는 데이터 프레임을 얻었다고 가정합니다. 데이터는 다음과 비슷합니다:
다음 코드는 데이터를 정제하여 `new_pumpkins`라는 데이터 프레임을 얻었다고 가정합니다. 예시는 아래와 같습니다:
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
> 데이터를 정리하는 코드는 [`notebook.ipynb`](../../../../2-Regression/3-Linear/notebook.ipynb)에 있습니다. 이전 강의와 동일한 정리 단계를 수행했으며, 다음 표현식을 사용하여 `DayOfYear` 열을 계산했습니다:
> 데이터 정제 코드는 [`notebook.ipynb`](notebook.ipynb)에 있습니다. 이전 강의와 동일한 정제 단계를 수행했고, `DayOfYear` 열은 다음 식으로 계산했습니다:
상관관계는 `Month` 기준으로 -0.15, `DayOfYear` 기준으로 -0.17로 비교적 낮은 것 같습니다. 하지만 또 다른 중요한 관계가 있을 수 있습니다. 가격이 호박 품종에 따라 다른 클러스터를 형성하는 것처럼 보입니다. 이 가설을 확인하기 위해 각 호박 카테고리를 다른 색상으로 표시해 봅시다. `scatter` 플롯 함수에 `ax` 매개변수를 전달하여 모든 점을 동일한 그래프에 표시할 수 있습니다:
상관관계는 다소 작아서 `Month` 기준 -0.15, `DayOfMonth` 기준 -0.17 정도지만, 중요한 또 다른 관계가 있을지도 모릅니다. 서로 다른 호박 품종 별 가격 클러스터가 형성되어 보입니다. 이를 확인하려면 각 호박 품종을 다른 색상으로 표시해 봅시다. `scatter` 함수에 `ax` 파라미터를 넘겨 여러 데이터를 한 그래프에 겹쳐 그릴 수 있습니다:
```python
ax=None
@ -129,9 +141,9 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
<imgalt="파이 호박 가격 vs 연도의 일수 산점도" src="../../../../translated_images/ko/pie-pumpkins-scatter.d14f9804a53f927e.webp"width="50%"/>
<imgalt="가격 vs 연중 일수 산점도 - pie 타입" src="../../../../translated_images/ko/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()
```
또 다른 접근법은 빈 값을 해당 열의 평균값으로 채우는 것입니다.
또 다른 방법으로, 해당 열의 평균값으로 결측값을 채우는 방법도 있습니다.
## 간단한 선형 회귀
## 단순 선형 회귀
[](https://youtu.be/e4c_UP2fSjg "초보자를 위한 머신러닝 - Scikit-learn을 사용한 선형 및 다항 회귀")
[](https://youtu.be/e4c_UP2fSjg "초보자용 머신러닝 - Scikit-learn으로 선형 및 다항 회귀")
> 🎥 위 이미지를 클릭하면 Scikit-learn을 사용한 선형 및 다항 회귀에 대한 짧은 영상 개요를 볼 수 있습니다.
> 🎥 위 이미지를 클릭하면 선형 및 다항 회귀에 관한 간단한 영상 개요를 볼 수 있습니다.
선형 회귀 모델을 훈련시키기 위해**Scikit-learn** 라이브러리를 사용할 것입니다.
선형 회귀 모델을 훈련하기 위해,**Scikit-learn** 라이브러리를 사용할 것입니다.
```python
from sklearn.linear_model import LinearRegression
@ -172,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`를 수행해야 했습니다. 선형 회귀는 각 행이 입력 특징 벡터에 해당하는 2D 배열을 입력으로 기대합니다. 우리의 경우 입력이 하나뿐이므로 데이터셋 크기가 N×1인 배열이 필요합니다.
> 입력 데이터를 선형 회귀 패키지가 올바르게 이해하도록 `reshape` 처리를 해야 했던 점을 유의하세요. 선형 회귀는 각 행이 입력 특징 벡터인 2차원 배열을 요구합니다. 현재 입력이 하나이므로, 데이터 크기 N에 대해 N×1 배열이 필요합니다.
그런 다음 데이터를 훈련 데이터셋과 테스트 데이터셋으로 분리하여 훈련 후 모델을 검증할 수 있도록 합니다:
그다음 데이터를 훈련용과 테스트용으로 나누어 훈련 후 모델을 검증할 수 있도록 합니다:
```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)
```
`fit` 후 `LinearRegression` 객체는 회귀의 모든 계수를 포함하며, `.coef_` 속성을 통해 접근할 수 있습니다. 우리의 경우 계수는 하나뿐이며 약 `-0.017` 정도일 것입니다. 이는 시간이 지남에 따라 가격이 약간 하락하는 경향이 있음을 나타내며, 하루에 약 2센트 정도 하락합니다. 또한 `lin_reg.intercept_`를 사용하여 회귀선이 Y축과 교차하는 지점을 확인할 수 있습니다. 우리의 경우 약 `21` 정도로, 연초 가격을 나타냅니다.
`fit` 후의`LinearRegression` 객체는 회귀의 모든 계수를 포함하며, `.coef_` 속성을 통해 접근할 수 있습니다. 이 예제에서는 하나의 계수만 있으며, 대략 `-0.017` 정도입니다. 이는 시간이 지남에 따라 가격이 약간 떨어지는 경향이 있음을 의미하며, 하루에 약 2센트 정도 하락하는 셈입니다. 또한 회귀의 Y축과의 교차점을 `lin_reg.intercept_`로 접근할 수 있는데, 이 값은 대략 `21` 정도로, 연초의 가격을 나타냅니다.
모델의 정확성을 확인하려면 테스트 데이터셋에서 가격을 예측한 후 예상 값과 예측 값이 얼마나 가까운지 측정할 수 있습니다. 이는 평균 제곱 오차(MSE) 메트릭스를 사용하여 수행할 수 있으며, 예상 값과 예측 값 간의 모든 제곱 차이의 평균입니다.
모델의 정확도를 확인하려면, 테스트 데이터셋에서 가격을 예측하고 예측값과 실제값이 얼마나 가까운지 측정할 수 있습니다. 이는 평균 제곱 오차(MSE) 지표를 사용해 할 수 있는데, 이는 예상값과 예측값의 제곱 차이의 평균입니다.
```python
pred = lin_reg.predict(X_test)
@ -204,36 +216,37 @@ pred = lin_reg.predict(X_test)
우리의 오류는 약 2포인트, 즉 약 17%로 보입니다. 그다지 좋지 않습니다. 모델 품질의 또 다른 지표는 **결정 계수**로, 다음과 같이 얻을 수 있습니다:
오차는 대략 2포인트로, 약 17% 정도입니다. 그리 좋지 않은 결과입니다. 모델 품질의 또 다른 지표는 **결정 계수(coefficient of determination)**로, 다음과 같이 얻을 수 있습니다:
```python
score = lin_reg.score(X_train,y_train)
print('Model determination: ', score)
```
값이 0이면 모델이 입력 데이터를 고려하지 않고, 단순히 결과의 평균값을 예측하는 *최악의 선형 예측기*로 작동한다는 것을 의미합니다. 값이 1이면 모든 예상 출력값을 완벽하게 예측할 수 있다는 것을 의미합니다. 우리의 경우, 결정 계수는 약 0.06으로 매우 낮습니다.
```
값이 0이라면 모델이 입력 데이터를 전혀 고려하지 않고, 단순히 결과의 평균값을 예측하는 *최악의 선형 예측자*임을 의미합니다. 1이라는 값은 모든 출력값을 완벽하게 예측할 수 있음을 뜻합니다. 우리의 경우, 결정 계수는 약 0.06으로 꽤 낮은 편입니다.
또한 테스트 데이터를 회귀선과 함께 플롯하여 우리의 경우 회귀가 어떻게 작동하는지 더 잘 볼 수 있습니다:
또한 회귀선과 테스트 데이터를 함께 그려서 회귀가 어떻게 작동하는지 더 잘 볼 수 있습니다:
선형 회귀의 또 다른 유형은 다항 회귀입니다. 때로는 변수 간에 선형 관계가 있을 수 있습니다. 예를 들어, 호박의 부피가 클수록 가격이 높아지는 경우처럼요. 하지만 때로는 이러한 관계를 평면이나 직선으로 나타낼 수 없습니다.
선형 회귀의 또 다른 유형은 다항 회귀입니다. 때로 변수들 간에 선형 관계가 존재하기도 하지만 — 예를 들어 부피가 큰 호박일수록 가격이 높음 — 때때로 이런 관계를 평면이나 직선으로 그릴 수 없을 수도 있습니다.
✅ [여기](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은 데이터 처리를 여러 단계로 결합할 수 있는 유용한 [파이프라인 API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline)를 제공합니다. **파이프라인**은 여러 **추정기(estimators)**가 연결된 체인입니다. 이 예제에서는 먼저 다항 특성을 추가하고, 그 다음 회귀를 학습하는 파이프라인을 만듭니다:
```python
from sklearn.preprocessing import PolynomialFeatures
@ -242,62 +255,62 @@ from sklearn.pipeline import make_pipeline
`PolynomialFeatures(2)`를 사용하면 입력 데이터에서 모든 2차 다항식을 포함하게 됩니다. 우리의 경우, 이는 단순히 `DayOfYear`<sup>2</sup>를 의미하지만, 두 개의 입력 변수 X와 Y가 주어지면 X<sup>2</sup>, XY, Y<sup>2</sup>를 추가합니다. 더 높은 차수의 다항식을 사용하고 싶다면 사용할 수도 있습니다.
`PolynomialFeatures(2)`는 입력 데이터에서 모든 2차 다항식을 포함한다는 의미입니다. 우리 경우에는 `DayOfYear`<sup>2</sup> 뿐이지만, 만약 X와 Y 두 변수가 있다면 X<sup>2</sup>, XY, Y<sup>2</sup>가 추가됩니다. 더 높은 차수의 다항식도 사용할 수 있습니다.
파이프라인은 원래의 `LinearRegression` 객체와 동일한 방식으로 사용할 수 있습니다. 즉, 파이프라인을 `fit`하고, 그런 다음 `predict`를 사용하여 예측 결과를 얻을 수 있습니다. 아래는 테스트 데이터와 근사 곡선을 보여주는 그래프입니다:
파이프라인은 기본 `LinearRegression` 객체와 동일하게 사용할 수 있어, `fit`으로 학습시키고 `predict`로 결과를 얻을 수 있습니다. 다음은 테스트 데이터와 근사 곡선을 보여주는 그래프입니다:
다항 회귀를 사용하면 약간 낮은 MSE와 약간 높은 결정 계수를 얻을 수 있지만, 큰 차이는 없습니다. 다른 특성을 고려해야 합니다!
다항 회귀를 사용하면 평균 제곱 오차(MSE)가 약간 낮아지고 결정 계수가 높아지긴 하지만 크게 개선되지는 않습니다. 다른 특성들을 더 고려할 필요가 있습니다!
> 최소 호박 가격이 할로윈 즈음에 관찰된다는 것을 알 수 있습니다. 이를 어떻게 설명할 수 있을까요?
> 최소 호박 가격이 할로윈 즈음에 관찰됩니다. 이것을 어떻게 설명할 수 있을까요?
🎃 축하합니다! 파이 호박의 가격을 예측하는 데 도움을 줄 수 있는 모델을 만들었습니다. 아마도 모든 호박 종류에 대해 동일한 절차를 반복할 수 있겠지만, 이는 번거로울 것입니다. 이제 모델에서 호박 종류를 고려하는 방법을 배워봅시다!
🎃 축하합니다! 파이 호박의 가격을 예측하는 모델을 성공적으로 만들었습니다. 동일한 절차로 모든 호박 종류에 대해 반복할 수 있지만, 번거로울 수 있습니다. 이제 모델에 호박 품종을 반영하는 방법을 배워봅시다!
## 범주형 특성
## 범주형 특성 (Categorical Features)
이상적인 상황에서는 동일한 모델을 사용하여 다양한 호박 종류의 가격을 예측할 수 있기를 원합니다. 그러나 `Variety` 열은 `Month`와 같은 열과는 다릅니다. 이 열은 숫자가 아닌 값을 포함하고 있습니다. 이러한 열을 **범주형**이라고 합니다.
이상적인 상황에서 우리는 같은 모델로 다양한 호박 품종의 가격을 예측할 수 있기를 원합니다. 하지만 `Variety` 열은 `Month`와 같은 열과 다르게 숫자가 아닌 값을 포함하고 있습니다. 이러한 열을 **범주형(categorical)** 이라고 부릅니다.
[](https://youtu.be/DYGliioIAE0 "초보자를 위한 ML - 선형 회귀를 사용한 범주형 특성 예측")
[](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
> 🎥 위 이미지를 클릭하면 범주형 특성을 사용하는 짧은 비디오 개요를 볼 수 있습니다.
> 🎥 위 이미지를 클릭하면 범주형 특성 사용에 대한 짧은 동영상 개요를 볼 수 있습니다.
여기에서 평균 가격이 종류에 따라 어떻게 달라지는지 확인할 수 있습니다:
아래 그래프는 품종에 따른 평균 가격 변화를 보여줍니다:
<imgalt="종류별 평균 가격" src="../../../../translated_images/ko/price-by-variety.744a2f9925d9bcb4.webp"width="50%"/>
<imgalt="Average price by variety" src="../../../../translated_images/ko/price-by-variety.744a2f9925d9bcb4.webp"width="50%"/>
종류를 고려하려면 먼저 이를 숫자 형태로 변환하거나 **인코딩**해야 합니다. 이를 수행하는 몇 가지 방법이 있습니다:
품종을 반영하려면 먼저 이를 숫자형으로 변환하거나, 즉 **인코딩** 해야 합니다. 방법은 여러 가지가 있습니다:
* 간단한 **숫자 인코딩**은 다양한 종류의 테이블을 생성한 다음, 종류 이름을 해당 테이블의 인덱스로 대체합니다. 이는 선형 회귀에 가장 좋은 방법은 아닙니다. 왜냐하면 선형 회귀는 인덱스의 실제 숫자 값을 가져와 결과에 추가하고 특정 계수를 곱하기 때문입니다. 우리의 경우, 인덱스 번호와 가격 간의 관계는 명확히 비선형적이며, 특정 방식으로 인덱스를 정렬하더라도 마찬가지입니다.
* **원-핫 인코딩**은 `Variety` 열을 각 종류에 대해 4개의 다른 열로 대체합니다. 각 열은 해당 행이 특정 종류에 속하는 경우 `1`을 포함하고, 그렇지 않은 경우 `0`을 포함합니다. 이는 선형 회귀에서 각 호박 종류에 대해 "시작 가격"(혹은 "추가 가격")을 담당하는 4개의 계수를 생성합니다.
* 간단한 **숫자 인코딩**은 서로 다른 품종 목록을 만들고, 품종 이름을 그 목록의 인덱스로 대체합니다. 이는 선형 회귀에는 최적의 방법이 아닙니다. 선형 회귀는 인덱스의 숫자 값을 그대로 사용해 결과에 계수와 곱하여 더하기 때문입니다. 예를 들어, 우리 예에서 인덱스 숫자와 가격 간 관계는 명백히 비선형적입니다.
* **원-핫 인코딩(one-hot encoding)**은 `Variety` 열을 품종별로 4개의 서로 다른 열로 분리합니다. 각 열은 해당 행이 그 품종이면 `1`, 그렇지 않으면 `0` 값을 가집니다. 이렇게 되면 선형 회귀에는 각 품종마다 하나씩 4개의 계수가 추가되어, 해당 품종의 "기본 가격"(또는 "추가 가격")을 결정합니다.
아래 코드는 종류를 원-핫 인코딩하는 방법을 보여줍니다:
다음 코드는 품종을 원-핫 인코딩하는 방법을 보여줍니다:
```python
pd.get_dummies(new_pumpkins['Variety'])
```
```
ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE
원-핫 인코딩된 종류를 입력으로 사용하여 선형 회귀를 학습시키려면,`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 +318,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 (약 10%), 결정 계수는 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)
이를 통해 거의 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 |
| 모델 | 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%로 개선했습니다. 회귀에 대한 마지막 섹션에서는 범주를 결정하기 위한 로지스틱 회귀에 대해 배울 것입니다.
🏆 훌륭합니다! 한 강의에서 네 개의 회귀 모델을 만들고 모델 품질을 97%까지 향상시켰습니다. 다음 회귀 강의의 마지막 부분에서 분류를 위한 로지스틱 회귀를 배우게 됩니다.
---
## 🚀도전
## 🚀도전 과제
이 노트북에서 여러 변수를 테스트하여 상관관계가 모델 정확도와 어떻게 연결되는지 확인하세요.
이 노트북에서 여러 변수들을 테스트해보고 상관관계가 모델 정확도에 어떻게 영향을 미치는지 확인해 보세요.
## [강의 후 퀴즈](https://ff-quizzes.netlify.app/en/ml/)
## 복습 및 자기 학습
## 복습 및 자율학습
이 수업에서는 선형 회귀에 대해 배웠습니다. 다른 중요한 회귀 유형도 있습니다. Stepwise, Ridge, Lasso 및 Elasticnet 기법에 대해 읽어보세요. 더 많은 것을 배우기 위해 공부할 수 있는 좋은 과정은 [Stanford Statistical Learning course](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)를 사용하여 번역되었습니다. 정확성을 위해 최선을 다하고 있으나, 자동 번역은 오류나 부정확성이 포함될 수 있음을 유의하시기 바랍니다. 원래 문서의 원문이 권위 있는 자료로 간주되어야 합니다. 중요한 정보의 경우, 전문적인 인간 번역을 권장합니다. 본 번역 사용으로 인해 발생하는 오해나 잘못된 해석에 대해 당사는 책임을 지지 않습니다.
Support-Vector Clustering(SVC)는 Support-Vector Machines(SVM) 기술의 하위 방법입니다(아래에서 더 알아보세요). 이 방법에서는 '커널'을 선택하여 라벨을 클러스터링하는 방식을 결정할 수 있습니다. 'C' 매개변수는 '정규화'를 의미하며 매개변수의 영향을 조정합니다. 커널은 [여러 가지](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC) 중 하나를 선택할 수 있으며, 여기서는 'linear'로 설정하여 Linear SVC를 활용합니다. 확률은 기본적으로 'false'로 설정되며, 여기서는 확률 추정을 수집하기 위해 'true'로 설정합니다. 데이터를 섞어 확률을 얻기 위해 랜덤 상태를 '0'으로 설정합니다.
서포트 벡터 클러스터링(SVC)은 서포트 벡터 머신 계열의 ML 기법 중 하나입니다(아래에서 자세히 배움). 이 방법에서는 라벨을 어떻게 클러스터링할지 결정하는 '커널'을 선택할 수 있습니다. 'C' 매개변수는 '정규화'를 나타내며, 이는 매개변수의 영향을 조절합니다. 커널은 [여러 종류](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC) 중 하나로 설정할 수 있으며, 여기서는 선형 SVC를 사용하기 위해 'linear'로 설정했습니다. 확률은 기본값이 'false'인데, 여기서는 확률 추정을 수집하기 위해 'true'로 설정했습니다. 무작위 상태는 확률을 얻기 위해 데이터를 섞기 위해 '0'으로 설정했습니다.
### 연습 - Linear SVC 적용하기
### 연습 - 선형 SVC 적용
분류기 배열을 생성하는 것으로 시작하세요. 테스트하면서 이 배열에 점진적으로 추가할 것입니다.
클래스 분류기 배열을 먼저 만드세요. 테스트하면서 점차 이 배열에 분류기를 추가할 것입니다.
@ -88,7 +88,7 @@ Support-Vector Clustering(SVC)는 Support-Vector Machines(SVM) 기술의 하위
print(classification_report(y_test,y_pred))
```
결과는 꽤 좋습니다:
결과가 꽤 좋습니다:
```output
Accuracy (train) for Linear SVC: 78.6%
@ -105,21 +105,21 @@ Support-Vector Clustering(SVC)는 Support-Vector Machines(SVM) 기술의 하위
weighted avg 0.79 0.79 0.79 1199
```
## K-Neighbors 분류기
## K-이웃 분류기
K-Neighbors는 ML 방법의 "이웃" 계열에 속하며, 지도 학습과 비지도 학습 모두에 사용할 수 있습니다. 이 방법에서는 미리 정의된 수의 점을 생성하고, 데이터가 이러한 점 주위에 모여 일반화된 라벨을 예측할 수 있도록 합니다.
K-이웃은 감독 학습 및 비감독 학습 모두에 사용할 수 있는 "이웃" 계열의 ML 기법입니다. 이 방법에서는 미리 정의된 수의 점이 생성되고 데이터가 이 점들 주변에 모여 일반화된 레이블을 예측할 수 있습니다.
### 연습 - K-Neighbors 분류기 적용하기
### 연습 - K-이웃 분류기 적용
이전 분류기는 좋았고 데이터와 잘 작동했지만, 더 나은 정확도를 얻을 수 있을지도 모릅니다. K-Neighbors 분류기를 시도해보세요.
앞의 분류기는 좋았고 데이터와 잘 작동했지만, 아마도 더 나은 정확도를 얻을 수 있을 것입니다. K-이웃 분류기를 시도해보세요.
1. 분류기 배열에 한 줄을 추가하세요(Linear SVC 항목 뒤에 쉼표를 추가하세요):
1. 분류기 배열에 한 줄을 추가하세요(선형 SVC 항목 뒤에 쉼표를 추가):
```python
'KNN classifier': KNeighborsClassifier(C),
```
결과는 조금 더 나쁩니다:
결과가 약간 나쁩니다:
```output
Accuracy (train) for KNN classifier: 73.8%
@ -136,23 +136,23 @@ K-Neighbors는 ML 방법의 "이웃" 계열에 속하며, 지도 학습과 비
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)에 대해 배우기
## Support Vector 분류기
## 서포트 벡터 분류기
Support-Vector 분류기는 [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine) 계열의 ML 방법에 속하며, 분류 및 회귀 작업에 사용됩니다. SVM은 "훈련 예제를 공간의 점으로 매핑"하여 두 카테고리 간의 거리를 최대화합니다. 이후 데이터는 이 공간에 매핑되어 카테고리를 예측할 수 있습니다.
서포트 벡터 분류기는 분류 및 회귀 작업에 사용되는 [서포트 벡터 머신](https://wikipedia.org/wiki/Support-vector_machine) 계열 ML 기법입니다. SVM은 "훈련 예제를 공간의 점에 매핑"하여 두 범주 사이 거리를 최대화합니다. 이후 데이터가 이 공간에 매핑되어 그 범주를 예측합니다.
### 연습 - Support Vector 분류기 적용하기
### 연습 - 서포트 벡터 분류기 적용
Support Vector 분류기를 사용하여 더 나은 정확도를 시도해보세요.
서포트 벡터 분류기로 좀 더 나은 정확도를 시도해봅시다.
1. K-Neighbors 항목 뒤에 쉼표를 추가한 후, 다음 줄을 추가하세요:
1. K-이웃 항목 뒤에 쉼표를 추가하고 다음 줄을 추가하세요:
```python
'SVC': SVC(),
```
결과는 꽤 좋습니다!
결과가 꽤 좋습니다!
```output
Accuracy (train) for SVC: 83.2%
@ -169,18 +169,18 @@ Support Vector 분류기를 사용하여 더 나은 정확도를 시도해보세
weighted avg 0.84 0.83 0.83 1199
```
✅ [Support-Vectors](https://scikit-learn.org/stable/modules/svm.html#svm)에 대해 알아보세요.
✅ [서포트 벡터](https://scikit-learn.org/stable/modules/svm.html#svm)에 대해 배우기
## Ensemble 분류기
## 앙상블 분류기
이전 테스트가 꽤 좋았지만, 경로를 끝까지 따라가 봅시다. 'Ensemble Classifiers'를 시도해보세요. 특히 Random Forest와 AdaBoost를 사용합니다:
앞의 테스트가 꽤 좋았지만, 최종 경로를 따라가 보겠습니다. '앙상블 분류기', 특히 랜덤 포레스트와 AdaBoost를 시도합시다:
```python
'RFST': RandomForestClassifier(n_estimators=100),
'ADA': AdaBoostClassifier(n_estimators=100)
```
결과는 매우 좋습니다, 특히 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 Classifiers](https://scikit-learn.org/stable/modules/ensemble.html)에 대해 알아보세요.
✅ [앙상블 분류기](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 매개변수는 트리의 수를 설정합니다.
- [랜덤 포레스트](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)
[매개변수 연습](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)를 사용하여 번역되었습니다. 정확성을 위해 노력하고 있으나, 자동 번역은 오류나 부정확성이 포함될 수 있음을 유의하시기 바랍니다. 원본 문서가 권위 있는 출처로 간주되어야 합니다. 중요한 정보의 경우에는 전문적인 인간 번역을 권장합니다. 본 번역의 사용으로 인해 발생하는 오해나 잘못된 해석에 대해 당사는 책임을 지지 않습니다.
"\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 TRANSLATORDISCLAIMER END -->\n"
"\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-OPTRANSLATOR DISCLAIMER END -->\n"
우리는 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을 사용한 데이터 과학 팁과 요령을 제공합니다.

# 초보자를 위한 머신러닝 - 커리큘럼
> 🌍 세계 문화를 통해 머신러닝을 탐구하며 세계 여행을 떠나봅시다 🌍
> 🌍 세계 문화를 통해 머신러닝을 탐험하며 전 세계를 여행하세요 🌍
마이크로소프트 클라우드 어드보케이트는 12주간 26개의 레슨으로 구성된 **머신러닝** 전체 커리큘럼을 제공하게 되어 기쁩니다. 이 커리큘럼에서는 주로 Scikit-learn 라이브러리를 사용하여 때때로 **고전 머신러닝**이라 불리는 것을 배우고, 딥러닝은 [AI for Beginners 커리큘럼](https://aka.ms/ai4beginners)에서 다룹니다. 이 수업들을 우리 ['Data Science for Beginners' 커리큘럼](https://aka.ms/ds4beginners)과 함께 활용하세요!
마이크로소프트 클라우드 옹호자들이 제공하는 12주, 26강의 커리큘럼은 **머신러닝**에 관한 모든 것을 다룹니다. 이 커리큘럼에서는 주로 Scikit-learn 라이브러리를 사용하는, 때로는 **고전 머신러닝**이라고 불리는 내용을 배우며, 딥러닝은 우리의 [초보자를 위한 AI 커리큘럼](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
**✍️ 진심으로 감사드립니다, 저자분들** 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
**🎨 삽화 제공에 감사드립니다** Tomomi Imura, Dasani Madipalli, Jen Looper
**🙏 특별한 감사 🙏 마이크로소프트 학생 대사 저자, 검토자, 컨텐츠 기여자 여러분께**, 특히 Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, Snigdha Agarwal
**🙏 특별 감사드립니다 🙏 마이크로소프트 학생대사로 활동하는 저자, 리뷰어 및 컨텐츠 기여자분들**, 특히 Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, Snigdha Agarwal
**🤩 MS 학생 대사 Eric Wanjau, Jasleen Sondhi, Vidushi Gupta께도 R 수업 관련 특별한 감사 드립니다!**
**🤩 R 강의에 도움 주신 Microsoft 학생대사 Eric Wanjau, Jasleen Sondhi, Vidushi Gupta에게도 감사드립니다!**
> [이 과정과 관련된 모든 추가 자료는 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.md)를 확인하세요.
**[학생 여러분](https://aka.ms/student-page)**, 이 커리큘럼을 사용하려면 저장소를 자신의 GitHub 계정으로 포크하고 혼자 또는 그룹과 함께 과제를 완료하세요:
**[학생 여러분](https://aka.ms/student-page)**, 이 커리큘럼을 활용하려면, 전체 레포를 자신의 GitHub 계정에 포크한 후 개인적으로 또는 그룹과 함께 연습 문제를 완료하세요:
- 강의 전 퀴즈부터 시작하세요.
- 강의를 읽고 각 지식 점검에서 멈추어 생각하며 활동을 완수하세요.
- 레슨을 이해하고 프로젝트를 직접 만들어 보세요. 하지만 `/solution` 폴더에 있는 솔루션 코드를 참고할 수 있습니다.
- 강의를 읽고 각 지식 점검에서 멈추어 반성하며 활동을 완료하세요.
- 솔루션 코드를 실행하기보다는 내용을 이해하여 프로젝트를 직접 만들어 보세요; 그러나 각 프로젝트 지향 강의의 `/solution` 폴더에 코드가 제공됩니다.
- 강의 후 퀴즈를 응시하세요.
- 챌린지를 완료하세요.
- 과제를 마치세요.
- 레슨 그룹을 완료한 후에는 [토론 게시판](https://github.com/microsoft/ML-For-Beginners/discussions)에서 '목소리 내어 학습'하며 적절한 PAT 루브릭을 작성해 주세요. 'PAT'는 학습 진행 평가 도구로, 여러분의 학습을 한층 심화시키기 위한 루브릭입니다. 다른 PAT에 리액션을 달아 함께 배울 수도 있습니다.
- 과제를 완료하세요.
- 한 그룹의 강의를 마친 후, [토론 게시판](https://github.com/microsoft/ML-For-Beginners/discussions)을 방문하여 적합한 PAT 루브릭을 작성하며 ‘학습을 소리내어’ 공유하세요. ‘PAT’는 학습 진척 평가 도구(Progress Assessment Tool)로, 학습을 심화하기 위해 작성하는 루브릭입니다. 다른 사람들의 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)을 포함했습니다.
---
## 비디오 수업 안내
## 영상 강의
몇몇 레슨은 짧은 형태의 비디오로 제공됩니다. 수업 내에서 인라인으로 찾을 수 있거나, 아래 이미지를 클릭해 [Microsoft Developer 유튜브 채널의 ML for Beginners 재생목록](https://aka.ms/ml-beginners-videos)에서 보실 수 있습니다.
일부 강의는 짧은 영상으로 제공됩니다. 강의 내에서 직접 보거나, 아래 이미지를 클릭하여 [Microsoft Developer 유튜브 채널 내 ML for Beginners 재생목록](https://aka.ms/ml-beginners-videos)에서 모두 확인할 수 있습니다.
[](https://aka.ms/ml-beginners-videos)
이 커리큘럼을 구성하면서 두 가지 교육 원칙을 선택했습니다: 실습 중심의 **프로젝트 기반** 교육과 **자주 진행되는 퀴즈** 포함입니다. 더불어, 일관성을 위한 공통된**주제**도 설정했습니다.
이 커리큘럼을 구축하면서 두 가지 교육 원칙을 선택했습니다: 실습 중심의 **프로젝트 기반** 학습과 **빈번한 퀴즈** 포함. 또한 내용을 하나로 묶는 공통의**주제**도 설정했습니다.
내용이 프로젝트와 연계되도록 하여 학생들이 더 몰입하고 개념 이해가 높아지게 했습니다. 학습 전의 낮은 강도의 퀴즈는 학생의 학습 목표를 설정하며, 수업 후 퀴즈는 개념의 장기 기억을 돕습니다. 이 커리큘럼은 유연하고 재미있게 설계되어 전체 또는 일부만 선택해 학습할 수 있습니다. 프로젝트는 작게 시작해 12주 과정이 끝날 때쯤 점점 복잡해집니다. 또한 머신러닝의 실제 적용에 관한 후기 내용도 포함되어 있어 추가 점수나 토론 주제로 활용할 수 있습니다.
강의 내용이 프로젝트와 맞춰져 있으면 학생들이 더 몰입하고 개념의 이해와 기억이 증진됩니다. 수업 전의 낮은 부담 퀴즈는 학습 의도를 세우며, 수업 후 퀴즈는 학습 유지에 도움을 줍니다. 이 커리큘럼은 유연하고 재미있게 구성되어 전체 또는 일부만 수강할 수 있습니다. 프로젝트는 처음에는 간단하게 시작하여 12주 과정 말에는 점점 복잡해집니다. 또한, 실제 머신러닝 적용 사례를 서문 뒤에 포함해 추가 학점이나 토론 자료로 활용할 수 있습니다.
- [강의 전 워밍업 퀴즈](https://ff-quizzes.netlify.app/en/ml/)
- 서면 강의
- 프로젝트 기반 수업은 단계별 프로젝트 구현 가이드 포함
- 선택적 보조 영상
- 영상 강의(일부 강의에만 해당)
- [사전 강의 준비 퀴즈](https://ff-quizzes.netlify.app/en/ml/)
- 서면 강의 자료
- 프로젝트 기반 강의의 경우, 프로젝트 구축 단계별 안내
- 지식 점검
- 도전 과제
- 보충 독서 자료
- 챌린지
- 보조 읽기 자료
- 과제
- [강의 후 퀴즈](https://ff-quizzes.netlify.app/en/ml/)
> **언어에 관한 참고**: 이 레슨들은 주로 Python으로 작성되었으나, R 버전도 많이 제공됩니다. R 레슨을 완료하려면 `/solution` 폴더에서 R 레슨을 찾아보세요. 이들은 .rmd 확장자를 가진 **R 마크다운** 파일로, `코드 청크` (R 또는 다른 언어)와 `YAML 헤더`(PDF와 같은 출력 포맷 지정)를 `Markdown 문서`에 포함합니다. 따라서 코드, 출력물 및 생각을 Markdown에 기록할 수 있어 데이터 과학을 위한 훌륭한 저작 구성 도구입니다. 또한 R 마크다운 문서는 PDF, HTML, Word 같은 출력 포맷으로 렌더링할 수 있습니다.
> **퀴즈에 대한 안내**: 모든 퀴즈는 [Quiz App 폴더](../../quiz-app)에 포함되어 있으며, 각 퀴즈는 세 개의 질문으로 구성된 총 52개의 퀴즈입니다. 퀴즈는 수업 내에서 연결되어 있지만, 퀴즈 앱은 로컬에서 실행할 수 있습니다. 로컬 호스팅 또는 Azure에 배포하려면 `quiz-app` 폴더의 지침을 따르세요.
| 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 and Amy |
| 03 | 공정성과 머신러닝 | [소개](1-Introduction/README.md) | 공정성과 관련된 주요 철학적 문제들을 학생들이 ML 모델을 구축하고 적용할 때 고려해야 하는 점은 무엇인지 학습합니다. | [수업](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | 머신러닝 기법 | [소개](1-Introduction/README.md) | ML 연구자가 ML 모델을 구축할 때 사용하는 기법을 학습합니다. | [수업](1-Introduction/4-techniques-of-ML/README.md) | Chris and 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 and 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 | 웹 앱 🔌 | [웹 앱](3-Web-App/README.md) | 학습한 모델을 사용하는 웹 앱을 구축합니다 | [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 and 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 and 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 and Cassie • Eric Wanjau |
| 13 | 맛있는 아시아 및 인도 요리 🍜 | [분류](4-Classification/README.md) | 모델을 사용하여 추천 웹 앱을 구축합니다 | [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-평균 클러스터링 방법을 탐험합니다 | [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 |
| 후기글 | 실제 머신러닝 시나리오 및 응용 | [현장 ML](9-Real-World/README.md) | 고전적인 ML의 흥미롭고 드러나는 실제 응용 사례 | [수업](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) | Ruth Yakubu |
> [본 과정의 추가 자료는 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 수업을 찾아보세요. 여기에는 **R Markdown** 파일을 나타내는 .rmd 확장자가 포함되어 있으며, 이는 `코드 청크`(R 또는 다른 언어)와 `YAML 헤더`(PDF와 같은 출력 형식 지정 방법을 안내)를 `Markdown 문서`에 포함한 것이라 간단히 정의할 수 있습니다. 따라서, 코드, 출력 결과, 그리고 생각을 Markdown으로 작성하면서 결합할 수 있어 데이터 과학 저작을 위한 훌륭한 프레임워크 역할을 합니다. 또한 R Markdown 문서는 PDF, HTML, Word와 같은 출력 형식으로 렌더링될 수 있습니다.
> **퀴즈에 대한 참고**: 모든 퀴즈는 [퀴즈 앱 폴더](../../quiz-app)에 포함되어 있으며, 총 52개의 퀴즈가 각 3개 문제로 구성되어 있습니다. 수업 내에서 연결되어 있지만, 퀴즈 앱은 로컬에서 실행할 수 있습니다; `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 and Amy |
| 03 | 공정성과 머신러닝 | [소개](1-Introduction/README.md) | ML 모델을 구축하고 적용할 때 학생들이 고려해야 할 공정성에 관한 중요한 철학적 이슈는 무엇인가? | [수업](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | 머신러닝 기법 | [소개](1-Introduction/README.md) | ML 연구자들이 ML 모델을 구축하기 위해 사용하는 기법들은 무엇인가? | [수업](1-Introduction/4-techniques-of-ML/README.md) | Chris and 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 and 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 | 웹 앱 🔌 | [웹 앱](3-Web-App/README.md) | 학습한 모델을 활용하는 웹 앱 구축 | [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 and 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 and 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 and Cassie • Eric Wanjau |
| 13 | 맛있는 아시아 및 인도 요리 🍜 | [분류](4-Classification/README.md) | 모델을 이용한 추천 웹 앱 구축 | [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-평균 군집화 기법 탐색 | [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 |
| 사후 수록 | 실제 ML 시나리오 및 응용 | [야생의 ML](9-Real-World/README.md) | 고전 ML의 흥미롭고 의미 있는 실제 응용 사례 | [수업](9-Real-World/1-Applications/README.md) | Team |
| 사후 수록 | RAI 대시보드를 사용한 ML 모델 디버깅 | [야생의 ML](9-Real-World/README.md) | 책임 있는 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/#/)를 사용하여 이 문서를 오프라인에서 실행할 수 있습니다. 이 저장소를 포크하고, 로컬 머신에 [Docsify 설치](https://docsify.js.org/#/quickstart) 후, 이 저장소의 루트 폴더에서 `docsify serve`를 실행하면 웹사이트가 로컬호스트의 포트 3000, 즉 `localhost:3000`에서 서비스됩니다.
[Docsify](https://docsify.js.org/#/)를 사용하여 이 문서를 오프라인에서 실행할 수 있습니다. 이 저장소를 포크하고, 로컬 머신에 [Docsify를 설치](https://docsify.js.org/#/quickstart) 한 후, 이 저장소 루트 폴더에서 `docsify serve` 명령을 입력하세요. 웹사이트는 로컬호스트의 포트 3000에서 제공됩니다: `localhost:3000`.
## PDF
커리큘럼 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
[](https://aka.ms/langchain4j-for-beginners)
[](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin)
[](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin)
[](https://aka.ms/langchain4j-for-beginners)
[](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin)
[](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin)
---
### Azure / Edge / MCP / 에이전트
[](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
### Azure / Edge / MCP / Agents
[](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### 생성 AI 시리즈
[](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
### 생성형 AI 시리즈
[](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
---
### 핵심 학습
[](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
@ -198,26 +208,31 @@
[](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
이 문서는 AI 번역 서비스 [Co-op Translator](https://github.com/Azure/co-op-translator)를 사용하여 번역되었습니다. 정확성을 위해 노력하고 있지만, 자동 번역에는 오류나 부정확한 부분이 있을 수 있음을 유의하시기 바랍니다. 원본 문서는 해당 언어로 작성된 문서가 권위 있는 출처로 간주되어야 합니다. 중요한 정보의 경우 전문적인 인간 번역을 권장합니다. 본 번역의 사용으로 발생하는 오해나 잘못된 해석에 대해서는 책임을 지지 않습니다.
이 문서는 AI 번역 서비스 [Co-op Translator](https://github.com/Azure/co-op-translator)를 사용하여 번역되었습니다. 정확성을 위해 노력하고 있으나, 자동 번역에는 오류나 부정확성이 포함될 수 있으니 참고해 주시기 바랍니다. 원문은 해당 언어의 원본 문서를 권위 있는 출처로 간주하여야 합니다. 중요한 정보의 경우 전문적인 인간 번역을 권장합니다. 본 번역 사용으로 인한 오해나 잘못된 해석에 대해 당사는 책임지지 않습니다.