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

update-translations
localizeflow[bot] 1 week ago
parent 9a01338c08
commit 4560cbbe7d

@ -30,8 +30,8 @@
"language_code": "hi"
},
"1-Introduction/3-fairness/assignment.md": {
"original_hash": "dbda60e7b1fe5f18974e7858eff0004e",
"translation_date": "2025-09-03T23:31:36+00:00",
"original_hash": "c81d9affadb89d017d610eadeb6c84f9",
"translation_date": "2026-02-28T10:13:40+00:00",
"source_file": "1-Introduction/3-fairness/assignment.md",
"language_code": "hi"
},
@ -90,8 +90,8 @@
"language_code": "hi"
},
"2-Regression/3-Linear/README.md": {
"original_hash": "40e64f004f3cb50aa1d8661672d3cd92",
"translation_date": "2025-09-05T10:12:48+00:00",
"original_hash": "9a8359f1945bd3beccccb2b46592580e",
"translation_date": "2026-02-28T10:14:45+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "hi"
},
@ -186,8 +186,8 @@
"language_code": "hi"
},
"4-Classification/3-Classifiers-2/README.md": {
"original_hash": "49047911108adc49d605cddfb455749c",
"translation_date": "2025-09-05T10:27:55+00:00",
"original_hash": "d94438d71164b0ff68002812aed1a8b4",
"translation_date": "2026-02-28T10:15:05+00:00",
"source_file": "4-Classification/3-Classifiers-2/README.md",
"language_code": "hi"
},
@ -197,12 +197,24 @@
"source_file": "4-Classification/3-Classifiers-2/assignment.md",
"language_code": "hi"
},
"4-Classification/3-Classifiers-2/notebook.ipynb": {
"original_hash": "624ca6cf73d3548ff1b3059e413fa4cd",
"translation_date": "2026-02-28T10:05:43+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "hi"
},
"4-Classification/3-Classifiers-2/solution/Julia/README.md": {
"original_hash": "a39c15d63f3b2795ee2284a82b986b93",
"translation_date": "2025-09-04T00:01:00+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/Julia/README.md",
"language_code": "hi"
},
"4-Classification/3-Classifiers-2/solution/notebook.ipynb": {
"original_hash": "70f41fe4fd4253adb44cd9d291406e4f",
"translation_date": "2026-02-28T10:05:49+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "hi"
},
"4-Classification/4-Applied/README.md": {
"original_hash": "61bdec27ed2da8b098cd9065405d9bb0",
"translation_date": "2025-09-05T10:27:19+00:00",
@ -540,8 +552,8 @@
"language_code": "hi"
},
"README.md": {
"original_hash": "2f594ee136e3127a47f56d80055227bc",
"translation_date": "2026-02-06T07:54:13+00:00",
"original_hash": "3a0286e1c4858e79ff54f080dadc1426",
"translation_date": "2026-02-28T10:13:33+00:00",
"source_file": "README.md",
"language_code": "hi"
},

@ -2,15 +2,17 @@
## निर्देश
इस पाठ में आपने जिम्मेदार 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) का उपयोग करके किया गया है। जबकि हम सटीकता के लिए प्रयासरत हैं, कृपया ध्यान दें कि स्वचालित अनुवाद में त्रुटियाँ या अशुद्धियाँ हो सकती हैं। मूल दस्तावेज़ अपनी मूल भाषा में प्रामाणिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सलाह दी जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम उत्तरदायी नहीं हैं।
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,124 +1,139 @@
# Scikit-learn का उपयोग करके एक रिग्रेशन मॉडल बनाएं: चार तरीकों से रिग्रेशन
# Scikit-learn का उपयोग करके रिग्रेशन मॉडल बनाएं: चार तरीकों से रिग्रेशन
![लिनियर बनाम पॉलिनोमियल रिग्रेशन इन्फोग्राफिक](../../../../2-Regression/3-Linear/images/linear-polynomial.png)
> इन्फोग्राफिक: [दसानी मडिपल्ली](https://twitter.com/dasani_decoded)
## [प्री-लेक्चर क्विज़](https://ff-quizzes.netlify.app/en/ml/)
## शुरुआत के लिए नोट
लाइनियर रिग्रेशन का उपयोग तब किया जाता है जब हम एक **संख्यात्मक मान** (उदाहरण के लिए, घर की कीमत, तापमान, या बिक्री) की भविष्यवाणी करना चाहते हैं।
यह इनपुट फीचर्स और आउटपुट के बीच संबंध को सबसे अच्छी तरह दर्शाने वाली एक सीधी रेखा खोजकर काम करता है।
इस पाठ में, हम अधिक उन्नत रिग्रेशन तकनीकों का पता लगाने से पहले अवधारणा को समझने पर ध्यान केंद्रित करते हैं।
![Linear vs polynomial regression infographic](../../../../translated_images/hi/linear-polynomial.5523c7cb6576ccab.webp)
> इनफोग्राफिक द्वारा [दसानी माडिपल्ली](https://twitter.com/dasani_decoded)
## [पूर्व-व्याख्यान प्रश्नोत्तरी](https://ff-quizzes.netlify.app/en/ml/)
> ### [यह पाठ R में भी उपलब्ध है!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### परिचय
अब तक आपने कद्दू की कीमतों के डेटा का उपयोग करके रिग्रेशन के बारे में जाना और इसे Matplotlib का उपयोग करके विज़ुअलाइज़ किया।
### परिचय
अब तक आपने रिग्रेशन क्या है, इसे कद्दू की कीमतों के डेटासेट से प्राप्त नमूना डेटा के साथ समझा है, जिसे हम इस पाठ में उपयोग करेंगे। आपने इसे Matplotlib का उपयोग करके भी विज़ुअलाइज़ किया है।
अब आप मशीन लर्निंग के लिए रिग्रेशन को गहराई से समझने के लिए तैयार हैं। जबकि विज़ुअलाइज़ेशन डेटा को समझने में मदद करता है, मशीन लर्निंग की असली ताकत _मॉडल को ट्रेन करने_ में है। मॉडल ऐतिहासिक डेटा पर प्रशिक्षित होते हैं ताकि डेटा की निर्भरताओं को स्वचालित रूप से कैप्चर किया जा सके, और वे नए डेटा के लिए परिणामों की भविष्यवाणी करने की अनुमति देते हैं, जिसे मॉडल ने पहले नहीं देखा है।
अब आप एमएल के लिए रिग्रेशन में और गहराई तक जाने के लिए तैयार हैं। जबकि विज़ुअलाइज़ेशन आपको डेटा को समझने में मदद करता है, मशीन लर्निंग की असली ताकत _मॉडल ट्रेनिंग_ से आती है। मॉडल ऐतिहासिक डेटा पर प्रशिक्षित किए जाते हैं ताकि वे डेटा निर्भरताओं को स्वचालित रूप से पकड़ सकें, और नए डेटा के लिए पूर्वानुमान लगाने की अनुमति देते हैं, जिसे मॉडल ने पहले नहीं देखा होता है।
इस पाठ में, आप रिग्रेशन के दो प्रकारों के बारे में जानेंगे: _बेसिक लिनियर रिग्रेशन_ और _पॉलिनोमियल रिग्रेशन_, साथ ही इन तकनीकों के पीछे की गणितीय अवधारणाओं को भी समझेंगे। ये मॉडल हमें विभिन्न इनपुट डेटा के आधार पर कद्दू की कीमतों की भविष्यवाणी करने में मदद करेंगे।
इस पाठ में, आप दो प्रकार के रिग्रेशन के बारे में और जानेंगे: _मूलभूत लाइनियर रिग्रेशन_ और _पॉलीनॉमियल रिग्रेशन_, साथ ही इन तकनीकों के पीछे की कुछ गणित। ये मॉडल हमें विभिन्न इनपुट डेटा के आधार पर कद्दू के दामों की भविष्यवाणी करने में सक्षम बनाएंगे।
[![शुरुआती के लिए मशीन लर्निंग - लिनियर रिग्रेशन को समझना](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "शुरुआती के लिए मशीन लर्निंग - लिनियर रिग्रेशन को समझना")
[![एमएल शुरुआती के लिए - लाइनियर रिग्रेशन को समझना](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "एमएल शुरुआती के लिए - लाइनियर रिग्रेशन को समझना")
> 🎥 ऊपर दी गई छवि पर क्लिक करें और लिनियर रिग्रेशन का एक छोटा वीडियो देखें
> 🎥 ऊपर दिए गए चित्र पर क्लिक करें लाइनियर रिग्रेशन का संक्षिप्त वीडियो अवलोकन देखने के लिए
> इस पाठ्यक्रम में, हम गणित का न्यूनतम ज्ञान मानते हैं और इसे अन्य क्षेत्रों से आने वाले छात्रों के लिए सुलभ बनाने का प्रयास करते हैं। इसलिए, नोट्स, 🧮 गणना, आरेख और अन्य शिक्षण उपकरणों पर ध्यान दें जो समझने में मदद करेंगे
> इस पूरे पाठ्यक्रम में, हम गणित का न्यूनतम ज्ञान मानते हैं, और इसे उन छात्रों के लिए सुलभ बनाने का प्रयास करते हैं जो अन्य क्षेत्रों से आते हैं, इसलिए समझ में मदद के लिए नोट्स, 🧮 कॉलआउट्स, आरेख, और अन्य शिक्षण उपकरण देखें
### पूर्वापेक्षा
अब तक आपको उस कद्दू डेटा की संरचना से परिचित होना चाहिए जिसे हम जांच रहे हैं। यह डेटा इस पाठ के _notebook.ipynb_ फ़ाइल में पहले से लोड और साफ किया गया है। इस फ़ाइल में, कद्दू की कीमत प्रति बुशल एक नए डेटा फ्रेम में प्रदर्शित की गई है। सुनिश्चित करें कि आप इन नोटबुक्स को Visual Studio Code के कर्नल्स में चला सकते हैं।
अब तक आपको उस कद्दू डेटा की संरचना का परिचय मिल चुका होगा जिसका हम निरीक्षण कर रहे हैं। आप इसे इस पाठ के _notebook.ipynb_ फ़ाइल में पहले से लोड और साफ-सुथरा पा सकते हैं। फ़ाइल में, कद्दू की कीमत प्रति बशेल नए डेटा फ्रेम में दिखाई गई है। सुनिश्चित करें कि आप इन नोटबुक्स को Visual Studio Code में कर्नल में चला सकते हैं।
### तैयारी
याद दिलाने के लिए, आप इस डेटा को लोड कर रहे हैं ताकि आप इससे सवाल पूछ सकें।
एक अनुस्मारक के रूप में, आप यह डेटा इस उद्देश्य से लोड कर रहे हैं कि आप इसके बारे में प्रश्न पूछ सकें।
- कद्दू खरीदने का सबसे अच्छा समय कब होता है?
- मुझे मिनिएचर कद्दू के एक केस की क्या कीमत मिल सकती है?
- क्या मुझे उन्हें आधा-बशेल बास्केट में खरीदना चाहिए या 1 1/9 बशेल बॉक्स में?
आइए इस डेटा में और गहराई से उतारते रहें।
पिछले पाठ में, आपने एक Pandas डेटा फ्रेम बनाया और इसे मूल डेटासेट के एक हिस्से से भरा, प्राइजिंग को बशेल के अनुसार मानकीकृत करते हुए। ऐसा करते हुए, आप केवल लगभग 400 डेटा पॉइंट्स जुटा सके और वे केवल पतझड़ के महीनों के लिए थे।
- कद्दू खरीदने का सबसे अच्छा समय कब है?
- मिनिएचर कद्दुओं के एक केस की कीमत क्या हो सकती है?
- क्या मुझे उन्हें आधे-बुशल की टोकरी में खरीदना चाहिए या 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` होता है।
>![ढलान की गणना करें](../../../../translated_images/hi/slope.f3c9d5910ddbfcf9.webp)
>
>![ढलान की गणना करें](../../../../2-Regression/3-Linear/images/slope.png)
> सबसे पहले, ढलान `b` की गणना करें। इनफोग्राफिक द्वारा [जेन लूपर](https://twitter.com/jenlooper)
>
> पहले, ढलान `b` की गणना करें। इन्फोग्राफिक: [जेन लूपर](https://twitter.com/jenlooper)
> दूसरे शब्दों में, और हमारे कद्दू डेटा के मूल प्रश्न को संदर्भित करते हुए: "माह के द्वारा प्रति बशेल कद्दू की कीमत की भविष्यवाणी करें", `X` मूल्य को संदर्भित करता है और `Y` बिक्री के माह को।
>
> दूसरे शब्दों में, और हमारे कद्दू डेटा के मूल प्रश्न का संदर्भ देते हुए: "महीने के अनुसार प्रति बुशल कद्दू की कीमत की भविष्यवाणी करें", `X` कीमत को संदर्भित करेगा और `Y` बिक्री के महीने को।
>![समीकरण पूरा करें](../../../../translated_images/hi/calculation.a209813050a1ddb1.webp)
>
>![समीकरण पूरा करें](../../../../2-Regression/3-Linear/images/calculation.png)
> 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
---|-------|-----------|---------|------|---------|-----------|------------|-------
70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
---|-------|-----------|---------|------|---------|-----------|------------|-------
70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
> डेटा को साफ करने का कोड [`notebook.ipynb`](../../../../2-Regression/3-Linear/notebook.ipynb) में उपलब्ध है। हमने पिछले पाठ में समान सफाई चरणों का पालन किया है और `DayOfYear` कॉलम की गणना निम्नलिखित अभिव्यक्ति का उपयोग करके की है:
> डेटा साफ़ करने के लिए कोड [`notebook.ipynb`](notebook.ipynb) में उपलब्ध है। हमने पिछले पाठ की तरह ही सफाई के चरण किए हैं, और `DayOfYear` कॉलम को निम्न अभिव्यक्ति का उपयोग करके निकाला है:
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
```
अब जब आपको लिनियर रिग्रेशन के पीछे के गणित की समझ हो गई है, तो आइए एक रिग्रेशन मॉडल बनाएं और देखें कि क्या हम यह भविष्यवाणी कर सकते हैं कि कद्दू के किस पैकेज की कीमत सबसे अच्छी होगी। कोई व्यक्ति जो छुट्टी के लिए कद्दू का पैच खरीद रहा है, वह इस जानकारी का उपयोग कद्दू के पैकेजों की खरीद को अनुकूलित करने के लिए कर सकता है।
अब जब आपको लाइनियर रिग्रेशन के पीछे गणित की समझ है, तो चलिए एक रिग्रेशन मॉडल बनाते हैं ताकि हम देख सकें कि कौन-सा कद्दू पैकेज सबसे अच्छे दाम देगा। कोई जो छुट्टियों के लिए कद्दू की खेती कर रहा है, वे इस जानकारी का उपयोग पैच के लिए अपने कद्दू पैकेजों की खरीद को अनुकूलित करने के लिए करना चाहेंगे।
## सहसंबंध की तलाश
[![शुरुआती के लिए मशीन लर्निंग - सहसंबंध की तलाश: लिनियर रिग्रेशन की कुंजी](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "शुरुआती के लिए मशीन लर्निंग - सहसंबंध की तलाश: लिनियर रिग्रेशन की कुंजी")
[![एमएल शुरुआती के लिए - सहसंबंध की तलाश: लाइनियर रिग्रेशन की कुंजी](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "एमएल शुरुआती के लिए - सहसंबंध की तलाश: लाइनियर रिग्रेशन की कुंजी")
> 🎥 ऊपर दी गई छवि पर क्लिक करें और सहसंबंध का एक छोटा वीडियो देखें
> 🎥 ऊपर दिए गए चित्र पर क्लिक करें सहसंबंध का संक्षिप्त वीडियो अवलोकन देखने के लिए
पिछले पाठ से आपने शायद देखा होगा कि विभिन्न महीनों के लिए औसत कीमत इस प्रकार दिखती है:
पिछले पाठ से आपने शायद देखा होगा कि विभिन्न महीनों के लिए औसत कीमत इस प्रकार है:
<img alt="महीने के अनुसार औसत कीमत" src="../../../../translated_images/hi/barchart.a833ea9194346d76.webp" width="50%"/>
<img alt="Average price by month" src="../../../../translated_images/hi/barchart.a833ea9194346d76.webp" width="50%"/>
यह सुझाव देता है कि कुछ सहसंबंध हो सकता है, और हम `Month` और `Price` के बीच, या `DayOfYear` और `Price` के बीच संबंध की भविष्यवाणी करने के लिए एक लिनियर रिग्रेशन मॉडल को प्रशिक्षित करने का प्रयास कर सकते हैं। यहाँ एक स्कैटरप्लॉट है जो बाद के संबंध को दिखाता है:
यह सुझाव देता है कि कुछ सहसंबंध होना चाहिए, और हम `Month` और `Price`, या `DayOfYear` और `Price` के बीच संबंध का पूर्वानुमान लगाने के लिए लाइनियर रिग्रेशन मॉडल प्रशिक्षण देने का प्रयास कर सकते हैं। यहाँ वह स्कैटरप्लॉट है जो बाद वाले संबंध को दिखाता है:
<img alt="साल के दिन बनाम कीमत का स्कैटरप्लॉट" src="../../../../translated_images/hi/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/hi/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
आइए `corr` फ़ंक्शन का उपयोग करके देखें कि क्या कोई सहसंबंध है:
आइए देखें कि `corr` फ़ंक्शन का उपयोग करके सहसंबंध क्या है:
```python
print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
```
ऐसा लगता है कि सहसंबंध बहुत छोटा है, `Month` के लिए -0.15 और `DayOfMonth` के लिए -0.17, लेकिन एक और महत्वपूर्ण संबंध हो सकता है। ऐसा लगता है कि विभिन्न कद्दू की किस्मों के लिए कीमतों के अलग-अलग समूह हैं। इस परिकल्पना की पुष्टि करने के लिए, आइए प्रत्येक कद्दू श्रेणी को एक अलग रंग का उपयोग करके प्लॉट करें। `scatter` प्लॉटिंग फ़ंक्शन में `ax` पैरामीटर पास करके हम सभी बिंदुओं को एक ही ग्राफ़ पर प्लॉट कर सकते हैं:
ऐसा लगता है कि सहसंबंध काफी छोटा है, `Month` के लिए -0.15 और `DayOfMonth` के लिए -0.17, लेकिन एक और महत्वपूर्ण संबंध हो सकता है। ऐसा लगता है कि विभिन्न कद्दू किस्मों के लिए अलग-अलग क्ल्टर वाले दाम हैं। इस परिकल्पना की पुष्टि करने के लिए, चलिए हम प्रत्येक कद्दू श्रेणी को अलग रंग में प्लॉट करें। `scatter` प्लॉटिंग फ़ंक्शन में `ax` पैरामीटर पास करके हम सभी पॉइंट्स को एक ही ग्राफ़ पर प्लॉट कर सकते हैं।
```python
ax=None
@ -127,75 +142,75 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
df = new_pumpkins[new_pumpkins['Variety']==var]
ax = df.plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var)
```
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/hi/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
<img alt="साल के दिन बनाम कीमत का स्कैटरप्लॉट" src="../../../../translated_images/hi/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
हमारी जांच से पता चलता है कि किस्म का समग्र कीमत पर तारीख की तुलना में अधिक प्रभाव है। हम इसे बार ग्राफ़ के साथ देख सकते हैं:
हमारे निरीक्षण से पता चलता है कि किस्म का दाम पर माह की तुलना में अधिक प्रभाव पड़ता है। हम इसे एक बार ग्राफ से देख सकते हैं:
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
```
<img alt="Bar graph of price vs variety" src="../../../../translated_images/hi/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="किस्म बनाम कीमत का बार ग्राफ़" src="../../../../translated_images/hi/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
आइए फिलहाल केवल एक कद्दू की किस्म, 'पाई टाइप', पर ध्यान केंद्रित करें और देखें कि तारीख का कीमत पर क्या प्रभाव पड़ता है:
आइए अभी केवल एक कद्दू किस्म, 'पाई टाइप' पर ध्यान केंद्रित करें, और देखें कि तारीख का कीमत पर क्या प्रभाव पड़ता है:
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price')
```
<img alt="साल के दिन बनाम कीमत का स्कैटरप्लॉट" src="../../../../translated_images/hi/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
<img alt="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()
```
एक अन्य तरीका यह होगा कि ख़ाली मानों को संबंधित कॉलम के औसत मान से भर दें।
एक और दृष्टिकोण यह होगा कि उन खाली मानों को संबंधित कॉलम के औसत मानों से भर दिया जाए।
## सरल लाइनियर रिग्रेशन
## सरल लिनियर रिग्रेशन
[![एमएल शुरुआती के लिए - Scikit-learn का उपयोग करके लाइनियर और पॉलीनॉमियल रिग्रेशन](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "एमएल शुरुआती के लिए - Scikit-learn का उपयोग करके लाइनियर और पॉलीनॉमियल रिग्रेशन")
[![शुरुआती के लिए मशीन लर्निंग - Scikit-learn का उपयोग करके लिनियर और पॉलिनोमियल रिग्रेशन](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "शुरुआती के लिए मशीन लर्निंग - Scikit-learn का उपयोग करके लिनियर और पॉलिनोमियल रिग्रेशन")
> 🎥 ऊपर दिए गए चित्र पर क्लिक करें लाइनियर और पॉलीनॉमियल रिग्रेशन का संक्षिप्त वीडियो अवलोकन देखने के लिए।
> 🎥 ऊपर दी गई छवि पर क्लिक करें और लिनियर और पॉलिनोमियल रिग्रेशन का एक छोटा वीडियो देखें।
हमारे लिनियर रिग्रेशन मॉडल को प्रशिक्षित करने के लिए, हम **Scikit-learn** लाइब्रेरी का उपयोग करेंगे।
हमारा लाइनियर रिग्रेशन मॉडल ट्रेनिंग के लिए, हम **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)
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
```
हमारी त्रुटि लगभग 2 बिंदुओं के आसपास है, जो ~17% है। यह बहुत अच्छा नहीं है। मॉडल की गुणवत्ता का एक और संकेतक **निर्धारण गुणांक** है, जिसे इस तरह प्राप्त किया जा सकता है:
हमारी त्रुटि लगभग 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 के आसपास है, जो काफी कम है।
हम परीक्षण डेटा को रिग्रेशन लाइन के साथ भी प्लॉट कर सकते हैं ताकि यह बेहतर तरीके से समझ सकें कि हमारे मामले में रिग्रेशन कैसे काम करता है:
हम परीक्षण डेटा को रिग्रेशन लाइन के साथ भी प्लॉट कर सकते हैं ताकि बेहतर तरीके से देख सकें कि हमारे मामले में रिग्रेशन कैसे काम करता है:
```python
plt.scatter(X_test,y_test)
plt.plot(X_test,pred)
```
```
<img alt="Linear regression" src="../../../../translated_images/hi/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
## बहुपद रिग्रेशन
## बहुपद रिग्रेशन (Polynomial Regression)
रैखिक रिग्रेशन का एक अन्य प्रकार बहुपद रिग्रेशन है। कभी-कभी चर के बीच रैखिक संबंध होता है - जैसे कि कद्दू का आकार बढ़ने पर उसकी कीमत बढ़ती है - लेकिन कभी-कभी इन संबंधों को एक समतल या सीधी रेखा के रूप में प्लॉट नहीं किया जा सकता।
रैखिक रिग्रेशन का एक अन्य प्रकार है बहुपद रिग्रेशन। जबकि कभी-कभी चर के बीच रैखिक संबंध होता है - जैसे लंबे आकार वाला कद्दू का दाम अधिक होता है - कभी-कभी इन संबंधों को तल या सीधी रेखा के रूप में प्रदर्शित नहीं किया जा सकता।
✅ यहां [कुछ और उदाहरण](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
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
```
```
`PolynomialFeatures(2)` का उपयोग करने का मतलब है कि हम इनपुट डेटा से सभी दूसरे-डिग्री बहुपद शामिल करेंगे। हमारे मामले में इसका मतलब केवल `DayOfYear`<sup>2</sup> होगा, लेकिन यदि दो इनपुट चर X और Y दिए गए हैं, तो यह X<sup>2</sup>, XY और Y<sup>2</sup> जोड़ देगा। यदि हम चाहें तो उच्च डिग्री बहुपद का उपयोग भी कर सकते हैं।
`PolynomialFeatures(2)` का उपयोग करने का मतलब है कि हम इनपुट डेटा से सभी द्वितीय-डिग्री बहुपद शामिल करेंगे। हमारे मामले में इसका मतलब केवल `DayOfYear`<sup>2</sup> होगा, लेकिन यदि दो इनपुट वेरिएबल X और Y हों, तो यह X<sup>2</sup>, XY और Y<sup>2</sup> जोड़ता है। हम उच्च-डिग्री बहुपद भी उपयोग कर सकते हैं यदि चाहें।
पाइपलाइन का उपयोग उसी तरह किया जा सकता है जैसे मूल `LinearRegression` ऑब्जेक्ट का उपयोग किया जाता है, यानी हम पाइपलाइन को `fit` कर सकते हैं और फिर `predict` का उपयोग करके भविष्यवाणी परिणाम प्राप्त कर सकते हैं। यहां परीक्षण डेटा और अनुमानित वक्र दिखाने वाला ग्राफ है:
पाइपलाइनों का उपयोग उसी तरह किया जा सकता है जैसे `LinearRegression` ऑब्जेक्ट का, यानी हम पाइपलाइन को `fit` कर सकते हैं, और फिर भविष्यवाणी परिणामों के लिए `predict` का उपयोग कर सकते हैं। यहां ग्राफ है जो परीक्षण डेटा और अनुमानित वक्र को दिखाता है:
<img alt="Polynomial regression" src="../../../../translated_images/hi/poly-results.ee587348f0f1f60b.webp" width="50%" />
<img alt="Polynomial regression" src="../../../../translated_images/hi/poly-results.ee587348f0f1f60b.webp" width="50%" />
बहुपद रिग्रेशन का उपयोग करके, हम थोड़ा कम MSE और थोड़ा अधिक निर्धारण प्राप्त कर सकते हैं, लेकिन यह बहुत महत्वपूर्ण नहीं है। हमें अन्य विशेषताओं को ध्यान में रखना होगा!
बहुपद रिग्रेशन का उपयोग करते हुए, हम थोड़ा कम MSE और उच्च निर्धारण प्राप्त कर सकते हैं, लेकिन विशेष रूप से नहीं। हमें अन्य विशेषताओं को भी ध्यान में रखना होगा!
> आप देख सकते हैं कि न्यूनतम कद्दू की कीमतें कहीं हैलोवीन के आसपास देखी जाती हैं। आप इसे कैसे समझाएंगे?
> आप देख सकते हैं कि न्यूनतम कद्दू के दाम लगभग हैलोवीन के आसपास होते हैं। आप इसे कैसे समझाएंगे?
🎃 बधाई हो, आपने एक ऐसा मॉडल बनाया है जो पाई कद्दू की कीमत का अनुमान लगाने में मदद कर सकता है। आप शायद सभी प्रकार के कद्दू के लिए वही प्रक्रिया दोहरा सकते हैं, लेकिन यह थोड़ा थकाऊ होगा। अब चलिए सीखते हैं कि अपने मॉडल में कद्दू की विविधता को कैसे ध्यान में रखा जाए!
🎃 बधाई हो, आपने एक ऐसा मॉडल बनाया है जो पाई कद्दू की कीमत का पूर्वानुमान लगाने में मदद कर सकता है। आप संभवतः सभी कद्दू प्रकारों के लिए समान प्रक्रिया दोहरा सकते हैं, लेकिन वह थकाऊ होगा। अब सीखते हैं कि हमारे मॉडल में कद्दू की किस्म को कैसे ध्यान में रखा जाए!
## श्रेणीबद्ध विशेषताएँ
## श्रेणीबद्ध विशेषताएँ (Categorical Features)
आदर्श दुनिया में, हम एक ही मॉडल का उपयोग करके विभिन्न कद्दू की किस्मों के लिए कीमतों का अनुमान लगाना चाहते हैं। हालांकि, `Variety` कॉलम `Month` जैसे कॉलम से थोड़ा अलग है, क्योंकि इसमें गैर-संख्या मान होते हैं। ऐसे कॉलम को **श्रेणीबद्ध** कहा जाता है।
आदर्श दुनिया में, हम एक ही मॉडल का उपयोग करके विभिन्न कद्दू किस्मों के लिए कीमतों की भविष्यवाणी कर सके। हालांकि, `Variety` कॉलम कुछ हद तक `Month` जैसे कॉलमों से अलग है, क्योंकि इसमें गैर-आंकिक (non-numeric) मान होते हैं। ऐसे कॉलम को **श्रेणीबद्ध** कहा जाता है।
[![ML for beginners - Categorical Feature Predictions with Linear Regression](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
[![ML for beginners - Categorical Feature Predictions with Linear Regression](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
> 🎥 ऊपर दी गई छवि पर क्लिक करें श्रेणीबद्ध विशेषताओं का उपयोग करने का एक छोटा वीडियो देखने के लिए।
> 🎥 श्रेणीबद्ध विशेषताओं के उपयोग पर एक संक्षिप्त वीडियो अवलोकन के लिए ऊपर की छवि पर क्लिक करें।
यहां आप देख सकते हैं कि किस्म के आधार पर औसत कीमत कैसे बदलती है:
यहाँ आप देख सकते हैं कि औसत कीमत किस्म पर कैसे निर्भर करती है:
<img alt="Average price by variety" src="../../../../translated_images/hi/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="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
----|-----------|-----------|--------------------------|----------
70 | 0 | 0 | 0 | 1
71 | 0 | 0 | 0 | 1
... | ... | ... | ... | ...
1738 | 0 | 1 | 0 | 0
1739 | 0 | 1 | 0 | 0
1740 | 0 | 1 | 0 | 0
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE
----|-----------|-----------|--------------------------|----------
70 | 0 | 0 | 0 | 1
71 | 0 | 0 | 0 | 1
... | ... | ... | ... | ...
1738 | 0 | 1 | 0 | 0
1739 | 0 | 1 | 0 | 0
1740 | 0 | 1 | 0 | 0
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
वन-हॉट एन्कोडेड किस्म क उपयोग करके रैखिक रिग्रेशन को प्रशिक्षित करने के लिए, हमें केवल `X` और `y` डेटा को सही तरीके से प्रारंभ करना होगा:
वन-हॉट एन्कोडेड किस्म को इनपुट के रूप में उपयोग करके रैखिक रिग्रेशन को प्रशिक्षित करने के लिए, हमें केवल `X` और `y` डेटा को सही ढंग से इनिशियलाइज़ करना होगा:
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
```
बाकी कोड वही है जो हमने ऊपर रैखिक रिग्रेशन को प्रशिक्षित करने के लिए उपयोग किया था। यदि आप इसे आज़माते हैं, तो आप देखेंगे कि औसत वर्ग त्रुटि लगभग समान है, लेकिन हमें बहुत अधिक निर्धारण गुणांक (~77%) मिलता है। अधिक सटीक भविष्यवाणियां प्रप्त करने के लिए, हम अधिक श्रेणीबद्ध विशेषताओं को ध्यान में रख सकते हैं, साथ ही संख्यात्मक विशेषताओं जैसे `Month` या `DayOfYear`। एक बड़ी विशेषता सरणी प्राप्त करने के लिए, हम `join` का उपयोग कर सकते हैं:
बाकी कोड वही है जो हमने ऊपर रैखिक रिग्रेशन प्रशिक्षित करने के लिए इस्तेमाल किया था। यदि आप इसे आज़माते हैं, तो आप देखेंगे कि मीन स्क्वायर एरर लगभग समान है, लेकिन हमें निर्धारण गुणांक (~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)
# setup and train the pipeline
# पाइपलाइन सेटअप करें और प्रशिक्षित करें
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
# predict results for test data
# परीक्षण डेटा के लिए परिणाम पूर्वानुमान करें
pred = pipeline.predict(X_test)
# calculate MSE and determination
# MSE और निर्धारण की गणना करें
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
score = pipeline.score(X_train,y_train)
print('Model determination: ', score)
```
```
यह हमें लगभग 97% का सर्वोत्तम निर्धारण गुणांक और MSE=2.23 (~8% भविष्यवाणी त्रुटि) देना चाहिए।
यह हमें लगभग 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) का उपयोग करके किया गया है। यद्यपि हम सटीकता के लिए प्रयासरत हैं, कृपया ध्यान दें कि स्वचालित अनुवाद में त्रुटियां या गलतियां हो सकती हैं। मूल दस्तावेज़ अपनी मूल भाषा में अधिकृत स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए पेशेवर मानव अनुवाद की सिफारिश की जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम ज़िम्मेदार नहीं हैं।
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,44 +1,44 @@
# व्यंजन वर्गीकरणकर्ता 2
# क्यूज़ीन क्लासिफायर्स 2
इस दूसरे वर्गीकरण पाठ में, आप संख्यात्मक डेटा को वर्गीकृत करने के और तरीके जानेंगे। आप यह भी समझेंगे कि एक वर्गीकरणकर्ता को दूसरे पर चुनने के क्या परिणाम हो सकते हैं।
इस दूसरे वर्गीकरण पाठ में, आप संख्यात्मक डेटा को वर्गीकृत करने के और तरीकों का अन्वेषण करेंगे। आप यह भी जानेंगे कि एक क्लासिफायर चुनने के क्या परिणाम हो सकते हैं।
## [ाठ-पूर्व प्रश्नोत्तरी](https://ff-quizzes.netlify.app/en/ml/)
## [ूर्व-व्याख्यान क्विज़](https://ff-quizzes.netlify.app/en/ml/)
### पूर्वापेक्षा
### आवश्यक शर्त
हम मानते हैं कि आपने पिछले पाठ पूरे कर लिए हैं और आपके पास `data` फ़ोल्डर में _cleaned_cuisines.csv_ नामक एक साफ़ किया हुआ डेटासेट है, जो इस 4-पाठ फ़ोल्डर क रूट में है।
हम मानते हैं कि आपने पूर्व के पाठ पूरे कर लिए हैं और आपके `data` फ़ोल्डर में एक साफ़ किया गया डेटासेट है जिसका नाम _cleaned_cuisines.csv_ है, जो इस 4-पाठ फ़ोल्डर क रूट में है।
### तैयारी
हमने आपके _notebook.ipynb_ फ़ाइल में साफ़ किया हुआ डेटासेट लोड कर दिया है और इसे X और y डेटा फ्रेम में विभाजित कर दिया है, जो मॉडल निर्माण प्रक्रिया के लिए तैयार हैं
हमने आपके _notebook.ipynb_ फ़ाइल को साफ़ किए गए डेटासेट के साथ लोड कर लिया है और इसे X और y डेटा फ्रेम्स में विभाजित कर दिया है, ताकि मॉडल निर्माण प्रक्रिया के लिए तैयार ह
## एक वर्गीकरण मानचित्र
िछले पाठ में, आपने डेटा को वर्गीकृत करने के विभिन्न विकल्पों के बारे में सीखा था, जिसमें Microsoft का चीट शीट शामिल था। Scikit-learn एक समान, लेकिन अधिक विस्तृत चीट शीट प्रदान करता है, जो आपके वर्गीकरणकर्ताओं (जिसे 'एस्टिमेटर्स' भी कहा जाता है) को और अधिक संकीर्ण करने में मदद कर सकता है:
हले, आपने माइक्रोसॉफ्ट की चीट शीट का उपयोग करके डेटा वर्गीकृत करने के विभिन्न विकल्पों के बारे में सीखा। Scikit-learn एक समान, लेकिन अधिक सूक्ष्म चीट शीट प्रदान करता है जो आपके अनुमानों (क्लासिफायर्स के लिए एक और शब्द) को और सीमित करने में मदद कर सकता है:
![Scikit-learn से ML मानचित्र](../../../../4-Classification/3-Classifiers-2/images/map.png)
> टिप: [इस मानचित्र को ऑनलाइन देखें](https://scikit-learn.org/stable/tutorial/machine_learning_map/) और मार्ग पर क्लिक करके प्रलेखन पढ़ें।
![ML Map from Scikit-learn](../../../../translated_images/hi/map.e963a6a51349425a.webp)
> टिप: [इस मानचित्र को ऑनलाइन देखें](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. अपने प्रशिक्षण और परीक्षण डेटा को विभाजित करें:
```python
X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
X_train, X_test, y_train, y_test = train_test_split(cuisines_features_df, cuisines_label_df, test_size=0.3)
```
## Linear SVC वर्गीकरणकर्ता
## Linear SVC क्लासिफायर
सपोर्ट-वेक्टर क्लस्टरिंग (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 लागू करें
क्लासिफायर का एक ऐरे बनाकर शुरू करें। जैसे-जैसे हम परीक्षण करेंगे, आप इस ऐरे में प्रगतिशील रूप से जोड़ेंगे।
शुरू करें क्लासिफायर की एक सूची बनाकर। हम परीक्षण करते समय इस सूची में धीरे-धीरे और जोड़ेंगे।
1. Linear SVC से शुरू करें:
```python
C = 10
# Create different classifiers.
# विभिन्न वर्गीकरणकर्ता बनाएं।
classifiers = {
'Linear SVC': SVC(kernel='linear', C=C, probability=True,random_state=0)
}
```
2. Linear SVC का उपयोग करके अपने मॉडल को प्रशिक्षित करें और एक रिपोर्ट प्रिंट करें:
2. Linear SVC का उपयोग करके मॉडल को प्रशिक्षित करें और एक रिपोर्ट प्रिंट करें:
```python
n_classifiers = len(classifiers)
@ -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://ff-quizzes.netlify.app/en/ml/)
## [श्चात-व्याख्यान क्विज़](https://ff-quizzes.netlify.app/en/ml/)
## समीक्षा और स्व-अध्ययन
इन पाठों में बहुत सार तकनीकी शब्दावली है, इसलिए [इस सूची](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) को पढ़ने के लिए कुछ समय निकालें, जिसमें उपयोगी शब्दावली दी गई है!
इन पाठों में बहुत सार तकनीकी शब्दावली है, इसलिए कुछ समय निकालकर [इस सूची](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) का अध्ययन करें जो उपयोगी शब्दावली प्रस्तुत करती है!
## असाइनमेंट
## असाइनमेंट
[पैरामीटर प्ले](assignment.md)
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**अस्वीकरण**:
यह दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) का उपयोग करके अनुवादित किया गया है। जबकि हम सटीकता के लिए प्रयासरत हैं, कृपया ध्यान दें कि स्वचालित अनुवाद में त्रुटियां या अशुद्धियां हो सकती हैं। मूल भाषा में उपलब्ध मूल दस्तावेज़ को आधिकारिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सिफारिश की जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम उत्तरदायी नहीं हैं।
इस दस्तावेज़ का अनुवाद एआई अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) का उपयोग करके किया गया है। हम सटीकता के लिए प्रयास करते हैं, कृपया ध्यान दें कि स्वचालित अनुवादों में त्रुटियां या अशुद्धियां हो सकती हैं। मूल दस्तावेज़ को इसकी मूल भाषा में अधिकारिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानवीय अनुवाद की सलाह दी जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या व्याख्या के लिए हम जिम्मेदार नहीं हैं।
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -3,7 +3,9 @@
{
"cell_type": "markdown",
"metadata": {},
"source": []
"source": [
"# वर्गीकरण मॉडल बनाएँ\n"
]
},
{
"cell_type": "code",
@ -114,15 +116,15 @@
}
],
"source": [
"cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_feature_df.head()"
"cuisines_features_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_features_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**अस्वीकरण**: \nयह दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) का उपयोग करके अनुवादित किया गया है। जबकि हम सटीकता के लिए प्रयासरत हैं, कृपया ध्यान दें कि स्वचालित अनुवाद में त्रुटियां या अशुद्धियां हो सकती हैं। मूल भाषा में उपलब्ध मूल दस्तावेज़ को आधिकारिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सिफारिश की जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम उत्तरदायी नहीं हैं। \n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**अस्वीकरण**:\nयह दस्तावेज़ एआई अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) का उपयोग करके अनदित किया गया है। जबकि हम सटीकता के लिए प्रयासरत हैं, कृपया ध्यान दें कि स्वचालित अनुवाद में त्रुटियां या असंगतियां हो सकती हैं। मूल भाषा में मूल दस्तावेज़ को प्रामाणिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानवीय अनुवाद की सिफारिश की जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या भ्रामक अर्थों के लिए हम जिम्मेदार नहीं हैं।\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -150,12 +152,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "15a83277036572e0773229b5f21c1e12",
"translation_date": "2025-09-04T02:32:21+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "hi"
}
},
"nbformat": 4,

@ -1,7 +1,9 @@
{
"cells": [
{
"source": [],
"source": [
"# और अधिक वर्गीकरण मॉडल बनाएं\n"
],
"cell_type": "markdown",
"metadata": {}
},
@ -114,15 +116,15 @@
}
],
"source": [
"cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_feature_df.head()"
"cuisines_features_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_features_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# विभिन्न वर्गीकरणकर्ताओं को आज़माएं\n"
"# विभिन्न वर्गीकर्ताओं को आज़माएं\n"
]
},
{
@ -146,7 +148,7 @@
"metadata": {},
"outputs": [],
"source": [
"X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)"
"X_train, X_test, y_train, y_test = train_test_split(cuisines_features_df, cuisines_label_df, test_size=0.3)"
]
},
{
@ -261,7 +263,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**अस्वीकरण**: \nयह दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) का उपयोग करके अनुवादित किया गया है। जबकि हम सटीकता के लिए प्रयासरत हैं, कृपया ध्यान दें कि स्वचालित अनुवाद में त्रुटियां या अशुद्धियां हो सकती हैं। मूल भाषा में उपलब्ध मूल दस्तावेज़ को आधिकारिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सिफारिश की जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम उत्तरदायी नहीं हैं। \n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**अस्वीकरण**:\nइस दस्तावेज़ का अनुवाद AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) का उपयोग करके किया गया है। हम सटीकता के लिए प्रयासरत हैं, लेकिन कृपया ध्यान दें कि स्वचालित अनुवादों में त्रुटियाँ या अशुद्धताएँ हो सकती हैं। मूल दस्तावेज़ अपनी मातृभाषा में आधिकारिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सलाह दी जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम जिम्मेदार नहीं हैं।\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -289,12 +291,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "7ea2b714669c823a596d986ba2d5739f",
"translation_date": "2025-09-04T02:32:57+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "hi"
}
},
"nbformat": 4,

@ -1,159 +1,161 @@
### 🌐 मल्टी-लैंग्वेज सपोर्ट
### 🌐 बहुभाषी समर्थन
#### GitHub Action के माध्यम से समर्थित (स्वचालित और हमेशा अपडेटेड)
#### GitHub Action के माध्यम से समर्थित (स्वचालित और हमेशा अद्यतन)
<!-- CO-OP TRANSLATOR LANGUAGES TABLE START -->
[अरबी](../ar/README.md) | [बंगाली](../bn/README.md) | [बुल्गारियाई](../bg/README.md) | [बर्मी (म्यांमार)](../my/README.md) | [चीनी (सरलीकृत)](../zh-CN/README.md) | [चीनी (पारंपरिक, हांगकांग)](../zh-HK/README.md) | [चीनी (पारंपरिक, मकाऊ)](../zh-MO/README.md) | [चीनी (पारंपरिक, ताइवान)](../zh-TW/README.md) | [क्रोएशियाई](../hr/README.md) | [चेक](../cs/README.md) | [डेनिश](../da/README.md) | [डच](../nl/README.md) | [एस्टोनियाई](../et/README.md) | [फिनिश](../fi/README.md) | [फ्रेंच](../fr/README.md) | [जर्मन](../de/README.md) | [ग्रीक](../el/README.md) | [हिब्रू](../he/README.md) | [हिंदी](./README.md) | [हंगेरियन](../hu/README.md) | [इंडोनेशियाई](../id/README.md) | [इटालियन](../it/README.md) | [जापानी](../ja/README.md) | [कन्नड़](../kn/README.md) | [कोरियाई](../ko/README.md) | [लिथुआनियाई](../lt/README.md) | [मलय](../ms/README.md) | [मलयालम](../ml/README.md) | [मराठी](../mr/README.md) | [नेपाली](../ne/README.md) | [नाइजीरियन पिडगिन](../pcm/README.md) | [नॉर्वेजियन](../no/README.md) | [फारसी (पर्शियन)](../fa/README.md) | [पोलिश](../pl/README.md) | [पुर्तगाली (ब्राज़ील)](../pt-BR/README.md) | [पुर्तगाली (पुर्तगाल)](../pt-PT/README.md) | [पंजाबी (गुरमुखी)](../pa/README.md) | [रोमानियाई](../ro/README.md) | [रूसी](../ru/README.md) | [सर्बियाई (सिरिलिक)](../sr/README.md) | [स्लोवाक](../sk/README.md) | [स्लोवेनियाई](../sl/README.md) | [स्पेनिश](../es/README.md) | [स्वाहिली](../sw/README.md) | [स्वीडिश](../sv/README.md) | [टागालॉग (फिलिपिनो)](../tl/README.md) | [तमिल](../ta/README.md) | [तेलुगु](../te/README.md) | [थाई](../th/README.md) | [तुर्की](../tr/README.md) | [यूक्रेनी](../uk/README.md) | [उर्दू](../ur/README.md) | [वियतनामी](../vi/README.md)
> **स्थानीय स्तर पर क्लोन करना पसंद है?**
> इस रिपॉजिटरी में 50+ भाषा के अनुवाद शामिल हैं जो डाउनलोड साइज को काफी बढ़ा देते हैं। अनुवाद के बिना क्लोन करने के लिए, sparse checkout का उपयोग करें:
> **स्थानीय रूप से क्लोन करना पसंद है?**
>
> इस रिपॉजिटरी में 50+ भाषा अनुवाद शामिल हैं जो डाउनलोड आकार को काफी बढ़ाते हैं। बिना अनुवाद के क्लोन करने के लिए sparse checkout का उपयोग करें:
>
> **Bash / macOS / Linux:**
> ```bash
> git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git
> cd ML-For-Beginners
> git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'
> ```
> इससे आपको कोर्स पूरा करने के लिए आवश्यक सभी सामग्री मिलती है, और डाउनलोड भी तेज़ होता है।
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
>
> **CMD (Windows):**
> ```cmd
> git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git
> cd ML-For-Beginners
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ```
>
> यह आपको पाठ्यक्रम पूरा करने के लिए आवश्यक सब कुछ प्रदान करता है एक बहुत ही तेज़ डाउनलोड के साथ।
#### हमारे समुदाय में शामिल हों
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
हमारे पास 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 का उपयोग डेटा साइंस के लिए करने के टिप्स और ट्रिक्स मिलेंगे।
![Learn with AI series](../../translated_images/hi/3.9b58fd8d6c373c20.webp)
# शुरुआती के लिए मशीन लर्निंग - एक पाठ्यक्रम
# शुरुआती लोगों के लिए मशीन लर्निंग - एक पाठ्यक्रम
> 🌍 दुनिया के विभिन्न सांस्कृतिक संदर्भों के माध्यम से मशीन लर्निंग की खोज करते हुए दुनिया की यात्रा करें 🌍
> 🌍 हम दुनिया के विभिन्न सांस्कृतिक क्षेत्रों की मदद से मशीन लर्निंग का अन्वेषण करते हुए दुनिया की सैर करेंगे 🌍
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) में नीचे दी गई छवि पर क्लिक करके देख सकते हैं
[![ML for beginners banner](../../translated_images/hi/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
---
## टीम से मिलिए
## टीम से मिलें
[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
[![प्रोमो वीडियो](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
**Gif बनाया़ है** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) द्वारा
**Gif द्वारा** [मोहित जायसाल](https://linkedin.com/in/mohitjaisal)
> 🎥 परियोजना और इसे बनाने वाले लोगों के बारे में वीडियो देखने के लिए ऊपर की छवि पर क्लिक करें!
> 🎥 ऊपर की छवि पर क्लिक करें परियोजना और इसे बनाने वालों के बारे में वीडियो के लिए!
---
## शिक्षण पद्धति
## शिक्षाशास्त्र
इस पाठ्यक्रम का निर्माण करते समय हमने दो शैक्षणिक सिद्धांत चुने हैं: इसे हाथ-से-करने वाला **परियोजना आधारित** बनाना और इसमें **बार-बार क्विज़** शामिल करना। इसके अलावा, इस पाठ्यक्रम में एक सामान्य **थीम** है जो इसे सामंजस्य प्रदान करता है।
इस पाठ्यक्रम के निर्माण में हमने दो शैक्षणिक सिद्धांत चुने हैं: इसे हाथों-हाथ **परियोजना-आधारित** बनाना सुनिश्चित करना और इसमें **बार-बार क्विज़** शामिल करना। इसके अलावा, इस पाठ्यक्रम में आम **थीम** भी है जो इसे एकरूपता देता है।
ुनिश्चित करके कि सामग्री परियोजनाओं के साथ संरेखित हो, छात्र के लिए प्रक्रिया अधिक आकर्षक हो जाती है और अवधारणाओं की पकड़ बढ़ती है। इसके अलावा, कक्षा के पहले एक कम दांव वाला क्विज़ छात्र के लिए विषय सीखने की इच्छा निर्धारित करता है, जबकि कक्षा के बाद दूसरा क्विज़ और अधिक पकड़ सुनिश्चित करता है। यह पाठ्यक्रम लचीला और मजेदार बनाने के लिए डिज़ाइन किया गया है और इसे पूरी तरह या आंशिक रूप से लिया जा सकता है। परियोजनाएं छोटी से शुरू होकर 12 सप्ताह के अंत तक पहले से अधिक जटिल हो जाती हैं। इस पाठ्यक्रम में ML के वास्तविक दुनिया में अनुप्रयोगों पर एक पोस्टस्क्रिप्ट भी शामिल है, जिसे अतिरिक्त क्रेडिट या चर्चा के आधार के रूप में उपयोग किया जा सकता है।
ामग्री को परियोजनाओं के अनुरूप बनाकर, छात्रों के लिए प्रक्रिया अधिक रुचिकर हो जाती है और अवधारणाओं को याद रखना बढ़ता है। साथ ही, कक्षा से पहले कम दबाव वाला क्विज़ छात्रों को विषय सीखने के लिए प्रेरित करता है, जबकि कक्षा के बाद दूसरा क्विज़ और अधिक स्मरण सुनिश्चित करता है। यह पाठ्यक्रम लचीला और मनोरंजक होने के लिए डिजाइन किया गया है और इसे पूर्ण रूप से या आंशिक रूप से लिया जा सकता है। परियोजनाएं शुरू में सरल होती हैं और 12 सप्ताह के अंत तक धीरे-धीरे जटिल होती जाती हैं। यह पाठ्यक्रम ML के वास्तविक विश्व अनुप्रयोगों पर एक पोस्टस्क्रिप्ट भी शामिल करता है, जिसे अतिरिक्त क्रेडिट या चर्चा के आधार के रूप में उपयोग किया जा सकता है।
> हमारा [कोड ऑफ कंडक्ट](CODE_OF_CONDUCT.md), [योगदान](CONTRIBUTING.md), [अनुवाद](TRANSLATIONS.md), और [समस्या निवारण](TROUBLESHOOTING.md) दिशानिर्देश भी देखें। हम आपकी रचनात्मक प्रतिक्रिया का स्वागत करते हैं!
> हमारा [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), [Translation](TRANSLATIONS.md), और [Troubleshooting](TROUBLESHOOTING.md) दिशानिर्देश देखें। हम आपकी रचनात्मक प्रतिक्रिया का स्वागत करते हैं!
## प्रत्येक पाठ में शामिल हैं
- वैकल्पिक स्केचनोट
- वैकल्पिक पूरक वीडियो
- वीडियो वॉकथ्रू (केवल कुछ पाठों के लिए)
- [प्री-लेक्चर वार्मअप क्विज़](https://ff-quizzes.netlify.app/en/ml/)
- वीडियो वॉकथ्रू (केवल कुछ पाठ)
- [प्रि-लेक्चर वॉर्मअप क्विज़](https://ff-quizzes.netlify.app/en/ml/)
- लिखित पाठ
- परियोजना आधारित पाठों के लिए, परियोजना बनाने के लिए चरण-दर-चरण मार्गदर्शन
- परियोजना-आधारित पाठों के लिए परियोजना बनाने के चरण-दर-चरण निर्देश
- ज्ञान जांच
- एक चुनौती
- पूरक पठन सामग्री
- पूरक पठन
- असाइनमेंट
- [पोस्ट-लेक्चर क्विज़](https://ff-quizzes.netlify.app/en/ml/)
> **भाषाओं के बारे में एक नोट**: ये पाठ मुख्य रूप से 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
[![शैक्षिक AI शुरुआत के लिए](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![शैक्षिक AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![शैक्षिक AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[![शैक्षिक AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
### जेनेरेटिव एआई श्रृंखला
[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
---
### कोर लर्निंग
[![एमएल शुरआत के लिए](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[![डेटा साइंस शुरआत के लिए](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[![एआई शुरआत के लिए](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[![साइबरसिक्योरिटी शुरआत के लिए](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[![वेब विकास शुरआत के लिए](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[![आईओटी शुरआत के लिए](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[![एक्सआर विकास शुरआत के लिए](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
### मूल सीखना
[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### कॉपाइलट सीरीज
[![एआई सहयोगी प्रोग्रामिंग के लिए कॉपाइलट](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[![C#/.NET के लिए कॉपाइलट](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
[![कॉपाइलट एडवेंचर](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst)
### कोपिलॉट श्रृंखला
[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst)
<!-- CO-OP TRANSLATOR OTHER COURSES END -->
## सहायता प्राप्त करना
## मदद प्राप्त करना
यदि आप अटक गए हैं या एआई ऐप्स बनाने के बारे में कोई प्रश्न हैं। सहपाठियों और अनुभवी डेवलपर्स के साथ एमसीपी पर चर्चाओं में शामिल हों। यह एक सहायक समुदाय है जहाँ प्रश्न स्वागत योग्य हैं और ज्ञान स्वतंत्र रूप से साझा किया जाता है।
यदि आप अटक जाते हैं या AI ऐप बनाने के बारे में कोई प्रश्न हैं। MCP के बारे में चर्चाओं में साथी शिक्षार्थियों और अनुभवी डेवलपर्स के साथ जुड़ें। यह एक सहायक समुदाय है जहां प्रश्न स्वागत योग्य हैं और ज्ञान खुलेआम साझा किया जाता है।
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
यदि आपके पास उत्पाद प्रतिक्रिया है या निर्माण के दौरान त्रुटियाँ हैं तो यहां जाएं:
यदि आपके पास उत्पाद प्रतिक्रिया या निर्माण के दौरान त्रुटियां हैं तो यहाँ जाएं:
[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## अतिरिक्त सीखने के सुझाव
- बेहतर समझ के लिए प्रत्येक पाठ के बाद नोटबुक समीक्षा करें।
- स्वयं एल्गोरिदम लागू करने का अभ्यास करें।
- सीखे गए सिद्धांतों का उपयोग कर वास्तविक विश्व डेटासेट्स का अन्वेषण करें।
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**अस्वीकरण**:
यह दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) का उपयोग करके अनुवादित किया गया है। जबकि हम सटीकता के लिए प्रयासरत हैं, कृपया ध्यान दें कि स्वचालित अनुवाद में त्रुटियाँ या गलतियाँ हो सकती हैं। मूल भाषा में दस्तावेज़ को अधिकृत स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सिफारिश की जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या व्याख्या की ज़िम्मेदारी हम स्वीकार नहीं करते
**अस्वीकरण**:
यह दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) का उपयोग करके अनुवादित किया गया है। जबकि हम सटीकता के लिए प्रयासरत हैं, कृपया ध्यान दें कि स्वचालित अनुवादों में त्रुटियाँ या गलतियाँ हो सकती हैं। मूल दस्तावेज़ अपनी मूल भाषा में प्रामाणिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सलाह दी जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम जिम्मेदार नहीं हैं
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

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

@ -2,15 +2,17 @@
## 手順
このレッスンでは、責任あるAIツールボックスについて学びました。このツールボックスは「データサイエンティストがAIシステムを分析し改善するのを助けるためのオープンソースでコミュニティ主導のプロジェクト」です。この課題では、RAIツールボックスの[ノートブック](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/getting-started.ipynb)の1つを探り、その結果を論文またはプレゼンテーションで報告してください。
このレッスンでは、「データサイエンティストがAIシステムを分析・改善するのを支援する、オープンソースのコミュニティ主導プロジェクト」である責任あるAIツールボックスについて学びました。この課題では、RAIツールボックスの[ノートブック](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/tabular/getting-started.ipynb)のいずれかを調査し、その結果をレポートやプレゼンテーションで報告してください。
## 評価基準
| 基準 | 優秀 | 適切 | 改善が必要 |
| -------- | --------- | -------- | ----------------- |
| | Fairlearnのシステム、実行したートブック、そしてその結果から得られた結論について論じた論文またはパワーポイントのプレゼンテーションが提出されている | 結論を含まない論文が提出されている | 論文が提出されていない |
| | Fairlearnのシステム、実行したートブック、および実行から導き出された結論を論じるレポートまたはパワーポイントプレゼンテーションが提出されている | 結論なしのレポートが提出されている | レポートが提出されていない |
---
**免責事項**:
この文書はAI翻訳サービス[Co-op Translator](https://github.com/Azure/co-op-translator)を使用して翻訳されています。正確性を追求しておりますが、自動翻訳には誤りや不正確な部分が含まれる可能性があります。元の言語で記載された文書を正式な情報源としてお考えください。重要な情報については、専門の人間による翻訳を推奨します。この翻訳の使用に起因する誤解や誤解について、当社は責任を負いません。
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免責事項**
本ドキュメントはAI翻訳サービス「Co-op Translator」https://github.com/Azure/co-op-translatorを使用して翻訳されています。正確性の向上に努めておりますが、自動翻訳には誤りや不正確な表現が含まれる可能性があることをご承知おきください。原文のネイティブ言語による文書が正式な情報源とみなされるべきです。重要な情報については、専門の人間による翻訳を推奨いたします。本翻訳の利用により生じた誤解や誤訳について、当方は一切の責任を負いかねます。
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,84 +1,98 @@
# Scikit-learnを使った回帰モデルの構築4つの方法で回帰を学ぶ
# Scikit-learnで回帰モデルを構築する回帰の4通りの方法
![線形回帰と多項式回帰のインフォグラフィック](../../../../2-Regression/3-Linear/images/linear-polynomial.png)
## 初心者向けノート
線形回帰は、**数値を予測したいとき**に使います(例:家の価格、気温、売上など)。
これは、入力特徴と出力の関係を最もよく表現する直線を見つけることで機能します。
このレッスンでは、より高度な回帰手法を探索する前に、概念の理解に焦点を当てます。
![線形回帰と多項式回帰のインフォグラフィック](../../../../translated_images/ja/linear-polynomial.5523c7cb6576ccab.webp)
> インフォグラフィック作成者:[Dasani Madipalli](https://twitter.com/dasani_decoded)
## [講義前クイズ](https://ff-quizzes.netlify.app/en/ml/)
## [事前講義クイズ](https://ff-quizzes.netlify.app/en/ml/)
> ### [このレッスンはRでも利用可能です](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### はじめに
これまでに、回帰とは何かを、今回のレッスン全体で使用するカボチャの価格データセットを用いて探求しました。また、Matplotlibを使ってデータを可視化しました。
これまで、かぼちゃの価格設定データセットから収集したサンプルデータを使って回帰とは何かを探ってきました。このレッスン全体を通して使うデータです。また、Matplotlibを用いて可視化も行いました。
これからは、機械学習における回帰についてさらに深く学んでいきます。可視化はデータを理解するのに役立ちますが、機械学習の真の力は「モデルのトレーニング」にあります。モデルは過去のデータを基にトレーニングされ、データの依存関係を自動的に捉え、新しいデータ(モデルがこれまで見たことのないデータ)の結果を予測することができます。
さて、MLの回帰についてさらに深く掘り下げる準備が整いました。可視化はデータを理解するのに役立ちますが、機械学習の真の力は_モデルの訓練_にあります。モデルは過去のデータで訓練され、データの依存関係を自動的に捉え、新たな未見のデータに対して結果を予測できるようになります。
このレッスンでは、_基本的な線形回帰_ と _多項式回帰_ の2種類の回帰について、これらの手法の背後にある数学とともに学びます。これらのモデルを使用して、異なる入力データに基づいてカボチャの価格を予測できるようになります。
このレッスンでは、_基本線形回帰_と_多項式回帰_の2種類の回帰についてと、それらのテクニックの背後にある数学を学びます。これらのモデルで異なる入力データに基づいてかぼちゃの価格予測ができるようになります。
[![初心者向け機械学習 - 線形回帰の理解](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "初心者向け機械学習 - 線形回帰の理解")
> 🎥 上の画像をクリックすると、線形回帰の概要を説明する短い動画をご覧いただけます。
> 🎥 上の画像をクリックすると、線形回帰の短いビデオ概要が見られます。
> このカリキュラム全体を通じて、数学の知識が最小限であることを前提とし、他分野から来た学生にも理解しやすいように工夫しています。注釈、🧮 数式の説明、図解、その他の学習ツールに注目してください。
> このカリキュラム全体を通じて、数学の知識は最小限に抑え、他分野から来た学生にも理解しやすくすることを目指しています。理解を助けるためにノート、🧮 数学解説、図解、その他の学習ツールに注意してください。
### 前提条件
これまでに、今回取り上げるカボチャデータの構造について理解しているはずです。このレッスンの_notebook.ipynb_ファイルには、事前にロードされ、クリーンアップされたデータが含まれています。このファイルでは、カボチャの価格が新しいデータフレームに1ブッシェルあたりで表示されています。このートブックをVisual Studio Codeのカーネルで実行できることを確認してください。
かぼちゃのデータ構造についてはすでに理解しているはずです。このレッスンの _notebook.ipynb_ ファイル内に、事前に読み込みと整形済みのデータがあります。その中で、かぼちゃの価格が単位「ブッシェル容量単位」あたりの価格として新しいデータフレームに表示されています。Visual Studio Codeのカーネル環境でこれらのートブックが実行できることを確認してください。
### 準備
データをロードする目的を思い出してください
念のため、データを読み込む目的は「データに質問を投げかける」ことです
- カボチャを買うのに最適な時期はいつか?
- ミニチュアカボチャ1ケースの価格はどれくらいか
- 半ブッシェルバスケットで買うべきか、それとも1 1/9ブッシェルボックスで買うべきか
- かぼちゃを買うのに最適な時期はいつ?
- ミニかぼちゃの1箱あたりの価格はどのくらいになる
- 半ブッシェルのバスケットで買うべきか、それとも1 1/9ブッシェルの箱で買うべきか
このデータをさらに掘り下げていきましょう。
このデータをさらに掘り下げてみましょう
前のレッスンで、Pandasのデータフレームを作成し、元のデータセットの一部を取り込み、価格をブッシェル単位で標準化しました。ただし、その際約400ポイントのデータで、かぼちゃの季節の月のデータのみを対象にしていました
前回のレッスンでは、Pandasデータフレームを作成し、元のデータセットの一部を取り込み、価格をブッシェル単位で標準化しました。しかし、その結果、約400のデータポイントしか得られず、秋の月に限定されてしまいました
今レッスンの添付ノートブックにプリロードされたデータを見てみましょう。データが事前に読み込まれ、月ごとの散布図がプロットされています。もっと詳細にこのデータの性質を知るため、さらにクリーニングをしてみましょう
このレッスンに付属するノートブックに事前にロードされたデータを確認してください。このデータは事前にロードされ、初期の散布図が月ごとのデータを示すようにプロットされています。データをさらにクリーンアップすることで、データの性質についてもう少し詳しく知ることができるかもしれません。
## 線形回帰の直線
## 線形回帰直線
レッスン1で学んだように、線形回帰のゴールは直線をプロットして、
レッスン1で学んだように、線形回帰の目的は次のような直線をプロットすることです
- **変数の関係を示す**。変数間の関係を示す
- **予測を行う**。その直線に対する新しいデータ点の位置を正確に予測すること
- **変数間の関係を示す**。変数間の関係を明らかにする
- **予測を行う**。新しいデータポイントがその直線に対してどこに位置するかを正確に予測する
の2つです。
**最小二乗回帰**では、この種の直線を描くのが一般的です。「最小二乗」とは、回帰直線の周囲にあるすべてのデータポイントを二乗して合計することを意味します。この最終的な合計値ができるだけ小さいことが理想的です。なぜなら、エラー(または「二乗誤差」)の数を少なくしたいからです。
**最小二乗法回帰**では、こうした直線を引くのが典型的です。「最小二乗法」とはモデルの誤差の合計を最小化するプロセスを指します。全てのデータ点について、実際の点と回帰直線の縦方向の距離(残差と呼ばれます)を測ります。
れは、すべてのデータポイントからの累積距離が最小となる直線をモデル化したいからです。また、方向ではなく大きさに注目するために、項を二乗してから合計します。
の距離の二乗を取る理由は2つあります
> **🧮 数学を見せて!**
>
> この直線は、_最適な直線_ と呼ばれ、[次の式](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`と呼び、`X=0`のときの`Y`の値を指します。
>
> `X`は「説明変数」、`Y`は「従属変数」です。直線の傾きは`b`、切片(`X = 0`のときの`Y`の値)は`a`です。
>![傾きを計算](../../../../translated_images/ja/slope.f3c9d5910ddbfcf9.webp)
>
>![傾きの計算](../../../../2-Regression/3-Linear/images/slope.png)
> まず傾き`b`を計算します。インフォグラフィック作成者:[Jen Looper](https://twitter.com/jenlooper)
>
> まず、傾き`b`を計算します。インフォグラフィック作成者:[Jen Looper](https://twitter.com/jenlooper)
> 言い換えると、かぼちゃのデータの質問「月ごとのかぼちゃのブッシェル単価を予測する」で考えると、`X`は価格、`Y`は販売月を表します。
>
> つまり、カボチャデータの元の質問「月ごとにカボチャ1ブッシェルの価格を予測する」に関連付けると、`X`は価格、`Y`は販売月を指します。
>![式を完成させる](../../../../translated_images/ja/calculation.a209813050a1ddb1.webp)
>
>![式を完成させる](../../../../2-Regression/3-Linear/images/calculation.png)
> `Y`の値を計算します。約4ドルなら、それは4月で間違いありません インフォグラフィック作成者:[Jen Looper](https://twitter.com/jenlooper)
>
> `Y`の値を計算します。もし約4ドルを支払っているなら、それは4月に違いありませんインフォグラフィック作成者[Jen Looper](https://twitter.com/jenlooper)
> この式は、`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)で数値の影響を確認してみてください。
## 相関
もう1つ理解しておくべき用語は、与えられたXおよびY変数間の**相関係数**です。散布図を使用すると、この係数をすぐに視覚化できます。データポイントがきれいな直線状に散らばっているプロットは高い相関を持ちますが、データポイントがXとYの間でどこにでも散らばっているプロットは低い相関を持ちます。
もう一つ理解すべき用語は、与えられたX変数とY変数間の**相関係数**です。散布図でこの係数を視覚的に簡単に見ることができます。データ点がきれいな直線上に散らばっていると強い相関を持ち、点がばらばらだと弱い相関を示します。
良い線形回帰モデルは、最小二乗回帰法を使用して回帰直線を引いた場合に、1に近い0よりも高い相関係数を持つものです。
良い線形回帰モデルは、最小二乗法回帰で計算した線形回帰の相関係数が高い0に近いより1に近いものです。
✅ このレッスンに付属するノートブックを実行し、月と価格の散布図を確認してください。カボチャ販売における月と価格のデータは、散布図の視覚的解釈によると、高い相関を持っているように見えますか?それとも低い相関を持っていますか?`Month`の代わりに、より細かい尺度(例:*年の中の日数*、つまり年初からの日数)を使用するとどう変わりますか?
✅ このレッスンに付属のノートブックを実行し、「月」と「価格」の散布図を見てください。かぼちゃの販売では、月と価格の関連は散布図の見た目で「高い」相関でしょうか、それとも「低い」相関でしょうか? さらに、`Month`を細かくした指標、例えば*年中何日目か*で見るとどうでしょうか?
以下のコードでは、データをクリーンアップし、次のようなデータフレーム`new_pumpkins`を取得したと仮定します:
以下のコードでは、データのクリーニングが済んで、このような`new_pumpkins`というデータフレームがあると仮定します:
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
---|-------|-----------|---------|------|---------|-----------|------------|-------
@ -88,36 +102,36 @@ ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Pri
73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
> データをクリーンアップするコードは[`notebook.ipynb`](../../../../2-Regression/3-Linear/notebook.ipynb)にあります。前回のレッスンと同じクリーンアップ手順を実行し、次の式を使用して`DayOfYear`列を計算しました
> データのクリーニング用コードは[`notebook.ipynb`](notebook.ipynb)にあります。前回のレッスンと同様のクリーニングを行い、`DayOfYear`列は以下の式で計算しています
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
```
線形回帰の背後にある数学を理解したところで、回帰モデルを作成し、どのカボチャのパッケージが最も良い価格を持つかを予測できるか見てみましょう。ホリデー用のカボチャ畑を運営する人は、この情報を使ってカボチャパッケージの購入を最適化したいと考えるかもしれません
線形回帰の数学的基礎を理解したので、どのパッケージのかぼちゃが一番お得な価格になるかを予測する回帰モデルを作成してみましょう。例えばハロウィンかぼちゃパッチ用にかぼちゃの購入を最適化したい人が参考にできる情報です
## 相関を探
## 相関を探
[![初心者向け機械学習 - 相関を探る:線形回帰の鍵](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "初心者向け機械学習 - 相関を探る:線形回帰の鍵")
[![初心者向け機械学習 - 相関 を探そう:線形回帰のカギ](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "初心者向け機械学習 - 相関 を探そう:線形回帰のカギ")
> 🎥 上の画像をクリックすると、相関の概要を説明する短い動画をご覧いただけます。
> 🎥 上の画像をクリックすると、相関の短いビデオ概要が見られます。
回のレッスンで、月ごとの平均価格が次のように見えることを確認しました
のレッスンで月ごとの平均価格が以下のようだったことを思い出してください
<img alt="月ごとの平均価格" src="../../../../translated_images/ja/barchart.a833ea9194346d76.webp" width="50%"/>
これは、何らかの相関があることを示唆しており、`Month`と`Price`、または`DayOfYear`と`Price`の関係を予測する線形回帰モデルをトレーニングすることを試みる価値があります。以下は、後者の関係を示す散布図です:
これを見ると何らかの相関がありそうです。`Month`と`Price`、あるいは`DayOfYear`と`Price`の関係を予測する線形回帰モデルを訓練できます。後者の関係を示す散布図はこちらです:
<img alt="価格と年の日数の散布図" src="../../../../translated_images/ja/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
<img alt="日付(年中の日数)と価格の散布図" src="../../../../translated_images/ja/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
`corr`関数を使用して相関を確認してみましょう
`corr`関数を使って相関を確認すると
```python
print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
```
`Month`では-0.15、`DayOfMonth`では-0.17と、相関はかなり小さいようです。しかし、別の重要な関係がある可能性があります。異なるカボチャの品種に対応する価格の異なるクラスターがあるように見えます。この仮説を確認するために、各カボチャのカテゴリを異なる色でプロットしてみましょう。`scatter`プロット関数に`ax`パラメータを渡すことで、すべてのポイントを同じグラフにプロットできます:
相関は小さめで、`Month`で-0.15、`DayOfYear`で-0.17のようです。しかし、他に重要な関係性があるようにも見えます。かぼちゃの品種ごとに異なる価格のクラスタができているように見えます。これを確認するため、それぞれの品種を異なる色で散布図にプロットし、`scatter`関数の`ax`パラメータに軸を渡して全ポイントを同一グラフ上に描きます:
```python
ax=None
@ -127,42 +141,42 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
ax = df.plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var)
```
<img alt="価格と年の日数の散布図(色分け" src="../../../../translated_images/ja/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
<img alt="日付と価格の散布図(品種別カラー" src="../../../../translated_images/ja/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
調査の結果、販売日よりも品種が価格全体に与える影響が大きいことが示唆されます。これを棒グラフで確認できます:
調査の結果、価格に最も影響を与えるのは販売日ではなく品種である可能性が高いことがわかります。これを棒グラフでも示します:
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
```
<img alt="品種ごとの価格の棒グラフ" src="../../../../translated_images/ja/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="品種価格の棒グラフ" src="../../../../translated_images/ja/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
ここでは、特定のカボチャ品種「パイタイプ」に焦点を当て、日付が価格に与える影響を見てみましょう:
ここでは一旦「パイタイプ」のかぼちゃのみに注目し、日付が価格に与える影響を見てみましょう:
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price')
```
<img alt="価格と年の日数の散布図(パイタイプ)" src="../../../../translated_images/ja/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
<img alt="日付と価格の散布図(パイタイプのみ" src="../../../../translated_images/ja/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
`corr`関数を使用して`Price`と`DayOfYear`の相関を計算すると、約`-0.27`の値が得られます。これは、予測モデルをトレーニングする意味があることを示しています。
`corr`関数で`Price`と`DayOfYear`間の相関を計算すると、およそ `-0.27` となり、予測モデルの訓練が合理的であることがわかります。
> 線形回帰モデルをトレーニングする前に、データがクリーンであることを確認することが重要です。線形回帰は欠損値に対してうまく機能しないため、すべての空のセルを削除するのが理にかなっています
> 線形回帰モデルを訓練する前に、データがクリーンであることが大切です。線形回帰は欠損値があるとうまく機能しないため、空のセルは全部除去した方がよいでしょう
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
別のアプローチとしては、空の値を対応する列の平均値で埋める方法があります。
別の方法は、欠損値を対応する列の平均値で埋める方法です。
## 単純線形回帰
[![初心者向け機械学習 - Scikit-learnを使った線形回帰と多項式回帰](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "初心者向け機械学習 - Scikit-learnを使った線形回帰と多項式回帰")
> 🎥 上の画像をクリックすると、線形回帰と多項式回帰の概要を説明する短い動画をご覧いただけます。
> 🎥 上の画像をクリックすると、線形回帰と多項式回帰の短いビデオ概要が見られます。
線形回帰モデルをトレーニングするには、**Scikit-learn**ライブラリを使用します。
線形回帰モデルを訓練するには、**Scikit-learn** ライブラリを使います。
```python
from sklearn.linear_model import LinearRegression
@ -170,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`を実行する必要があることに注意してください。これは、線形回帰パッケージが正しく理解できるようにするためです。線形回帰は、入力として2次元配列を期待します。この配列の各行は、入力特徴量のベクトルに対応します。今回の場合、入力が1つしかないため、配列の形状はN×1Nはデータセットのサイズである必要があります。
> 線形回帰パッケージに正しく認識させるため、入力データに`reshape`を適用したことに注意してください。線形回帰では、2次元配列の入力を期待し、配列の各行が入力特徴量のベクトルを表します。本例では入力が1つだけなので、形状はN×1Nはデータセットのサイズにします。
次に、データをトレーニングデータセットとテストデータセットに分割します。これにより、トレーニング後にモデルを検証できます:
次に、データを訓練用と検証用に分割して、モデルの検証ができるようにします:
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
最後に、実際の線形回帰モデルのトレーニングは、わずか2行のコードで完了します。`LinearRegression`オブジェクトを定義し、`fit`メソッドを使用してデータに適合させます:
最後に、実際に線形回帰モデルの訓練は2行のコードで済みます。まず`LinearRegression`オブジェクトを定義し、`fit`メソッドでデータに当てはめます:
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
`fit`後の`LinearRegression`オブジェクトには、回帰のすべての係数が含まれています。これらは`.coef_`プロパティを使用してアクセスできます。今回の場合、係数は1つだけで、約`-0.017`になるはずです。これは、価格が時間とともに少しずつ下がることを意味しますが、その変化は非常に小さく、1日あたり約2セント程度です。また、回帰がY軸と交差する点は`lin_reg.intercept_`を使用してアクセスでき、今回の場合は約`21`になります。これは、年初の価格を示しています。
`fit` メソッド実行後の `LinearRegression` オブジェクトには回帰の全ての係数が含まれており、`.coef_` プロパティを使ってアクセスできます。今回の場合、係数はひとつだけで、約 `-0.017` となるはずです。これは、価格が時間とともに少しずつ1日あたり約2セントほど下がる傾向にあることを意味します。回帰線が Y軸と交差する点は `lin_reg.intercept_` でアクセスでき、今回の場合は約 `21`、年初の価格を示しています。
モデルの精度を確認するには、テストデータセットで価格を予測し、予測値と期待値がどれだけ近いかを測定します。これは、平均二乗誤差MSEメトリクスを使用して行うことができます。MSEは、期待値と予測値のすべての差の二乗の平均です。
モデルの精度を確かめるには、テストデータセットで価格を予測し、その予測値が期待値にどれだけ近いかを測ります。これは、平均二乗誤差MSEを使って行い、期待値と予測値の差を二乗した値の平均を計算します。
```python
pred = lin_reg.predict(X_test)
@ -202,36 +216,37 @@ pred = lin_reg.predict(X_test)
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
```
私たちのエラーは約2つのポイントに集中しており、これは約17%です。あまり良くありません。モデルの品質を示すもう1つの指標は**決定係数**で、以下のように取得できます:
誤差は約2ポイント、つまり約17%となり、あまり良くありません。モデル品質の別の指標として **決定係数** があり、以下のように取得できます。
```python
score = lin_reg.score(X_train,y_train)
print('Model determination: ', score)
```
値が0の場合、モデルは入力データを考慮せず、*最悪の線形予測器*として機能します。これは単に結果の平均値を示します。値が1の場合、すべての期待される出力を完全に予測できることを意味します。私たちの場合、決定係数は約0.06で、非常に低い値です。
値が0の場合、モデルは入力データを考慮しておらず、最悪の線形予測子、すなわち単純に結果の平均値を返していることを表します。値が1だと予測が完全に正しいことを示します。今回の決定係数は約0.06で、かなり低い値です。
また、テストデータと回帰線をプロットして、私たちのケースで回帰がどのように機能するかをよりよく理解することができます:
テストデータと回帰直線を一緒にプロットして、回帰の様子を視覚的に確認することもできます。
```python
plt.scatter(X_test,y_test)
plt.plot(X_test,pred)
```
<img alt="線形回帰" src="../../../../translated_images/ja/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
<img alt="Linear regression" src="../../../../translated_images/ja/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
## 多項式回帰
線形回帰のもう一つのタイプは多項式回帰です。変数間に線形関係がある場合もありますが(例えば、カボチャの体積が大きいほど価格が高い)、これらの関係が平面や直線としてプロットできない場合もあります。
線形回帰の別のタイプに多項式回帰があります。変数間に線形関係がある場合(例えば、かぼちゃの体積が大きいほど価格が高い)がある一方、関係性が平面や直線で表現できない場合もあります。
[こちら](https://online.stat.psu.edu/stat501/lesson/9/9.8)に多項式回帰が適用できるデータの例があります。
こちらに多項式回帰に向く[さらにいくつかの例](https://online.stat.psu.edu/stat501/lesson/9/9.8)があります。
日付と価格の関係をもう一度見てみましょう。この散布図は必ずしも直線で分析されるべきだと思いますか?価格は変動する可能性がありますよね?この場合、多項式回帰を試すことができます。
改めて、日付と価格の関係を見てみましょう。この散布図は必ずしも直線で分析すべきでしょうか?価格は変動し得ますよね。この場合、多項式回帰を試すことができます。
✅ 多項式は、1つ以上の変数と係数を含む数学的表現です。
✅ 多項式は、1つまたは複数の変数と係数からなる数学的表現です。
多項式回帰は、非線形データにより適合する曲線を作成します。私たちの場合、入力データに`DayOfYear`変数の二乗を含めることで、年内のある点で最小値を持つ放物線をデータに適合させることができます。
多項式回帰は非線形データに合うように曲線を作成します。今回は、入力データに2乗した `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) が含まれています。**パイプライン** は**推定器**の連鎖です。今回は、多項式特徴量を追加してから回帰を学習するパイプラインを作成します。
```python
from sklearn.preprocessing import PolynomialFeatures
@ -242,36 +257,36 @@ pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
```
`PolynomialFeatures(2)`を使用することで、入力データからすべての二次多項式を含めることができます。私たちの場合、これは単に`DayOfYear`<sup>2</sup>を意味しますが、2つの入力変数XとYがある場合、これによりX<sup>2</sup>、XY、Y<sup>2</sup>が追加されます。必要に応じて、より高次の多項式を使用することもできます。
`PolynomialFeatures(2)` を使うと、入力データから全ての2次の多項式が含まれます。今回の場合は `DayOfYear`<sup>2</sup> だけですが、X と Y という2つの入力変数がある場合、X<sup>2</sup>、XY、Y<sup>2</sup> が追加されます。必要に応じて、より高次の多項式も使えます。
パイプラインは、元の`LinearRegression`オブジェクトと同じ方法で使用できます。つまり、パイプラインを`fit`し、その後`predict`を使用して予測結果を取得できます。以下はテストデータと近似曲線を示すグラフです:
パイプラインは元の `LinearRegression` オブジェクトと同様に使え、`fit` して `predict` で予測が可能です。以下はテストデータと近似曲線のグラフです。
<img alt="多項式回帰" src="../../../../translated_images/ja/poly-results.ee587348f0f1f60b.webp" width="50%" />
<img alt="Polynomial regression" src="../../../../translated_images/ja/poly-results.ee587348f0f1f60b.webp" width="50%" />
多項式回帰を使用することで、MSEをわずかに低下させ、決定係数をわずかに向上させることができますが、大きな改善はありません。他の特徴を考慮する必要があります!
多項式回帰を使うとMSEがやや下がり、決定係数は上がりますが大きな変化ではありません。より正確な予測には他の特徴も考慮する必要があります!
> 最小のカボチャ価格がハロウィンの周辺で観察されることがわかります。これをどのように説明しますか?
> 価格が最も低くなるのがハロウィン頃であることがわかります。これをどう説明できますか?
🎃 おめでとうございます!パイカボチャの価格を予測するモデルを作成しました。同じ手順をすべてのカボチャの種類に対して繰り返すことができますが、それは面倒です。次に、モデルにカボチャの種類を考慮する方法を学びましょう!
🎃 おめでとうございます、パイ用かぼちゃの価格を予測できるモデルを作成できました。おそらく他のかぼちゃの種類でも同じ手順を繰り返せますが、それは大変です。次はかぼちゃの品種をモデルに取り入れる方法を学びましょう!
## カテゴリカル特徴
## カテゴリ特徴
理想的な世界では、同じモデルを使用して異なるカボチャの種類の価格を予測できるようにしたいです。しかし、`Variety`列は`Month`のような列とは異なり、非数値の値を含んでいます。このような列は**カテゴリカル**と呼ばれます。
理想的には、同じモデルで異なるかぼちゃの品種の価格を予測したいですが、`Variety` 列は `Month` のような数値型の列とは異なり、非数値の値を含みます。こうした列は **カテゴリ特徴量** と呼ばれます。
[![初心者向けML - 線形回帰でカテゴリカル特徴を予測](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "初心者向けML - 線形回帰でカテゴリカル特徴を予測")
[![ML for beginners - Categorical Feature Predictions with Linear Regression](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
> 🎥 上の画像をクリックすると、カテゴリカル特徴の使用に関する短いビデオ概要が表示されます。
> 🎥 上の画像をクリックすると、カテゴリ特徴量を使う簡単なビデオ説明が見られます。
以下は、種類ごとの平均価格がどのように依存しているかを示しています:
ここでは品種ごとの平均価格の違いがわかります。
<img alt="種類ごとの平均価格" src="../../../../translated_images/ja/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Average price by variety" src="../../../../translated_images/ja/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
種類を考慮するためには、まずそれを数値形式に変換する必要があります。これを**エンコード**と呼びます。いくつかの方法があります:
品種を考慮するためには、まず数値形式に変換、つまり **エンコード** が必要です。エンコードにはいくつか方法があります。
* シンプルな**数値エンコード**は、異なる種類のテーブルを作成し、そのテーブル内のインデックスで種類名を置き換えます。これは線形回帰には最適ではありません。なぜなら、線形回帰はインデックスの実際の数値を取り、それを結果に追加し、係数で乗算するからです。この場合、インデックス番号と価格の関係は明らかに非線形であり、特定の順序でインデックスを配置しても同じです。
* **ワンホットエンコード**は、`Variety`列を4つの異なる列に置き換えます。それぞれの列は、対応する行が特定の種類である場合に`1`を含み、それ以外の場合は`0`を含みます。これにより、線形回帰では4つの係数が作成され、それぞれのカボチャの種類に対して「開始価格」または「追加価格」を表します。
* 単純な **数値エンコード** は異なる品種のテーブルを作り、品種名をそのテーブルのインデックスに置き換えます。しかし線形回帰ではこれは良くない方法です。線形回帰はインデックスの数値をそのまま係数と掛け合わせて結果に加えるため、インデックス番号と価格の間の関係が非線形であっても無理に線形として扱ってしまうからです。
* **ワンホットエンコード**`Variety` 列を各品種ごとに4列に分けます。各列には該当する品種の行だけ `1`、それ以外は `0` が入ります。これにより、線形回帰では各かぼちゃ品種に対して4つの係数があり、それぞれの品種の「ベース価格あるいは追加分」を決めることができます。
以下のコードは、種類をワンホットエンコードする方法を示しています:
以下はワンホットエンコードの例です。
```python
pd.get_dummies(new_pumpkins['Variety'])
@ -288,14 +303,14 @@ pd.get_dummies(new_pumpkins['Variety'])
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
ワンホットエンコードされた種類を入力として線形回帰をトレーニングするには、`X`と`y`データを正しく初期化するだけです:
ワンホットエンコードされた品種を入力にして線形回帰を学習するには、`X` と `y` データを正しく初期化するだけです。
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
残りのコードは、上記で使用した線形回帰をトレーニングするコードと同じです。これを試してみると、平均二乗誤差はほぼ同じですが、決定係数が大幅に向上することがわかります約77%)。さらに正確な予測を得るためには、他のカテゴリカル特徴や数値特徴(例えば`Month`や`DayOfYear`を考慮する必要があります。1つの大きな特徴配列を作成するには、`join`を使用できます:
残りのコードは先に使った線形回帰の学習と同じです。試してみると平均二乗誤差はほぼ同じですが、決定係数が大幅に向上し約77%になります。さらに正確な予測のためには、今回の例のようにカテゴリー特徴量と `Month``DayOfYear` といった数値特徴量の両方を考慮できます。複数の特徴量配列を結合するために `join` を使います。
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@ -305,31 +320,31 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
y = new_pumpkins['Price']
```
ここでは`City`や`Package`タイプも考慮しており、これによりMSEは2.8410%、決定係数は0.94になります!
ここではさらに `City``Package` の種類も考慮し、MSEは2.8410%、決定係数は0.94となります。
## すべてをまとめる
## まとめて実装
良のモデルを作成するためには、上記の例から得られたカテゴリカル特徴(ワンホットエンコード)と数値データを組み合わせて多項式回帰を使用します。以下は完全なコードです:
も良いモデルを作るため、上記の複合(ワンホットエンコードされたカテゴリ+数値)データを多項式回帰と組み合わせます。以下は便利のための完全なコードです。
```python
# set up training data
# トレーニングデータを設定する
X = pd.get_dummies(new_pumpkins['Variety']) \
.join(new_pumpkins['Month']) \
.join(pd.get_dummies(new_pumpkins['City'])) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
# make train-test split
# トレイン・テスト分割を行う
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# setup and train the pipeline
# パイプラインを設定してトレーニングする
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
# predict results for test data
# テストデータの結果を予測する
pred = pipeline.predict(X_test)
# calculate MSE and determination
# MSEと決定係数を計算する
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
@ -337,34 +352,36 @@ score = pipeline.score(X_train,y_train)
print('Model determination: ', score)
```
これにより、ほぼ97%の決定係数とMSE=2.23約8%の予測誤差)を得ることができます。
これにより、決定係数は約97%、MSEは2.23約8%の予測誤差)まで向上します。
| モデル | MSE | 決定係数 |
|-------|-----|----------|
| `DayOfYear` 線形 | 2.77 (17.2%) | 0.07 |
| `DayOfYear` 多項式 | 2.73 (17.0%) | 0.08 |
| `Variety` 線形 | 5.24 (19.7%) | 0.77 |
| すべての特徴 線形 | 2.84 (10.5%) | 0.94 |
| すべての特徴 多項式 | 2.23 (8.25%) | 0.97 |
|-------|-----|---------|
| `DayOfYear` 線形回帰 | 2.77 (17.2%) | 0.07 |
| `DayOfYear` 多項式回帰 | 2.73 (17.0%) | 0.08 |
| `Variety` 線形回帰 | 5.24 (19.7%) | 0.77 |
| 全特徴量 線形回帰 | 2.84 (10.5%) | 0.94 |
| 全特徴量 多項式回帰 | 2.23 (8.25%) | 0.97 |
🏆 素晴らしい1つのレッスンで4つの回帰モデルを作成し、モデルの品質を97%まで向上させました。回帰の最終セクションでは、カテゴリを決定するためのロジスティック回帰について学びます。
🏆 よくできましたこのレッスンで4つの回帰モデルを作成し、モデルの精度を97%まで向上させました。最後の回帰のセクションでは、カテゴリを判定するロジスティック回帰を学びます。
---
## 🚀チャレンジ
このノートブックでいくつかの異なる変数をテストし、相関がモデルの精度にどのように対応するかを確認してください。
このノートブックで異なる変数をいくつか試して、相関関係がモデルの精度にどう影響するか確かめてください。
## [講義後クイズ](https://ff-quizzes.netlify.app/en/ml/)
## [講義後クイズ](https://ff-quizzes.netlify.app/en/ml/)
## 復習と自己学
## 復習 &
このレッスンでは線形回帰について学びました。他にも重要な回帰の種類があります。ステップワイズ、リッジ、ラッソ、エラスティックネット技術について読んでみてください。さらに学ぶための良いコースは[スタンフォード統計学習コース](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)です。
このレッスンでは線形回帰について学びました。他にも重要な回帰の型があります。部分的な変数選択(ステップワイズ)、リッジ回帰、ラッソ回帰、エラスティックネットなどの技術について読んでみてください。より学ぶのに良いコースは [スタンフォード統計学習コース](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning) です。
## 課題
[モデルを構築する](assignment.md)
[モデル作成](assignment.md)
---
**免責事項**:
この文書は、AI翻訳サービス [Co-op Translator](https://github.com/Azure/co-op-translator) を使用して翻訳されています。正確性を追求しておりますが、自動翻訳には誤りや不正確な部分が含まれる可能性があることをご承知ください。元の言語で記載された文書が正式な情報源とみなされるべきです。重要な情報については、専門の人間による翻訳を推奨します。この翻訳の使用に起因する誤解や誤った解釈について、当方は一切の責任を負いません。
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免責事項**
本書類はAI翻訳サービス[Co-op Translator](https://github.com/Azure/co-op-translator)を用いて翻訳されました。正確性には努めておりますが、自動翻訳には誤りや不正確な部分が含まれる可能性があることをご了承ください。原文の言語による資料を正本としてご参照ください。重要な情報については、専門の人間による翻訳を推奨いたします。本翻訳の利用により生じたいかなる誤解や誤訳についても一切責任を負いかねます。
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,44 +1,44 @@
# 料理分類器 2
# Cuisine classifiers 2
この第2回目の分類レッスンでは、数値データを分類するさまざまな方法を探ります。また、どの分類器を選ぶかによる影響についても学びます。
この第2の分類レッスンでは、数値データを分類するさらなる方法を探ります。また、異なる分類器の選択がもたらす影響についても学びます。
## [講義前のクイズ](https://ff-quizzes.netlify.app/en/ml/)
## [事前講義クイズ](https://ff-quizzes.netlify.app/en/ml/)
### 前提条件
前回のレッスンを完了し、`data`フォルダー内にクリーンアップされたデータセット _cleaned_cuisines.csv_ があることを前提としています。このフォルダーは4つのレッスンが含まれるルートフォルダーです。
前回のレッスンを完了し、この4レッスンフォルダーのルートにある`data`フォルダーにクリーンなデータセット _cleaned_cuisines.csv_ があることを前提とします。
### 準備
クリーンアップされたデータセットを使用して、_notebook.ipynb_ ファイルをロードしました。そして、データをXとyのデータフレームに分割し、モデル構築の準備を整えています。
クリーンデータセットを読み込んだ_notebook.ipynb_ ファイルを用意しており、モデル構築プロセスのためにXとyのデータフレームに分割しています。
## 分類マップ
以前、Microsoftのチートシートを使ってデータを分類する際のさまざまな選択肢について学びました。Scikit-learnは、さらに詳細なチートシートを提供しており、分類器別名推定器を絞り込むのに役立ちます。
前回は、Microsoftのチートシートを使った分類のさまざまな選択肢について学びました。Scikit-learnにも類似でより詳細なチートシートがあり、それによって推定器分類器の別称をさらに絞り込むことができます。
![Scikit-learnのMLマップ](../../../../4-Classification/3-Classifiers-2/images/map.png)
> ヒント: [このマップをオンラインで見る](https://scikit-learn.org/stable/tutorial/machine_learning_map/)と、ドキュメントをクリックして読むことができます
![ML Map from Scikit-learn](../../../../translated_images/ja/map.e963a6a51349425a.webp)
> ヒント: [このマップをオンラインでご覧ください](https://scikit-learn.org/stable/tutorial/machine_learning_map/) そして、パスをクリックしてドキュメントを読んでみましょう
### 計画
このマップはデータをしっかり理解した後に非常に役立ちます。マップの道筋をたどりながら決定を下すことができます。
データに明確な理解があれば、このマップはとても役立ちます。パスを「歩く」ことで決断に導きます:
- サンプル数50以上
- サンプル数50以上
- カテゴリを予測したい
- ラベル付きデータがある
- サンプル数が10万未満
- ✨ Linear SVCを選択可能
- うまくいかない場合、数値データがあるので
- ✨ KNeighbors Classifierを試す
- それでもうまくいかない場合、✨ SVCや✨ Ensemble Classifiersを試す
- 10万サンプル未満
- ✨ Linear SVCを選択できる
- それでうまくいかなければ、数値データなので
- ✨ KNeighbors Classifierを試すことができる
- それでもうまくいかなければ、✨ SVC と ✨ Ensemble Classifiers を試す
の道筋は非常に役立ちます。
れは非常に役立つ道筋です。
## 演習 - データを分割する
## 演習 - データの分割
この道筋に従い、まず使用するライブラリをインポートするところから始めましょう。
このパスに従い、最初にいくつかのライブラリをインポートしましょう。
1. 必要なライブラリをインポートする:
1. 必要なライブラリをインポートします:
```python
from sklearn.neighbors import KNeighborsClassifier
@ -50,31 +50,31 @@
import numpy as np
```
1. トレーニングデータとテストデータを分割する:
1. トレーニングデータとテストデータを分割します:
```python
X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
X_train, X_test, y_train, y_test = train_test_split(cuisines_features_df, cuisines_label_df, test_size=0.3)
```
## Linear SVC分類器
サポートベクトルクラスタリングSVCは、サポートベクトルマシンSVM技術の一部です。この方法では、ラベルをクラスタリングするための「カーネル」を選択できます。「C」パラメータは「正則化」を指し、パラメータの影響を調整します。カーネルは[いくつかの種類](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC)がありますが、ここでは「線形」に設定して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を適用する
まず分類器の配列を作成します。テストを進めるにつれて、この配列に追加していきます。
まず分類器の配列を作成します。テストしながら順次分類器をこの配列に追加します。
1. Linear SVCを追加する:
1. Linear SVCで始めましょう:
```python
C = 10
# Create different classifiers.
# 異なる分類器を作成します。
classifiers = {
'Linear SVC': SVC(kernel='linear', C=C, probability=True,random_state=0)
}
```
2. Linear SVCを使用してモデルをトレーニングし、レポートを出力する:
2. Linear SVCを使ってモデルを訓練し、レポートを表示します:
```python
n_classifiers = len(classifiers)
@ -88,7 +88,7 @@
print(classification_report(y_test,y_pred))
```
結果はかなり良好です:
結果はかなり良好です
```output
Accuracy (train) for Linear SVC: 78.6%
@ -105,21 +105,21 @@
weighted avg 0.79 0.79 0.79 1199
```
## K-Neighbors分類器
## K-Nearest Neighbors分類器
K-Neighborsは、MLの「近傍」ファミリーの一部であり、教師あり学習と教師なし学習の両方に使用できます。この方法では、事前に定義されたポイントを作成し、その周囲にデータを集めて一般化されたラベルを予測します。
K-Nearest Neighborsは「隣接点」ファミリーのML手法で、教師あり・教師なし学習の両方に使われます。この方法は、予め定めた数の点を作成し、その周辺にデータを集めてデータの一般化したラベルを予測します。
### 演習 - K-Neighbors分類器を適用する
### 演習 - K-Nearest Neighbors分類器を適用する
前の分類器は良好で、データにうまく適合しましたが、精度をさらに向上させる可能性があります。K-Neighbors分類器を試してみましょう
前の分類器は良好に機能しましたが、精度向上を狙いましょう。K-Nearest Neighbors分類器を試します
1. Linear SVC項目の後にコンマを追加し、次の行を追加する:
1. 分類器配列に行を追加しますLinear SVCの要素の後ろにカンマを追加
```python
'KNN classifier': KNeighborsClassifier(C),
```
結果は少し悪化しました:
結果は少し悪くなります:
```output
Accuracy (train) for KNN classifier: 73.8%
@ -138,21 +138,21 @@ K-Neighborsは、MLの「近傍」ファミリーの一部であり、教師あ
✅ [K-Neighborsについて学ぶ](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
## サポートベクトル分類器
## サポートベクター分類器
サポートベクトル分類器は、分類と回帰タスクに使用される[サポートベクトルマシン](https://wikipedia.org/wiki/Support-vector_machine)ファミリーの一部です。SVMは「トレーニング例を空間内のポイントにマッピング」し、2つのカテゴリ間の距離を最大化します。その後、データをこの空間にマッピングしてカテゴリを予測します。
サポートベクター分類器は、分類や回帰タスクに用いられる[サポートベクターマシン](https://wikipedia.org/wiki/Support-vector_machine)ファミリーの一部です。SVMは「訓練サンプルを空間上の点にマップし」、2つのカテゴリ間の距離を最大化します。その空間に新たなデータをマッピングしてカテゴリを予測します。
### 演習 - サポートベクトル分類器を適用する
### 演習 - サポートベクター分類器を適用する
サポートベクトル分類器を使用して、さらに良い精度を目指しましょう。
サポートベクター分類器で少し精度向上を目指しましょう。
1. K-Neighbors項目の後にコンマを追加し、次の行を追加する:
1. K-Neighborsの項目の後ろにカンマを追加し、次の行を加えます:
```python
'SVC': SVC(),
```
結果は非常に良好です!
結果はかなり良いです!
```output
Accuracy (train) for SVC: 83.2%
@ -169,18 +169,18 @@ K-Neighborsは、MLの「近傍」ファミリーの一部であり、教師あ
weighted avg 0.84 0.83 0.83 1199
```
✅ [サポートベクトルについて学ぶ](https://scikit-learn.org/stable/modules/svm.html#svm)
✅ [サポートベクターについて学ぶ](https://scikit-learn.org/stable/modules/svm.html#svm)
## アンサンブル分類器
前回のテストは非常に良好でしたが、最後まで道筋をたどってみましょう。ランダムフォレストとAdaBoostという「アンサンブル分類器」を試してみます。
前回の結果は良好でしたが、一番最後のパスに従って「アンサンブル分類器」、特にRandom ForestとAdaBoostを試しましょう
```python
'RFST': RandomForestClassifier(n_estimators=100),
'ADA': AdaBoostClassifier(n_estimators=100)
```
結果は非常に良好で、特にランダムフォレストが優れています:
結果は非常に良好で、特にRandom Forestが優れています
```output
Accuracy (train) for RFST: 84.5%
@ -212,29 +212,31 @@ weighted avg 0.73 0.72 0.72 1199
✅ [アンサンブル分類器について学ぶ](https://scikit-learn.org/stable/modules/ensemble.html)
この機械学習の方法は「複数の基本推定器の予測を組み合わせる」ことでモデルの品質を向上させます。この例では、ランダムツリーとAdaBoostを使用しました。
この機械学習の方法は「複数の基本推定器の予測を組み合わせる」ことでモデルの品質を向上させます。例ではRandom TreesとAdaBoostを使いました。
- [ランダムフォレスト](https://scikit-learn.org/stable/modules/ensemble.html#forest)は平均化法であり、ランダム性を加えた「決定木」の「森」を構築して過学習を防ぎます。n_estimatorsパラメータは木の数を設定します。
- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest) は平均化手法で、「決定木」の「森林」を作り、過学習を避けるためにランダム性を注入します。n_estimatorsは木の数に設定します。
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html)はデータセットに分類器を適用し、その分類器のコピーを同じデータセットに適用します。誤分類された項目の重みを調整し、次の分類器の適合を改善します。
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) はデータセットに対して分類器を訓練し、その分類器のコピーを同じデータセットに適用します。誤分類された項目の重みを重視し、次の分類器の適合を調整してエラーを修正します。
---
## 🚀チャレンジ
これらの技術には多くのパラメータがあり、それぞれを調整することができます。各技術のデフォルトパラメータを調査し、これらのパラメータを調整することでモデルの品質にどのような影響があるかを考えてみましょう。
これらの手法は多くのパラメータを持っており、調整が可能です。それぞれのデフォルトパラメータを調べ、パラメータの調整がモデルの品質にどのような意味を持つか考えてみましょう。
## [講義後クイズ](https://ff-quizzes.netlify.app/en/ml/)
## [講義後クイズ](https://ff-quizzes.netlify.app/en/ml/)
## 復習と自己学習
## 復習&自主学習
れらのレッスンには専門用語が多く含まれているため、[この用語集](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott)を確認してみてください!
のレッスンには多くの専門用語が登場しますので、[こちらの用語集](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott)をざっと確認してみてください!
## 課題
[パラメータ調整](assignment.md)
[パラメータ遊び](assignment.md)
---
**免責事項**:
この文書は、AI翻訳サービス [Co-op Translator](https://github.com/Azure/co-op-translator) を使用して翻訳されています。正確性を期すよう努めておりますが、自動翻訳には誤りや不正確な表現が含まれる可能性があります。元の言語で記載された原文が正式な情報源とみなされるべきです。重要な情報については、専門の人間による翻訳を推奨します。本翻訳の利用に起因する誤解や誤認について、当方は一切の責任を負いません。
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免責事項**
本書類はAI翻訳サービス「Co-op Translator」https://github.com/Azure/co-op-translatorを使用して翻訳されました。正確性を期しておりますが、自動翻訳には誤りや不正確な部分が含まれる場合があります。原文の母国語による文書が正式な情報源とみなされるべきです。重要な情報については、専門の人間による翻訳を推奨します。本翻訳の利用により生じたいかなる誤解や誤訳に関しても、当方は責任を負いかねます。
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -3,7 +3,9 @@
{
"cell_type": "markdown",
"metadata": {},
"source": []
"source": [
"# 分類モデルの構築\n"
]
},
{
"cell_type": "code",
@ -114,15 +116,15 @@
}
],
"source": [
"cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_feature_df.head()"
"cuisines_features_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_features_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**免責事項**: \nこの文書は、AI翻訳サービス [Co-op Translator](https://github.com/Azure/co-op-translator) を使用して翻訳されています。正確性を追求しておりますが、自動翻訳には誤りや不正確さが含まれる可能性があります。元の言語で記載された原文が正式な情報源と見なされるべきです。重要な情報については、専門の人間による翻訳を推奨します。この翻訳の使用に起因する誤解や誤訳について、当社は一切の責任を負いません。\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**免責事項** \n本書類はAI翻訳サービス[Co-op Translator](https://github.com/Azure/co-op-translator)を使用して翻訳されています。正確性には努めておりますが、自動翻訳には誤りや不正確な部分が含まれる可能性があります。原文の言語による文書が正式な情報源として優先されます。重要な情報については、専門の人間による翻訳を推奨いたします。本翻訳の利用に起因するいかなる誤解や誤訳についても、一切の責任を負いかねますのでご了承ください。\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -150,12 +152,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "15a83277036572e0773229b5f21c1e12",
"translation_date": "2025-09-04T02:32:03+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "ja"
}
},
"nbformat": 4,

@ -2,7 +2,7 @@
"cells": [
{
"source": [
"より多くの分類モデルを構築する\n"
"# さらに多くの分類モデルを構築する\n"
],
"cell_type": "markdown",
"metadata": {}
@ -116,15 +116,15 @@
}
],
"source": [
"cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_feature_df.head()"
"cuisines_features_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_features_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"さまざまな分類器を試す\n"
"# 異なる分類器を試す\n"
]
},
{
@ -148,7 +148,7 @@
"metadata": {},
"outputs": [],
"source": [
"X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)"
"X_train, X_test, y_train, y_test = train_test_split(cuisines_features_df, cuisines_label_df, test_size=0.3)"
]
},
{
@ -263,7 +263,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**免責事項**: \nこの文書は、AI翻訳サービス [Co-op Translator](https://github.com/Azure/co-op-translator) を使用して翻訳されています。正確性を期すよう努めておりますが、自動翻訳には誤りや不正確な表現が含まれる可能性があります。元の言語で記載された原文を公式な情報源としてご参照ください。重要な情報については、専門の人間による翻訳を推奨します。本翻訳の利用に起因する誤解や誤認について、当社は一切の責任を負いません。\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**免責事項** \n本書類はAI翻訳サービス「Co-op Translator」https://github.com/Azure/co-op-translatorを使用して翻訳されています。正確性の向上に努めておりますが、自動翻訳には誤りや不正確な部分が含まれる場合があります。原文の言語によるオリジナル文書が権威ある情報源としてご確認ください。重要な情報については、専門の人間による翻訳を推奨します。本翻訳の利用により生じたいかなる誤解や誤訳についても、当方は責任を負いかねます。\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -291,12 +291,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "7ea2b714669c823a596d986ba2d5739f",
"translation_date": "2025-09-04T02:32:31+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "ja"
}
},
"nbformat": 4,

@ -8,78 +8,88 @@
[![GitHub forks](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/)
[![GitHub stars](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/)
### 🌐 多言語サポート
### 🌐 多言語対応
#### GitHub Actionによるサポート(自動で常に最新)
#### GitHub Action経由でサポート(自動化&常に最新)
<!-- CO-OP TRANSLATOR LANGUAGES TABLE START -->
[アラビア語](../ar/README.md) | [ベンガル語](../bn/README.md) | [ブルガリア語](../bg/README.md) | [ビルマ語 (ミャンマー)](../my/README.md) | [中国語(簡体字)](../zh-CN/README.md) | [中国語(繁体字、香港)](../zh-HK/README.md) | [中国語(繁体字、マカオ)](../zh-MO/README.md) | [中国語(繁体字、台湾)](../zh-TW/README.md) | [クロアチア語](../hr/README.md) | [チェコ語](../cs/README.md) | [デンマーク語](../da/README.md) | [オランダ語](../nl/README.md) | [エストニア語](../et/README.md) | [フィンランド語](../fi/README.md) | [フランス語](../fr/README.md) | [ドイツ語](../de/README.md) | [ギリシャ語](../el/README.md) | [ヘブライ語](../he/README.md) | [ヒンディー語](../hi/README.md) | [ハンガリー語](../hu/README.md) | [インドネシア語](../id/README.md) | [イタリア語](../it/README.md) | [日本語](./README.md) | [カンナダ語](../kn/README.md) | [韓国語](../ko/README.md) | [リトアニア語](../lt/README.md) | [マレー語](../ms/README.md) | [マラヤーラム語](../ml/README.md) | [マラーティー語](../mr/README.md) | [ネパール語](../ne/README.md) | [ナイジェリア・ピジン語](../pcm/README.md) | [ノルウェー語](../no/README.md) | [ペルシャ語(ファルシー)](../fa/README.md) | [ポーランド語](../pl/README.md) | [ポルトガル語(ブラジル)](../pt-BR/README.md) | [ポルトガル語(ポルトガル)](../pt-PT/README.md) | [パンジャブ語(グルムキー)](../pa/README.md) | [ルーマニア語](../ro/README.md) | [ロシア語](../ru/README.md) | [セルビア語(キリル文字)](../sr/README.md) | [スロバキア語](../sk/README.md) | [スロベニア語](../sl/README.md) | [スペイン語](../es/README.md) | [スワヒリ語](../sw/README.md) | [スウェーデン語](../sv/README.md) | [タガログ語(フィリピン](../tl/README.md) | [タミル語](../ta/README.md) | [テルグ語](../te/README.md) | [タイ語](../th/README.md) | [トルコ語](../tr/README.md) | [ウクライナ語](../uk/README.md) | [ウルドゥー語](../ur/README.md) | [ベトナム語](../vi/README.md)
[アラビア語](../ar/README.md) | [ベンガル語](../bn/README.md) | [ブルガリア語](../bg/README.md) | [ビルマ語(ミャンマー)](../my/README.md) | [中国語(簡体字)](../zh-CN/README.md) | [中国語(繁体字、香港)](../zh-HK/README.md) | [中国語(繁体字、マカオ)](../zh-MO/README.md) | [中国語(繁体字、台湾)](../zh-TW/README.md) | [クロアチア語](../hr/README.md) | [チェコ語](../cs/README.md) | [デンマーク語](../da/README.md) | [オランダ語](../nl/README.md) | [エストニア語](../et/README.md) | [フィンランド語](../fi/README.md) | [フランス語](../fr/README.md) | [ドイツ語](../de/README.md) | [ギリシャ語](../el/README.md) | [ヘブライ語](../he/README.md) | [ヒンディー語](../hi/README.md) | [ハンガリー語](../hu/README.md) | [インドネシア語](../id/README.md) | [イタリア語](../it/README.md) | [日本語](./README.md) | [カンナダ語](../kn/README.md) | [韓国語](../ko/README.md) | [リトアニア語](../lt/README.md) | [マレー語](../ms/README.md) | [マラヤーラム語](../ml/README.md) | [マラーティー語](../mr/README.md) | [ネパール語](../ne/README.md) | [ナイジェリア・ピジン語](../pcm/README.md) | [ノルウェー語](../no/README.md) | [ペルシャ語(ファルシー)](../fa/README.md) | [ポーランド語](../pl/README.md) | [ポルトガル語(ブラジル)](../pt-BR/README.md) | [ポルトガル語(ポルトガル)](../pt-PT/README.md) | [パンジャブ語(グルムキー)](../pa/README.md) | [ルーマニア語](../ro/README.md) | [ロシア語](../ru/README.md) | [セルビア語(キリル文字)](../sr/README.md) | [スロバキア語](../sk/README.md) | [スロベニア語](../sl/README.md) | [スペイン語](../es/README.md) | [スワヒリ語](../sw/README.md) | [スウェーデン語](../sv/README.md) | [タガログ語(フィリピン](../tl/README.md) | [タミル語](../ta/README.md) | [テルグ語](../te/README.md) | [タイ語](../th/README.md) | [トルコ語](../tr/README.md) | [ウクライナ語](../uk/README.md) | [ウルドゥー語](../ur/README.md) | [ベトナム語](../vi/README.md)
> **ローカルでクローンしたいですか?**
> 本リポジトリには50以上の言語の翻訳が含まれており、ダウンロードサイズが大きくなります。翻訳なしでクローンするには、スパースチェックアウトを使用してください
> **ローカルでのクローンを希望しますか?**
>
> このリポジトリは50以上の言語翻訳を含んでいるため、ダウンロードサイズが大幅に増加します。翻訳なしでクローンしたい場合は、スパースチェックアウトを使用してください
>
> **Bash / macOS / Linux:**
> ```bash
> git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git
> cd ML-For-Beginners
> git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'
> ```
> これにより、コースを完了するために必要なすべてがより高速にダウンロードできます。
>
> **CMDWindows:**
> ```cmd
> git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git
> cd ML-For-Beginners
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ```
>
> これで、コースを完了するために必要なものをより高速にダウンロードできます。
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
#### コミュニティに参加する
#### コミュニティに参加しよう
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
DiscordではAI学習シリーズを開催中です。詳細と参加は[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を使ったデータサイエンスのコツやヒントをお届けします。
![Learn with AI series](../../translated_images/ja/3.9b58fd8d6c373c20.webp)
# 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)もご利用ください
世界各地のデータにクラシックな技術を適用しながら、共に世界を旅しましょう。各レッスンには、事前・事後クイズ、手順書、解答例、課題などが含まれています。プロジェクト型の教育法で学習しながら実践するため、新しいスキルが身につきやすい構成です。
世界各地のデータにこれらのクラシックな手法を適用しながら、一緒に世界を旅しましょう。各レッスンには、事前・事後のクイズ、レッスンの解説、解答例、課題などが含まれます。私たちのプロジェクトベースの教育方針は、学びながら作ることを可能にし、新しいスキルの定着に効果的です。
**✍️ 心より感謝を込めて著者の皆様へ** 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、Imura Tomomi、Cassie Breviu、Dmitry Soshnikov、Chris Noring、Anirban Mukherjee、Ornella Altunyan、Ruth Yakubu、Amy Boyd
**🎨 イラストレーターの皆様にも感謝** Tomomi Imura, Dasani Madipalli, Jen Looper
**🎨 イラストレーターへの感謝**Imura Tomomi、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の著者、レビュアー、コンテンツ提供者の皆さん、特にRishit Dagli、Muhammad Sakib Khan Inan、Rohan Raj、Alexandru Petrescu、Abhishek Jaiswal、Nawrin Tabassum、Ioan Samuila、Snigdha Agarwal
**🤩 Rレッスンに関してはMicrosoft Student AmbassadorsのEric Wanjau, Jasleen Sondhi, Vidushi Guptaにも大変感謝**
**🤩 加えて、Microsoft Student Ambassadors Eric Wanjau、Jasleen Sondhi、Vidushi GuptaへRレッスンに関する特別な感謝!**
# はじめに
以下の手順で進めてください:
1. **リポジトリをフォーク**ページ右上の「Fork」ボタンをクリックしてください
2. **リポジトリをクローン** `git clone https://github.com/microsoft/ML-For-Beginners.git`
以下の手順に従ってください:
1. **リポジトリをフォーク**このページ右上の「Fork」ボタンをクリックします
2. **リポジトリをクローン** `git clone https://github.com/microsoft/ML-For-Beginners.git`
> [このコースのその他リソースはMicrosoft Learnコレクションで確認できます](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> [このコースの追加リソースはMicrosoft Learnのコレクションにあります](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> 🔧 **困ったときは?** インストール・セットアップ・レッスン実行時のよくある問題は[トラブルシューティングガイド](TROUBLESHOOTING.md)を参照ください。
> 🔧 **困ったときは?** インストール・セットアップ・レッスン実行に関する一般的な問題は[トラブルシューティングガイド](TROUBLESHOOTING.md)を参照してください。
**[学生の皆さん](https://aka.ms/student-page)** このカリキュラムを使うには、自分のGitHubアカウントにリポジトリをフォークし、一人またはグループで演習を完了してください:
**[学生向け](https://aka.ms/student-page)**このカリキュラムを利用するには、リポジトリ全体を自身のGitHubアカウントにフォークし、個人またはグループで練習問題を解いてください:
- 事前講義クイズを受ける
- 講義を読み、活動を完了しながら各知識チェックで一時停止して考える
- 解答コードを実行するより、自分で理解してプロジェクトを作ってみよう。ただし、解答コードは各プロジェクト型レッスンの `/solution` フォルダにあります。
- 講義後クイズを受ける
- チャレンジをクリアする
- 課題を提出する
- レッスングループの完了後は[ディスカッションボード](https://github.com/microsoft/ML-For-Beginners/discussions)を訪れ、「大声で学ぶ」ために該当のPATルーブリックを記入してください。PATは学習進捗を評価するためのルーブリックです。また他のPATにリアクションして共に学びましょう。
- レクチャー前のクイズから始めます
- レクチャーを読み、知識チェック時に立ち止まりながらアクティビティを完了してください
- 解答コードを実行するのではなく、レッスンを理解してプロジェクトを作成しようと試みてください。ただし解答コードは各プロジェクト型レッスンの`/solution`フォルダにあります。
- レクチャー後のクイズを受けます
- チャレンジに取り組みます
- 課題を完了します
- レッスングループ了後は[ディスカッションボード](https://github.com/microsoft/ML-For-Beginners/discussions)にアクセスし、該当するPATルーブリックに「学びを発信」してください。PATProgress 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のYouTubeチャンネル上のML for Beginnersプレイリスト](https://aka.ms/ml-beginners-videos)からご覧ください。下の画像をクリックするとアクセスできます
一部のレッスンは短い動画で提供されています。各レッスン内、または[Microsoft Developer YouTubeチャンネルのML for Beginnersプレイリスト](https://aka.ms/ml-beginners-videos)でご覧になれます。下の画像をクリックしてください
[![ML for beginners banner](../../translated_images/ja/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
@ -89,81 +99,80 @@ MicrosoftのCloud Advocatesは、**機械学習**に関する12週間、26レッ
[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
**Gif 制作** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
**Gif 制作** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
> 🎥 上の画像をクリックすると、プロジェクトと制作者の動画が視聴できます!
> 🎥 上の画像をクリックするとプロジェクトと制作者紹介の動画が見られます!
---
## 教育方針
本カリキュラムでは「実践的なプロジェクトベース」と「頻繁なクイズ」を教育理念として採用しています。また、カリキュラム全体にわたる共通の**テーマ**で統一感を持たせています。
このカリキュラムの構築にあたり、2つの教育方針を選びましたハンズオンの**プロジェクトベース**であること、そして**頻繁なクイズ**を含むことです。また、一貫性のある共通の**テーマ**を持たせています。
内容をプロジェクトに合わせることで、学習者の関与を高め、概念の定着を促進します。クラス前の軽いクイズは学習の意図付けに、クラス後のクイズは理解の強化に役立ちます。本カリキュラムは柔軟かつ楽しく、全体または部分的に受講可能です。プロジェクトは小さく始まり、12週間の最後にはより複雑になります。さらに、実際の機械学習応用例をまとめた後書きも含まれており、追加課題やディスカッションの素材として利用できます。
コンテンツがプロジェクトと連動することで、学習の興味が増し、概念の定着が促進されます。加えて、授業前の低リスクなクイズは学習意図を明確にし、授業後のクイズは理解の定着を助けます。このカリキュラムは柔軟で楽しく設計されており、全てまたは一部だけを受講することができます。プロジェクトは小さく始まり、12週の終わりにはより複雑になります。さらに現実世界のML応用についての追補も含まれており、追加の単位やディスカッションの素材として利用可能です。
> [行動規範](CODE_OF_CONDUCT.md)、[参加方法](CONTRIBUTING.md)、[翻訳ガイドライン](TRANSLATIONS.md)、[トラブルシューティング](TROUBLESHOOTING.md)をご覧ください。建設的なフィードバックをお待ちしています!
> [行動規範](CODE_OF_CONDUCT.md)、[貢献ガイド](CONTRIBUTING.md)、[翻訳について](TRANSLATIONS.md)、[トラブルシューティング](TROUBLESHOOTING.md)もご覧ください。建設的なフィードバックをお待ちしています!
## 各レッスンに含まれるもの
- 任意のスケッチノート
- 任意の補足動画
- 動画解説(一部のレッスンのみ)
- [事前講義ウォームアップクイズ](https://ff-quizzes.netlify.app/en/ml/)
- 書面によるレッスン
- プロジェクト型レッスンでは、プロジェクト作成手順の詳細ガイド
- [レクチャー前のウォームアップクイズ](https://ff-quizzes.netlify.app/en/ml/)
- レッスン文書
- プロジェクトベースのレッスンにはステップバイステップのプロジェクト構築ガイド
- 知識チェック
- チャレンジ課題
- 補足資料
- チャレンジ
- 補足読書資料
- 課題
- [事後講義クイズ](https://ff-quizzes.netlify.app/en/ml/)
> **言語についての注意**これらのレッスンは主にPythonで書かれていますが、多くはRでも利用可能です。Rレッスンを行うには、`/solution`フォルダー内のRレッスンを探してください。Rレッスンファイルは`.rmd`拡張子の**R Markdown**ファイルで、これはRまたは他言語の`コードチャンク`と`YAMLヘッダー`PDF等の出力形式を指定をMarkdown文書に埋め込んだものです。コード、結果、考えをMarkdownで記述できるため、データサイエンスに最適な著述フレームワークとなっています。また、R MarkdownはPDF、HTML、Wordなどの形式にレンダリング可能です。
> **クイズについての注意**: すべてのクイズは[Quiz Appフォルダー](../../quiz-app)に含まれており、3問ずつの全52クイズがあります。レッスン内でリンクされていますが、クイズアプリはローカルでも実行可能です。ローカルホストやAzureへのデプロイ方法は`quiz-app`フォルダー内の指示に従ってください。
| レッスン番号 | トピック | レッスングループ | 学習目標 | リンクされたレッスン | 著者 |
| :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ---------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: |
| 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) | 機械学習準備のためのデータ可視化とクリーニング | [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) | 簡単なボットを作成しながら自然言語処理の基本を学ぶ | [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) | サポートベクター回帰(SVR)を使った時系列予測 | [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) | Responsible 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)
- [レクチャー後のクイズ](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 folder](../../quiz-app)内にあり、各3問の全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-平均法クラスタリング手法を探る | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | 自然言語処理入門 ☕️ | [Natural language processing](6-NLP/README.md) | シンプルなボットの構築でNLPの基礎を学ぶ | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | 一般的なNLPタスク ☕️ | [Natural language processing](6-NLP/README.md) | 言語構造処理に必要なよくあるタスクを理解しNLP知識を深める | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | 翻訳と感情分析 ♥️ | [Natural language processing](6-NLP/README.md) | ジェーン・オースティンを用いた翻訳と感情分析 | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | ヨーロッパのロマンチックホテル ♥️ | [Natural language processing](6-NLP/README.md) | ホテルレビュー1を使った感情分析 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | ヨーロッパのロマンチックホテル ♥️ | [Natural language processing](6-NLP/README.md) | ホテルレビュー2を使った感情分析 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | 時系列予測入門 | [Time series](7-TimeSeries/README.md) | 時系列予測の入門 | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ 世界の電力使用量 ⚡️ - ARIMAによる時系列予測 | [Time series](7-TimeSeries/README.md) | ARIMAによる時系列予測 | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ 世界の電力使用量 ⚡️ - SVRによる時系列予測 | [Time series](7-TimeSeries/README.md) | サポートベクター回帰による時系列予測 | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | 強化学習の紹介 | [Reinforcement learning](8-Reinforcement/README.md) | Q-Learningを用いた強化学習の紹介 | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | ピーターがオオカミを避けるのを助けよう!🐺 | [Reinforcement learning](8-Reinforcement/README.md) | 強化学習用Gym | [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) | チーム |
| 補遺 | RAIダッシュボードを使ったMLモデルのデバッグ | [ML in the Wild](9-Real-World/README.md) | Responsible 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`.
このドキュメントをオフラインで閲覧するには、[Docsify](https://docsify.js.org/#/)を使用します。このリポジトリをフォークし、ローカルマシンに[Docsifyをインストール](https://docsify.js.org/#/quickstart)してから、このリポジトリのルートフォルダーで `docsify serve` を入力します。Webサイトはローカルホストのポート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
@ -180,7 +189,7 @@ MicrosoftのCloud Advocatesは、**機械学習**に関する12週間、26レッ
---
### 生成AI シリーズ
### ジェネレーティブAIシリーズ
[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
@ -199,25 +208,30 @@ MicrosoftのCloud Advocatesは、**機械学習**に関する12週間、26レッ
---
### Copilot シリーズ
### コパイロットシリーズ
[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst)
<!-- CO-OP TRANSLATOR OTHER COURSES END -->
## ヘルプを得るには
## ヘルプを得る
AI アプリの構築で行き詰まったり質問がある場合は、仲間の学習者や経験豊富な開発者たちと一緒に MCP について議論に参加しましょう。ここは質問が歓迎され、知識が自由に共有される支援的なコミュニティです。
AIアプリの開発で行き詰まったり質問がある場合は、MCPの仲間の学習者や経験豊富な開発者たちとのディスカッションに参加してください。質問が歓迎され、知識が自由に共有されるサポートコミュニティです。
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
製品のフィードバックやビルド中のエラーがある場合は、こちらを訪問してください:
製品のフィードバックや開発中のエラーがある場合は、以下を訪問してください:
[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## 追加の学習のコツ
- より良い理解のために各レッスン後にノートブックを復習しましょう。
- 自分でアルゴリズムの実装を練習しましょう。
- 学んだ概念を使って実世界のデータセットを探求しましょう。
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免責事項**
本書類はAI翻訳サービス「[Co-op Translator](https://github.com/Azure/co-op-translator)」を使用して翻訳されました。正確性の確保に努めておりますが、自動翻訳には誤りや不正確な箇所が含まれる場合があります。正式な情報は原文の言語による文書を権威ある資料としてご参照ください。重要な情報については、専門の人間による翻訳を推奨いたします。本翻訳の利用により生じたいかなる誤解や解釈の相違についても、当方は一切責任を負いかねます。
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
本書類はAI翻訳サービス「Co-op Translator」https://github.com/Azure/co-op-translatorを使用して翻訳されています。正確性には努めておりますが、自動翻訳には誤りや不正確な部分が含まれる可能性があることをご了承ください。原文の言語による文書が権威ある情報源とみなされるべきです。重要な情報については、専門の人間による翻訳を推奨します。本翻訳の使用に起因する誤解や解釈の相違について、当社は一切の責任を負いかねます。
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -30,8 +30,8 @@
"language_code": "ko"
},
"1-Introduction/3-fairness/assignment.md": {
"original_hash": "dbda60e7b1fe5f18974e7858eff0004e",
"translation_date": "2025-09-03T23:31:20+00:00",
"original_hash": "c81d9affadb89d017d610eadeb6c84f9",
"translation_date": "2026-02-28T10:10:04+00:00",
"source_file": "1-Introduction/3-fairness/assignment.md",
"language_code": "ko"
},
@ -90,8 +90,8 @@
"language_code": "ko"
},
"2-Regression/3-Linear/README.md": {
"original_hash": "40e64f004f3cb50aa1d8661672d3cd92",
"translation_date": "2025-09-05T10:37:57+00:00",
"original_hash": "9a8359f1945bd3beccccb2b46592580e",
"translation_date": "2026-02-28T10:12:03+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "ko"
},
@ -186,8 +186,8 @@
"language_code": "ko"
},
"4-Classification/3-Classifiers-2/README.md": {
"original_hash": "49047911108adc49d605cddfb455749c",
"translation_date": "2025-09-05T10:52:05+00:00",
"original_hash": "d94438d71164b0ff68002812aed1a8b4",
"translation_date": "2026-02-28T10:12:24+00:00",
"source_file": "4-Classification/3-Classifiers-2/README.md",
"language_code": "ko"
},
@ -197,12 +197,24 @@
"source_file": "4-Classification/3-Classifiers-2/assignment.md",
"language_code": "ko"
},
"4-Classification/3-Classifiers-2/notebook.ipynb": {
"original_hash": "624ca6cf73d3548ff1b3059e413fa4cd",
"translation_date": "2026-02-28T10:05:33+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "ko"
},
"4-Classification/3-Classifiers-2/solution/Julia/README.md": {
"original_hash": "a39c15d63f3b2795ee2284a82b986b93",
"translation_date": "2025-09-04T00:00:51+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/Julia/README.md",
"language_code": "ko"
},
"4-Classification/3-Classifiers-2/solution/notebook.ipynb": {
"original_hash": "70f41fe4fd4253adb44cd9d291406e4f",
"translation_date": "2026-02-28T10:05:39+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "ko"
},
"4-Classification/4-Applied/README.md": {
"original_hash": "61bdec27ed2da8b098cd9065405d9bb0",
"translation_date": "2025-09-05T10:51:38+00:00",
@ -540,8 +552,8 @@
"language_code": "ko"
},
"README.md": {
"original_hash": "2f594ee136e3127a47f56d80055227bc",
"translation_date": "2026-02-06T07:50:06+00:00",
"original_hash": "3a0286e1c4858e79ff54f080dadc1426",
"translation_date": "2026-02-28T10:09:58+00:00",
"source_file": "README.md",
"language_code": "ko"
},

@ -1,16 +1,18 @@
# 책임 있는 AI 도구 상자 탐색하기
# 책임 있는 AI 도구 상자 탐색
## 지침
이 수업에서는 책임 있는 AI 도구 상자에 대해 배웠습니다. 이는 "데이터 과학자가 AI 시스템을 분석하고 개선할 수 있도록 돕는 오픈 소스, 커뮤니티 주도 프로젝트"입니다. 이번 과제에서는 RAI 도구 상자의 [노트북](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/getting-started.ipynb) 중 하나를 탐색하고, 그 결과를 논문이나 발표 자료로 작성하세요.
수업에서는 데이터 과학자가 AI 시스템을 분석하고 개선하는 데 도움을 주기 위한 "오픈 소스, 커뮤니티 주도 프로젝트"인 책임 있는 AI 도구 상자에 대해 배웠습니다. 이번 과제에서는 RAI 도구 상자의 [노트북](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/tabular/getting-started.ipynb) 중 하나를 탐색하고, 실행 결과를 논문이나 발표 자료로 보고하십시오.
## 평가 기준
| 기준 | 우수 | 적절 | 개선 필요 |
| -------- | --------- | -------- | ----------------- |
| | Fairlearn의 시스템, 실행한 노트북, 실행 결과에서 도출된 결론을 논의하는 논문 또는 파워포인트 발표 자료가 제출됨 | 결론 없이 논문만 제출됨 | 논문이 제출되지 않음 |
| | Fairlearn의 시스템, 실행한 노트북, 실행 결과에서 도출된 결론을 논의하는 논문 또는 파워포인트 발표 자료가 제출됨 | 결론 없이 논문이 제출됨 | 논문이 제출되지 않음 |
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**면책 조항**:
이 문서는 AI 번역 서비스 [Co-op Translator](https://github.com/Azure/co-op-translator)를 사용하여 번역되었습니다. 정확성을 위해 최선을 다하고 있지만, 자동 번역에는 오류나 부정확성이 포함될 수 있습니다. 원본 문서의 원어 버전이 권위 있는 출처로 간주되어야 합니다. 중요한 정보의 경우, 전문적인 인간 번역을 권장합니다. 이 번역 사용으로 인해 발생하는 오해나 잘못된 해석에 대해 책임을 지지 않습니다.
이 문서는 AI 번역 서비스 [Co-op Translator](https://github.com/Azure/co-op-translator)를 사용하여 번역되었습니다. 정확성을 위해 최선을 다하고 있으나, 자동 번역은 오류나 부정확한 내용이 포함될 수 있음을 유의하시기 바랍니다. 원본 문서의 원어 버전이 권위 있는 출처로 간주되어야 합니다. 중요한 정보의 경우 전문가의 인간 번역을 권장합니다. 본 번역의 사용으로 인한 어떠한 오해나 오역에 대해서도 당사는 책임을 지지 않습니다.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,86 +1,98 @@
# Scikit-learn을 사용하여 회귀 모델 구축: 네 가지 방법으로 회귀 분석하기
# Scikit-learn을 사용하여 회귀 모델 구축하기: 회귀의 네 가지 방법
![선형 회귀와 다항 회귀 인포그래픽](../../../../2-Regression/3-Linear/images/linear-polynomial.png)
> 인포그래픽 제작: [Dasani Madipalli](https://twitter.com/dasani_decoded)
## 초보자 주의사항
선형 회귀는 **수치 값**을 예측하고자 할 때 사용합니다(예: 주택 가격, 온도, 판매량).
입력 변수와 출력 간의 관계를 가장 잘 나타내는 직선을 찾는 방식으로 작동합니다.
이 수업에서는 좀 더 고급 회귀 기법을 탐구하기 전에 개념 이해에 집중합니다.
![선형 대 다항 회귀 인포그래픽](../../../../translated_images/ko/linear-polynomial.5523c7cb6576ccab.webp)
> 인포그래픽 출처: [Dasani Madipalli](https://twitter.com/dasani_decoded)
## [강의 전 퀴즈](https://ff-quizzes.netlify.app/en/ml/)
> ### [이 강의는 R에서도 제공됩니다!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
> ### [이 강의는 R 버전으로도 제공됩니다!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### 소개
지금까지 호박 가격 데이터셋을 사용하여 회귀 분석이 무엇인지 탐구하고, Matplotlib을 사용하여 시각화하는 방법을 배웠습니다.
지금까지 당신은 우리 수업 전반에 걸쳐 사용할 호박 가격 데이터로부터 회귀가 무엇인지 탐구했습니다. 또한 Matplotlib를 사용해 시각화해 보았습니다.
이제 머신러닝을 위한 회귀 분석을 더 깊이 탐구할 준비가 되었습니다. 시각화를 통해 데이터를 이해할 수 있지만, 머신러닝의 진정한 힘은 _모델 훈련_에서 나옵니다. 모델은 과거 데이터를 기반으로 데이터 간의 의존성을 자동으로 학습하며, 이전에 본 적 없는 새로운 데이터에 대한 결과를 예측할 수 있습니다.
이제 머신러닝을 위한 회귀를 더 깊게 학습할 준비가 되었습니다. 시각화는 데이터를 이해하는 데 도움을 주지만, 머신러닝의 진정한 힘은 _모델 학습_에 있습니다. 모델은 과거 데이터를 학습해 데이터 간의 관계를 자동으로 포착하며, 학습하지 않은 새로운 데이터에 대한 결과를 예측할 수 있게 해줍니다.
이번 강의에서는 두 가지 유형의 회귀 분석, 즉 _기본 선형 회귀__다항 회귀_에 대해 배우고, 이러한 기술의 수학적 기초를 살펴볼 것입니다. 이러한 모델을 사용하여 다양한 입력 데이터를 기반으로 호박 가격을 예측할 수 있습니다.
이번 수업에서는 _기본 선형 회귀__다항 회귀_ 두 가지 유형과 이 기법들의 수학적 배경에 관해 배웁니다. 이런 모델을 통해 다양한 입력 변수에 따라 호박 가격을 예측할 수 있게 됩니다.
[![초보자를 위한 머신러닝 - 선형 회귀 이해하기](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "초보자를 위한 머신러닝 - 선형 회귀 이해하기")
[![초보자 머신러닝 - 선형 회귀 이해하기](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](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`의 값을 나타냅니다.
>
>![기울기 계산](../../../../2-Regression/3-Linear/images/slope.png)
>
> 먼저 기울기 `b`를 계산합니다. 인포그래픽 제작: [Jen Looper](https://twitter.com/jenlooper)
> `X`독립 변수(설명 변수)이며, `Y`는 종속 변수입니다. 기울기를 나타내는 `b`와 y절편 `a``X=0`일 때 `Y`의 값입니다.
>
>![기울기 계산](../../../../translated_images/ko/slope.f3c9d5910ddbfcf9.webp)
>
> 먼저 기울기 `b`를 계산합니다. 인포그래픽 출처: [Jen Looper](https://twitter.com/jenlooper)
>
> 즉, 호박 데이터의 원래 질문인 "월별로 부셸당 호박 가격을 예측한다"를 참조하면, `X`는 가격을 나타내고 `Y`는 판매 월을 나타냅니다.
> 다시 말해 호박 데이터 문제에서 "한 달 단위로 버셜당 호박 가격을 예측"하는 것으로, `X`는 가격, `Y`는 판매 월을 나타낼 수 있습니다.
>
>![방정식 완성](../../../../2-Regression/3-Linear/images/calculation.png)
>![방정식 완성](../../../../translated_images/ko/calculation.a209813050a1ddb1.webp)
>
> `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
---|-------|-----------|---------|------|---------|-----------|------------|-------
@ -90,36 +102,36 @@ ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Pri
73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
> 데이터를 정리하는 코드는 [`notebook.ipynb`](../../../../2-Regression/3-Linear/notebook.ipynb)에 있습니다. 이전 강의와 동일한 정리 단계를 수행했으며, 다음 표현식을 사용하여 `DayOfYear` 열을 계산했습니다:
> 데이터 정제 코드는 [`notebook.ipynb`](notebook.ipynb)에 있습니다. 이전 강의와 동일한 정제 단계를 수행했고, `DayOfYear` 열은 다음 식으로 계산했습니다:
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
```
이제 선형 회귀의 수학적 기초를 이해했으니, 호박 패키지 중 가장 좋은 가격을 가진 패키지를 예측할 수 있는 회귀 모델을 만들어 봅시다. 휴일 호박 패치를 위해 호박을 구매하려는 사람은 패치에 필요한 호박 패키지 구매를 최적화하기 위해 이 정보를 원할 수 있습니다.
선형 회귀의 수학적 배경을 이해했다면, 이제 어느 호박 패키지가 가장 좋은 가격을 보일지 예측하는 회귀 모델을 만들어 봅시다. 휴일 호박 패치용 호박을 구매하는 사람에게 필요한 정보를 제공하는 것이 목표입니다.
## 상관관계 찾기
[![초보자를 위한 머신러닝 - 상관관계 찾기: 선형 회귀의 핵심](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "초보자를 위한 머신러닝 - 상관관계 찾기: 선형 회귀의 핵심")
[![초보자 머신러닝 - 상관관계 찾기: 선형 회귀의 핵심](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "초보자 머신러닝 - 상관관계 찾기: 선형 회귀의 핵심")
> 🎥 위 이미지를 클릭하면 상관관계에 대한 짧은 영상 개요를 볼 수 있습니다.
> 🎥 위 이미지를 클릭하면 상관관계에 관한 짧은 동영상을 볼 수 있습니다.
이전 강의에서 보았듯이, 월별 평균 가격은 다음과 같습니다:
앞선 강의에서 월별 평균 가격이 다음과 같음을 봤을 겁니다:
<img alt="월별 평균 가격" src="../../../../translated_images/ko/barchart.a833ea9194346d76.webp" width="50%"/>
이는 상관관계가 있을 가능성을 시사하며, `Month``Price` 또는 `DayOfYear``Price` 간의 관계를 예측하기 위해 선형 회귀 모델을 훈련시킬 수 있습니다. 아래는 후자의 관계를 보여주는 산점도입니다:
이는 상관관계가 다소 있음을 시사하며, `Month``Price` 또는 `DayOfYear``Price` 간의 관계를 예측하려 선형 회귀 모델을 훈련해볼 수 있음을 보여줍니다. 아래 산점도는 후자를 나타냅니다:
<img alt="가격 vs 연도의 일수 산점도" src="../../../../translated_images/ko/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
<img alt="가격 vs 연 일수 산점도" src="../../../../translated_images/ko/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
`corr` 함수를 사용하여 상관관계를 확인해 봅시다:
`corr` 함수를 이용하면 상관관계 정도를 알 수 있습니다:
```python
print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
```
상관관계는 `Month` 기준으로 -0.15, `DayOfYear` 기준으로 -0.17로 비교적 낮은 것 같습니다. 하지만 또 다른 중요한 관계가 있을 수 있습니다. 가격이 호박 품종에 따라 다른 클러스터를 형성하는 것처럼 보입니다. 이 가설을 확인하기 위해 각 호박 카테고리를 다른 색상으로 표시해 봅시다. `scatter` 플롯 함수에 `ax` 매개변수를 전달하여 모든 점을 동일한 그래프에 표시할 수 있습니다:
상관관계는 다소 작아서 `Month` 기준 -0.15, `DayOfMonth` 기준 -0.17 정도지만, 중요한 또 다른 관계가 있을지도 모릅니다. 서로 다른 호박 품종 별 가격 클러스터가 형성되어 보입니다. 이를 확인하려면 각 호박 품종을 다른 색상으로 표시해 봅시다. `scatter` 함수에 `ax` 파라미터를 넘겨 여러 데이터를 한 그래프에 겹쳐 그릴 수 있습니다:
```python
ax=None
@ -129,9 +141,9 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
ax = df.plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var)
```
<img alt="가격 vs 연도의 일수 산점도" src="../../../../translated_images/ko/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
<img alt="가격 vs 연중 일수 산점도 - 품종별 색상" src="../../../../translated_images/ko/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
조사 결과, 판매 날짜보다 품종이 전체 가격에 더 큰 영향을 미친다는 것을 알 수 있습니다. 이를 막대 그래프로 확인할 수 있습니다:
조사 결과 품종이 실제 판매 날짜보다 가격에 더 큰 영향을 미치는 것 같습니다. 다음 막대 그래프로도 볼 수 있습니다:
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
@ -139,32 +151,32 @@ new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
<img alt="품종별 가격 막대 그래프" src="../../../../translated_images/ko/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
이제 '파이 타입'이라는 특정 호박 품종에만 집중하여 날짜가 가격에 미치는 영향을 살펴봅시다:
지금은 한 가지 품종인 'pie type'에만 집중해 가격에 날짜가 미치는 영향을 살펴봅시다:
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price')
```
<img alt="파이 호박 가격 vs 연도의 일수 산점도" src="../../../../translated_images/ko/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
<img alt="가격 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()
```
또 다른 접근법은 빈 값을 해당 열의 평균값으로 채우는 것입니다.
또 다른 방법으로, 해당 열의 평균값으로 결측값을 채우는 방법도 있습니다.
## 간단한 선형 회귀
## 단순 선형 회귀
[![초보자를 위한 머신러닝 - Scikit-learn을 사용한 선형 및 다항 회귀](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "초보자를 위한 머신러닝 - Scikit-learn을 사용한 선형 및 다항 회귀")
[![초보자용 머신러닝 - Scikit-learn으로 선형 및 다항 회귀](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "초보자용 머신러닝 - Scikit-learn으로 선형 및 다항 회귀")
> 🎥 위 이미지를 클릭하면 Scikit-learn을 사용한 선형 및 다항 회귀에 대한 짧은 영상 개요를 볼 수 있습니다.
> 🎥 위 이미지를 클릭하면 선형 및 다항 회귀에 관한 간단한 영상 개요를 볼 수 있습니다.
선형 회귀 모델을 훈련시키기 위해 **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)
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
```
우리의 오류는 약 2포인트, 즉 약 17%로 보입니다. 그다지 좋지 않습니다. 모델 품질의 또 다른 지표는 **결정 계수**로, 다음과 같이 얻을 수 있습니다:
오차는 대략 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으로 꽤 낮은 편입니다.
또한 테스트 데이터를 회귀선과 함께 플롯하여 우리의 경우 회귀가 어떻게 작동하는지 더 잘 볼 수 있습니다:
또한 회귀선과 테스트 데이터를 함께 그려서 회귀가 어떻게 작동하는지 더 잘 볼 수 있습니다:
```python
plt.scatter(X_test,y_test)
plt.plot(X_test,pred)
```
```
<img alt="선형 회귀" src="../../../../translated_images/ko/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
<img alt="Linear regression" src="../../../../translated_images/ko/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
## 다항 회귀
## 다항 회귀 (Polynomial Regression)
선형 회귀의 또 다른 유형은 다항 회귀입니다. 때로는 변수 간에 선형 관계가 있을 수 있습니다. 예를 들어, 호박의 부피가 클수록 가격이 높아지는 경우처럼요. 하지만 때로는 이러한 관계를 평면이나 직선으로 나타낼 수 없습니다.
선형 회귀의 또 다른 유형은 다항 회귀입니다. 때로 변수들 간에 선형 관계가 존재하기도 하지만 — 예를 들어 부피가 큰 호박일수록 가격이 높음 — 때때로 이런 관계를 평면이나 직선으로 그릴 수 없을 수도 있습니다.
✅ [여기](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
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
```
```
`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`로 결과를 얻을 수 있습니다. 다음은 테스트 데이터와 근사 곡선을 보여주는 그래프입니다:
<img alt="다항 회귀" src="../../../../translated_images/ko/poly-results.ee587348f0f1f60b.webp" width="50%" />
<img alt="Polynomial regression" src="../../../../translated_images/ko/poly-results.ee587348f0f1f60b.webp" width="50%" />
다항 회귀를 사용하면 약간 낮은 MSE와 약간 높은 결정 계수를 얻을 수 있지만, 큰 차이는 없습니다. 다른 특성을 고려해야 합니다!
다항 회귀를 사용하면 평균 제곱 오차(MSE)가 약간 낮아지고 결정 계수가 높아지긴 하지만 크게 개선되지는 않습니다. 다른 특성들을 더 고려할 필요가 있습니다!
> 최소 호박 가격이 할로윈 즈음에 관찰된다는 것을 알 수 있습니다. 이를 어떻게 설명할 수 있을까요?
> 최소 호박 가격이 할로윈 즈음에 관찰됩니다. 이것을 어떻게 설명할 수 있을까요?
🎃 축하합니다! 파이 호박의 가격을 예측하는 데 도움을 줄 수 있는 모델을 만들었습니다. 아마도 모든 호박 종류에 대해 동일한 절차를 반복할 수 있겠지만, 이는 번거로울 것입니다. 이제 모델에서 호박 종류를 고려하는 방법을 배워봅시다!
🎃 축하합니다! 파이 호박의 가격을 예측하는 모델을 성공적으로 만들었습니다. 동일한 절차로 모든 호박 종류에 대해 반복할 수 있지만, 번거로울 수 있습니다. 이제 모델에 호박 품종을 반영하는 방법을 배워봅시다!
## 범주형 특성
## 범주형 특성 (Categorical Features)
이상적인 상황에서는 동일한 모델을 사용하여 다양한 호박 종류의 가격을 예측할 수 있기를 원합니다. 그러나 `Variety` 열은 `Month`와 같은 열과는 다릅니다. 이 열은 숫자가 아닌 값을 포함하고 있습니다. 이러한 열을 **범주형**이라고 합니다.
이상적인 상황에서 우리는 같은 모델로 다양한 호박 품종의 가격을 예측할 수 있기를 원합니다. 하지만 `Variety` 열은 `Month`와 같은 열과 다르게 숫자가 아닌 값을 포함하고 있습니다. 이러한 열을 **범주형(categorical)** 이라고 부릅니다.
[![초보자를 위한 ML - 선형 회귀를 사용한 범주형 특성 예측](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "초보자를 위한 ML - 선형 회귀를 사용한 범주형 특성 예측")
[![ML for beginners - Categorical Feature Predictions with Linear Regression](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
> 🎥 위 이미지를 클릭하면 범주형 특성을 사용하는 짧은 비디오 개요를 볼 수 있습니다.
> 🎥 위 이미지를 클릭하면 범주형 특성 사용에 대한 짧은 동영상 개요를 볼 수 있습니다.
여기에서 평균 가격이 종류에 따라 어떻게 달라지는지 확인할 수 있습니다:
아래 그래프는 품종에 따른 평균 가격 변화를 보여줍니다:
<img alt="종류별 평균 가격" src="../../../../translated_images/ko/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="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
----|-----------|-----------|--------------------------|----------
70 | 0 | 0 | 0 | 1
71 | 0 | 0 | 0 | 1
... | ... | ... | ... | ...
1738 | 0 | 1 | 0 | 0
1739 | 0 | 1 | 0 | 0
1740 | 0 | 1 | 0 | 0
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE
----|-----------|-----------|--------------------------|----------
70 | 0 | 0 | 0 | 1
71 | 0 | 0 | 0 | 1
... | ... | ... | ... | ...
1738 | 0 | 1 | 0 | 0
1739 | 0 | 1 | 0 | 0
1740 | 0 | 1 | 0 | 0
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
원-핫 인코딩된 종류를 입력으로 사용하여 선형 회귀를 학습시키려면, `X``y` 데이터를 올바르게 초기화하기만 하면 됩니다:
원-핫 인코딩된 품종을 입력값으로 하여 선형 회귀를 학습하려면, 단지 `X``y` 데이터를 올바르게 초기화하면 됩니다:
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
```
나머지 코드는 위에서 선형 회귀를 학습시키는 데 사용한 코드와 동일합니다. 이를 시도하면 평균 제곱 오차는 거의 동일하지만, 결정 계수가 훨씬 높아진다는 것을 (~77%) 확인할 수 있습니다. 더 정확한 예측을 얻으려면 `Month``DayOfYear`와 같은 숫자 특성뿐만 아니라 더 많은 범주형 특성을 고려할 수 있습니다. 하나의 큰 특성 배열을 얻으려면 `join`을 사용할 수 있습니다:
나머지 코드는 위에서 했던 선형 회귀 학습과 동일합니다. 시도해 보면 평균 제곱 오차는 거의 비슷하지만, 결정 계수가 훨씬 높아져 약 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)
# setup and train the pipeline
# 파이프라인 설정 및 훈련
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
# predict results for test data
# 테스트 데이터에 대한 결과 예측
pred = pipeline.predict(X_test)
# calculate MSE and determination
# MSE 및 결정 계수 계산
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
score = pipeline.score(X_train,y_train)
print('Model determination: ', score)
```
```
를 통해 거의 97%의 결정 계수와 MSE=2.23 (~8% 예측 오류)을 얻을 수 있습니다.
렇게 하면 거의 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)를 사용하여 번역되었습니다. 정확성을 위해 최선을 다하고 있으나, 자동 번역은 오류나 부정확성이 포함될 수 있음을 유의하시기 바랍니다. 원래 문서의 원문이 권위 있는 자료로 간주되어야 합니다. 중요한 정보의 경우, 전문적인 인간 번역을 권장합니다. 본 번역 사용으로 인해 발생하는 오해나 잘못된 해석에 대해 당사는 책임을 지지 않습니다.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,42 +1,42 @@
# 요리 분류기 2
# Cuisine classifiers 2
이 두 번째 분류 수업에서는 숫자 데이터를 분류하는 더 많은 방법을 탐구합니다. 또한 하나의 분류기를 선택하는 것이 다른 분류기를 선택하는 것에 비해 어떤 영향을 미치는지 배우게 됩니다.
이 두 번째 분류 수업에서는 숫자 데이터를 분류하는 더 많은 방법을 탐색합니다. 또한 한 분류기를 선택하는 것의 영향에 대해서도 배우게 됩니다.
## [강의 전 퀴즈](https://ff-quizzes.netlify.app/en/ml/)
## [전 퀴즈](https://ff-quizzes.netlify.app/en/ml/)
### 사전 요구 사항
### 전제 조건
이전 수업을 완료하고, 이 4개의 수업 폴더의 루트에 있는 `data` 폴더에 _cleaned_cuisines.csv_라는 정리된 데이터셋이 있다고 가정합니다.
이전 수업을 완료했고, 4개 수업 폴더의 루트에 있는 `data` 폴더에 _cleaned_cuisines.csv_라는 정리된 데이터셋이 있다고 가정합니다.
### 준비
_노트북.ipynb_ 파일에 정리된 데이터셋을 로드하고, 이를 X와 y 데이터프레임으로 나누어 모델 구축 프로세스를 준비했습니다.
정리된 데이터셋으로 _notebook.ipynb_ 파일을 로드했고, 모델 빌딩 과정에 대비해 X와 y 데이터프레임으로 분할해 두었습니다.
## 분류 지도
이전에 Microsoft의 치트 시트를 사용하여 데이터를 분류하는 다양한 옵션에 대해 배웠습니다. Scikit-learn은 더 세부적인 치트 시트를 제공하며, 이를 통해 분류기를 더 좁혀 선택할 수 있습니다:
이전에 Microsoft의 치트 시트를 사용해 데이터를 분류할 때 선택할 수 있는 여러 옵션에 대해 배웠습니다. Scikit-learn은 이와 유사하지만 더 세분화된 치트 시트를 제공하여 추정기(분류기라고도 함)를 더 좁히는 데 도움이 됩니다:
![Scikit-learn의 ML 지도](../../../../4-Classification/3-Classifiers-2/images/map.png)
> Tip: [온라인에서 이 지도를 방문](https://scikit-learn.org/stable/tutorial/machine_learning_map/)하여 경로를 클릭하며 문서를 읽어보세요.
![ML Map from Scikit-learn](../../../../translated_images/ko/map.e963a6a51349425a.webp)
> 팁: [이 지도를 온라인으로 방문](https://scikit-learn.org/stable/tutorial/machine_learning_map/)하여 경로를 클릭하며 문서를 읽어보세요.
### 계획
이 지도는 데이터를 명확히 이해한 후 경로를 따라 결정을 내리는 데 매우 유용합니다:
이 지도는 데이터를 명확히 이해했을 때 매우 유용하며, 경로를 따라 '걸어가며' 결정을 내릴 수 있습니다:
- 샘플이 50개 이상 있음
- 카테고리를 예측하고 싶음
- 라벨이 있는 데이터가 있음
- 샘플이 100K개 미만임
- ✨ Linear SVC를 선택할 수 있음
- 작동하지 않을 경우, 숫자 데이터가 있으므로
- ✨ KNeighbors Classifier를 시도 수 있음
- 작동하지 않을 경우, ✨ SVC와 ✨ Ensemble Classifiers를 시도할 수 있음
- 샘플 수가 >50개임
- 범주를 예측하고자 함
- 레이블이 지정된 데이터가 있음
- 샘플 수가 10만 개 미만임
- ✨ 선형 SVC를 선택할 수 있음
- 만약 작동하지 않으면, 숫자 데이터이므로
- ✨ KNeighbors Classifier를 시도해 볼 수 있음
- 이것도 작동하지 않으면 ✨ SVC와 ✨ Ensemble Classifiers를 시도
이 경로를 따라가는 것은 매우 유용합니다.
이 경로를 따라가면 매우 도움이 됩니다.
## 연습 - 데이터 나누기
## 연습 - 데이터 분할
이 경로를 따라가며 필요한 라이브러리를 가져오는 것으로 시작해야 합니다.
이 경로를 따라가려면 먼저 몇 가지 라이브러리를 가져오는 것으로 시작해야 합니다.
1. 필요한 라이브러리를 가져오세요:
@ -50,31 +50,31 @@ _노트북.ipynb_ 파일에 정리된 데이터셋을 로드하고, 이를 X와
import numpy as np
```
1. 학습 데이터와 테스트 데이터를 나누세요:
1. 훈련 데이터와 테스트 데이터를 분할하세요:
```python
X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
X_train, X_test, y_train, y_test = train_test_split(cuisines_features_df, cuisines_label_df, test_size=0.3)
```
## Linear SVC 분류기
## 선형 SVC 분류기
Support-Vector Clustering(SVC)는 Support-Vector 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 적용
분류기 배열을 생성하는 것으로 시작하세요. 테스트하면서 이 배열에 점진적으로 추가할 것입니다.
클래스 분류기 배열을 먼저 만드세요. 테스트하면서 점차 이 배열에 분류기를 추가할 것입니다.
1. Linear SVC로 시작하세요:
1. 선형 SVC로 시작하세요:
```python
C = 10
# Create different classifiers.
# 다양한 분류기를 만듭니다.
classifiers = {
'Linear SVC': SVC(kernel='linear', C=C, probability=True,random_state=0)
}
```
2. Linear SVC를 사용하여 모델을 학습시키고 보고서를 출력하세요:
2. 선형 SVC를 사용해 모델을 훈련하고 보고서를 출력하세요:
```python
n_classifiers = len(classifiers)
@ -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)를 사용하여 번역되었습니다. 정확성을 위해 노력하고 있으나, 자동 번역은 오류나 부정확성이 포함될 수 있음을 유의하시기 바랍니다. 원본 문서가 권위 있는 출처로 간주되어야 합니다. 중요한 정보의 경우에는 전문적인 인간 번역을 권장합니다. 본 번역의 사용으로 인해 발생하는 오해나 잘못된 해석에 대해 당사는 책임을 지지 않습니다.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -3,7 +3,9 @@
{
"cell_type": "markdown",
"metadata": {},
"source": []
"source": [
"# 분류 모델 구축\n"
]
},
{
"cell_type": "code",
@ -114,15 +116,15 @@
}
],
"source": [
"cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_feature_df.head()"
"cuisines_features_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_features_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**면책 조항**: \n이 문서는 AI 번역 서비스 [Co-op Translator](https://github.com/Azure/co-op-translator)를 사용하여 번역되었습니다. 정확성을 위해 최선을 다하고 있으나, 자동 번역에는 오류나 부정확성이 포함될 수 있습니다. 원본 문서를 해당 언어로 작성된 상태에서 권위 있는 자료로 간주해야 합니다. 중요한 정보의 경우, 전문적인 인간 번역을 권장합니다. 이 번역 사용으로 인해 발생하는 오해나 잘못된 해석에 대해 당사는 책임을 지지 않습니다. \n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**면책 조항**: \n본 문서는 AI 번역 서비스 [Co-op Translator](https://github.com/Azure/co-op-translator)를 사용하여 번역되었습니다. 정확성을 위해 노력하고 있으나, 자동 번역은 오류나 부정확성이 포함될 수 있음을 유의하시기 바랍니다. 원문 문서는 권위 있는 출처로 간주되어야 합니다. 중요한 정보에 대해서는 전문적인 인간 번역을 권장합니다. 본 번역 사용으로 인해 발생하는 오해나 잘못된 해석에 대해 당사는 책임을 지지 않습니다.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -150,12 +152,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "15a83277036572e0773229b5f21c1e12",
"translation_date": "2025-09-04T02:32:06+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "ko"
}
},
"nbformat": 4,

@ -1,7 +1,9 @@
{
"cells": [
{
"source": [],
"source": [
"# 더 많은 분류 모델 구축\n"
],
"cell_type": "markdown",
"metadata": {}
},
@ -114,15 +116,15 @@
}
],
"source": [
"cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_feature_df.head()"
"cuisines_features_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_features_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"다양한 분류기를 시도해보세요\n"
"# 다양한 분류기 시도하기\n"
]
},
{
@ -146,7 +148,7 @@
"metadata": {},
"outputs": [],
"source": [
"X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)"
"X_train, X_test, y_train, y_test = train_test_split(cuisines_features_df, cuisines_label_df, test_size=0.3)"
]
},
{
@ -261,7 +263,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**면책 조항**: \n이 문서는 AI 번역 서비스 [Co-op Translator](https://github.com/Azure/co-op-translator)를 사용하여 번역되었습니다. 정확성을 위해 최선을 다하고 있으나, 자동 번역에는 오류나 부정확성이 포함될 수 있습니다. 원본 문서의 원어 버전을 권위 있는 자료로 간주해야 합니다. 중요한 정보의 경우, 전문 번역가에 의한 번역을 권장합니다. 이 번역 사용으로 인해 발생하는 오해나 잘못된 해석에 대해 당사는 책임을 지지 않습니다. \n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**면책 조항**: \n본 문서는 AI 번역 서비스 [Co-op Translator](https://github.com/Azure/co-op-translator)를 사용하여 번역되었습니다. 정확성을 위해 노력하고 있으나, 자동 번역에는 오류나 부정확한 내용이 포함될 수 있음을 유의해 주시기 바랍니다. 원본 문서의 원어 버전을 권위 있는 출처로 간주해야 합니다. 중요한 정보의 경우 전문적인 인간 번역을 권장합니다. 본 번역의 사용으로 인한 오해나 잘못된 해석에 대해 당사는 책임을 지지 않습니다.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -289,12 +291,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "7ea2b714669c823a596d986ba2d5739f",
"translation_date": "2025-09-04T02:32:35+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "ko"
}
},
"nbformat": 4,

@ -10,76 +10,86 @@
### 🌐 다국어 지원
#### GitHub Action을 통해 지원 (자동화 및 항상 최신 상태 유지)
#### GitHub Action을 통한 지원 (자동화 및 항상 최신 상태)
<!-- CO-OP TRANSLATOR LANGUAGES TABLE START -->
[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](./README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md)
> **로컬에서 클론하는 것을 선호하시나요?**
> 이 저장소에는 50개 이상의 언어 번역본이 포함되어 있어 다운로드 크기가 크게 증가합니다. 번역 없이 클론하려면 스패어스 체크아웃을 사용하세요:
> **로컬로 클론하시겠습니까?**
>
> 이 저장소는 50개 이상의 언어 번역을 포함하고 있어 다운로드 크기가 크게 증가합니다. 번역 없이 클론하려면 sparse checkout을 사용하세요:
>
> **Bash / macOS / Linux:**
> ```bash
> git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git
> cd ML-For-Beginners
> git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'
> ```
> 이렇게 하면 훨씬 빠른 다운로드로 코스 완료에 필요한 모든 것을 얻을 수 있습니다.
>
> **CMD (Windows):**
> ```cmd
> git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git
> cd ML-For-Beginners
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ```
>
> 이렇게 하면 훨씬 빠른 다운로드로 강의를 완료하는 데 필요한 모든 것을 얻을 수 있습니다.
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
#### 커뮤니티에 참여하세요
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
우리는 Discord에서 AI와 함께 배우기 시리즈를 진행 중입니다. 2025년 9월 18일부터 30일까지 [Learn with AI Series](https://aka.ms/learnwithai/discord)에서 자세히 알아보고 참여하세요. GitHub Copilot을 데이터 과학에 활용하는 팁과 요령을 얻을 수 있습니다.
우리는 Discord에서 AI 시리즈를 진행 중이며, 2025년 9월 18일부터 30일까지 [Learn with AI Series](https://aka.ms/learnwithai/discord)에서 자세히 알아보고 함께하세요. GitHub Copilot을 사용한 데이터 과학 팁과 요령을 제공합니다.
![Learn with AI series](../../translated_images/ko/3.9b58fd8d6c373c20.webp)
# 초보자를 위한 머신러닝 - 커리큘럼
> 🌍 세계 문화를 통해 머신러닝을 탐구하며 세계 여행을 떠나봅시다 🌍
> 🌍 세계 문화를 통해 머신러닝을 탐험하며 전 세계를 여행하세요 🌍
마이크로소프트 클라우드 어드보케이트는 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에게도 감사드립니다!**
# 시작하기
다음 단계를 따르세요:
1. **저장소 포크하기**: 이 페이지 우측 상단의 "Fork" 버튼을 클릭하세요.
2. **저장소 클론하기**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
다음 절차를 따라 주세요:
1. **레포지토리 포크(Fork)**: 이 페이지 오른쪽 상단의 "Fork" 버튼을 클릭하세요.
2. **레포지토리 클론(Clone)**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
> [이 과정과 관련된 모든 추가 자료는 Microsoft Learn 모음에서 찾을 수 있습니다](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> [Microsoft Learn 컬렉션에서 이 강의에 관한 모든 추가 자료를 확인하세요](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> 🔧 **도움이 필요하신가요?** 설치, 설정 및 수업 실행에 관한 일반 문제 해결법은 [문제 해결 가이드](TROUBLESHOOTING.md)를 확인하세요.
> 🔧 **도움이 필요하신가요?** 설치, 설정, 강의 실행과 관련한 일반적인 문제 해결법은 [문제 해결 가이드](TROUBLESHOOTING.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)에서 모두 확인할 수 있습니다.
[![ML for beginners banner](../../translated_images/ko/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
@ -89,105 +99,105 @@
[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
**GIF 제작자** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
**Gif 제공** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
> 🎥 위 이미지를 클릭하여 프로젝트 및 제작자에 관한 비디오를 시청하세요!
> 🎥 위 이미지를 클릭해 프로젝트와 제작 팀에 관한 영상을 확인하세요!
---
## 교육 철학
이 커리큘럼을 구하면서 두 가지 교육 원칙을 선택했습니다: 실습 중심의 **프로젝트 기반** 교육과 **자주 진행되는 퀴즈** 포함입니다. 더불어, 일관성을 위한 공통된 **주제**도 설정했습니다.
이 커리큘럼을 구하면서 두 가지 교육 원칙을 선택했습니다: 실습 중심의 **프로젝트 기반** 학습과 **빈번한 퀴즈** 포함. 또한 내용을 하나로 묶는 공통의 **주제**도 설정했습니다.
내용이 프로젝트와 연계되도록 하여 학생들이 더 몰입하고 개념 이해가 높아지게 했습니다. 학습 전의 낮은 강도의 퀴즈는 학생의 학습 목표를 설정하며, 수업 후 퀴즈는 개념의 장기 기억을 돕습니다. 이 커리큘럼은 유연하고 재미있게 설계되어 전체 또는 일부만 선택해 학습할 수 있습니다. 프로젝트는 작게 시작해 12주 과정이 끝날 때쯤 점점 복잡해집니다. 또한 머신러닝의 실제 적용에 관한 후기 내용도 포함되어 있어 추가 점수나 토론 주제로 활용할 수 있습니다.
강의 내용이 프로젝트와 맞춰져 있으면 학생들이 더 몰입하고 개념의 이해와 기억이 증진됩니다. 수업 전의 낮은 부담 퀴즈는 학습 의도를 세우며, 수업 후 퀴즈는 학습 유지에 도움을 줍니다. 이 커리큘럼은 유연하고 재미있게 구성되어 전체 또는 일부만 수강할 수 있습니다. 프로젝트는 처음에는 간단하게 시작하여 12주 과정 말에는 점점 복잡해집니다. 또한, 실제 머신러닝 적용 사례를 서문 뒤에 포함해 추가 학점이나 토론 자료로 활용할 수 있습니다.
> [행동 강령](CODE_OF_CONDUCT.md), [기여](CONTRIBUTING.md), [번역](TRANSLATIONS.md), [문제 해결](TROUBLESHOOTING.md) 가이드라인을 확인하세요. 여러분의 건설적인 피드백을 환영합니다!
> [행동 강령](CODE_OF_CONDUCT.md), [기여 지침](CONTRIBUTING.md), [번역 안내](TRANSLATIONS.md), [문제 해결 가이드](TROUBLESHOOTING.md)를 확인하세요. 여러분의 건설적인 피드백을 환영합니다!
## 각 레슨에 포함된 내용
## 각 강의에는 포함되어 있습니다
- 선택적 스케치노트
- 선택적 보충 비디오
- 비디오 수업 안내 (일부 레슨)
- [강의 전 워밍업 퀴즈](https://ff-quizzes.netlify.app/en/ml/)
- 서면 강의
- 프로젝트 기반 수업은 단계별 프로젝트 구현 가이드 포함
- 선택적 보조 영상
- 영상 강의(일부 강의에만 해당)
- [사전 강의 준비 퀴즈](https://ff-quizzes.netlify.app/en/ml/)
- 서면 강의 자료
- 프로젝트 기반 강의의 경우, 프로젝트 구축 단계별 안내
- 지식 점검
- 도전 과제
- 보충 독서 자료
- 챌린지
- 보조 읽기 자료
- 과제
- [강의 퀴즈](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 |
| 21 | 시계열 예측 소개 | [시계열](7-TimeSeries/README.md) | 시계열 예측 소개 | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ 세계 전력 사용량 ⚡️ - ARIMA를 용한 시계열 예측 | [시계열](7-TimeSeries/README.md) | ARIMA를 용한 시계열 예측 | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ 세계 전력 사용량 ⚡️ - SVR을 용한 시계열 예측 | [시계열](7-TimeSeries/README.md) | 서포트 벡터 회귀를 활용한 시계열 예측 | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | 강화학습 소개 | [강화학습](8-Reinforcement/README.md) | Q-러닝을 활용한 강화학습 소개 | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | 피터가 늑대를 피하게 도우세요! 🐺 | [강화학습](8-Reinforcement/README.md) | 강화학습 Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| 후기글 | 실제 머신러닝 시나리오 및 응용 | [현장 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 |
| 21 | 시계열 예측 소개 | [시계열](7-TimeSeries/README.md) | 시계열 예측 소개 | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ 세계 전력 사용량 ⚡️ - ARIMA를 용한 시계열 예측 | [시계열](7-TimeSeries/README.md) | ARIMA를 용한 시계열 예측 | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ 세계 전력 사용량 ⚡️ - SVR을 용한 시계열 예측 | [시계열](7-TimeSeries/README.md) | 서포트 벡터 회귀를 이용한 시계열 예측 | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | 강화 학습 소개 | [강화 학습](8-Reinforcement/README.md) | Q-Learning을 이용한 강화 학습 소개 | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | 피터가 늑대를 피하도록 돕기! 🐺 | [강화 학습](8-Reinforcement/README.md) | Reinforcement learning Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| 사후 수록 | 실제 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
[![초보자를 위한 LangChain4j](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners)
[![초보자를 위한 LangChain.js](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin)
[![초보자를 위한 LangChain](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin)
[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners)
[![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin)
[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin)
---
### Azure / Edge / MCP / 에이전트
[![초보자를 위한 AZD](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[![초보자를 위한 Edge AI](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
### Azure / Edge / MCP / Agents
[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![초보자를 위한 MCP](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[![초보자를 위한 AI 에이전트](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### 생성 AI 시리즈
[![초보자를 위한 생성 AI](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![생성 AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![생성 AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[![생성 AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
### 생성 AI 시리즈
[![초보자를 위한 생성 AI](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![생성 AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![생성 AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[![생성 AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
---
### 핵심 학습
[![초보자를 위한 ML](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[![초보자를 위한 데이터 과학](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
@ -198,26 +208,31 @@
[![초보자를 위한 XR 개발](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### 코파일럿 시리즈
[![AI 페어 프로그래밍 코파일럿](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[![AI 페어 프로그래밍을 위한 코파일럿](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[![C#/.NET용 코파일럿](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
[![코파일럿 어드벤처](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst)
<!-- CO-OP TRANSLATOR OTHER COURSES END -->
## 도움 받기
AI 앱을 만드는 데 막히거나 질문이 있다면 MCP에 대해 함께 배우는 학습자와 숙련된 개발자들과 토론에 참여하세요. 질문이 환영받는 지원하는 커뮤니티이며 지식이 자유롭게 공유됩니다.
AI 앱 개발에 막히거나 질문이 있으면 MCP 관련 토론에 동료 학습자와 경험 많은 개발자들이 함께합니다. 질문을 자유롭게 할 수 있고 지식을 나누는 지원 커뮤니티입니다.
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
제품 피드백이나 오류가 있을 경우 다음을 방문하세요:
제품 피드백이나 개발 중 오류가 있으면 다음을 방문하세요:
[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## 추가 학습 팁
- 각 수업 후 노트북을 검토해 이해도를 높이세요.
- 스스로 알고리즘 구현을 연습하세요.
- 배운 개념을 활용하여 실제 데이터셋을 탐색해 보세요.
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**면책 조항**:
이 문서는 AI 번역 서비스 [Co-op Translator](https://github.com/Azure/co-op-translator)를 사용하여 번역되었습니다. 정확성을 위해 노력하고 있지만, 자동 번역에는 오류나 부정확한 부분이 있을 수 있음을 유의하시기 바랍니다. 원본 문서는 해당 언어로 작성된 문서가 권위 있는 출처로 간주되어야 합니다. 중요한 정보의 경우 전문적인 인간 번역을 권장합니다. 본 번역의 사용으로 발생하는 오해나 잘못된 해석에 대해서는 책임을 지지 않습니다.
이 문서는 AI 번역 서비스 [Co-op Translator](https://github.com/Azure/co-op-translator)를 사용하여 번역되었습니다. 정확성을 위해 노력하고 있으나, 자동 번역에는 오류나 부정확성이 포함될 수 있으니 참고해 주시기 바랍니다. 원문은 해당 언어의 원본 문서를 권위 있는 출처로 간주하여야 합니다. 중요한 정보의 경우 전문적인 인간 번역을 권장합니다. 본 번역 사용으로 인한 오해나 잘못된 해석에 대해 당사는 책임지지 않습니다.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
Loading…
Cancel
Save