# AGENTS.md ## परियोजना अवलोकन यो **मेसिन लर्निङका लागि शुरुवातकर्ता** हो, १२ हप्ताको विस्तृत पाठ्यक्रम जसमा Python (मुख्यत: Scikit-learn) र R प्रयोग गरेर क्लासिक मेसिन लर्निङ अवधारणाहरू समेटिएको छ। यो रिपोजिटरी आत्म-गति सिकाइ स्रोतको रूपमा डिजाइन गरिएको छ, जसमा व्यावहारिक परियोजनाहरू, क्विजहरू, र असाइनमेन्टहरू समावेश छन्। प्रत्येक पाठले विभिन्न संस्कृतिहरू र क्षेत्रहरूबाट वास्तविक-विश्व डेटा मार्फत मेसिन लर्निङ अवधारणाहरू अन्वेषण गर्दछ। मुख्य घटकहरू: - **शैक्षिक सामग्री**: २६ पाठहरू जसमा मेसिन लर्निङको परिचय, रिग्रेसन, क्लासिफिकेसन, क्लस्टरिङ, NLP, टाइम सिरिज, र रिइन्फोर्समेन्ट लर्निङ समावेश छन्। - **क्विज एप्लिकेसन**: Vue.js आधारित क्विज एप जसमा पाठ अघि र पछि मूल्याङ्कनहरू छन्। - **बहु-भाषा समर्थन**: GitHub Actions मार्फत ४०+ भाषाहरूमा स्वचालित अनुवाद। - **द्वैभाषिक समर्थन**: पाठहरू Python (Jupyter नोटबुकहरू) र R (R Markdown फाइलहरू) मा उपलब्ध छन्। - **परियोजना-आधारित सिकाइ**: प्रत्येक विषयमा व्यावहारिक परियोजनाहरू र असाइनमेन्टहरू समावेश छन्। ## रिपोजिटरी संरचना ``` ML-For-Beginners/ ├── 1-Introduction/ # ML basics, history, fairness, techniques ├── 2-Regression/ # Regression models with Python/R ├── 3-Web-App/ # Flask web app for ML model deployment ├── 4-Classification/ # Classification algorithms ├── 5-Clustering/ # Clustering techniques ├── 6-NLP/ # Natural Language Processing ├── 7-TimeSeries/ # Time series forecasting ├── 8-Reinforcement/ # Reinforcement learning ├── 9-Real-World/ # Real-world ML applications ├── quiz-app/ # Vue.js quiz application ├── translations/ # Auto-generated translations └── sketchnotes/ # Visual learning aids ``` प्रत्येक पाठको फोल्डरमा सामान्यत: - `README.md` - मुख्य पाठ सामग्री - `notebook.ipynb` - Python Jupyter नोटबुक - `solution/` - समाधान कोड (Python र R संस्करणहरू) - `assignment.md` - अभ्यास कार्यहरू - `images/` - दृश्य स्रोतहरू ## सेटअप कमाण्डहरू ### Python पाठहरूको लागि अधिकांश पाठहरूले Jupyter नोटबुकहरू प्रयोग गर्छन्। आवश्यक निर्भरता स्थापना गर्नुहोस्: ```bash # Install Python 3.8+ if not already installed python --version # Install Jupyter pip install jupyter # Install common ML libraries pip install scikit-learn pandas numpy matplotlib seaborn # For specific lessons, check lesson-specific requirements # Example: Web App lesson pip install flask ``` ### R पाठहरूको लागि R पाठहरू `solution/R/` फोल्डरहरूमा `.rmd` वा `.ipynb` फाइलहरूमा छन्: ```bash # Install R and required packages # In R console: install.packages(c("tidyverse", "tidymodels", "caret")) ``` ### क्विज एप्लिकेसनको लागि क्विज एप `quiz-app/` डाइरेक्टरीमा रहेको Vue.js एप्लिकेसन हो: ```bash cd quiz-app npm install ``` ### डकुमेन्टेसन साइटको लागि डकुमेन्टेसनलाई स्थानीय रूपमा चलाउन: ```bash # Install Docsify npm install -g docsify-cli # Serve from repository root docsify serve # Access at http://localhost:3000 ``` ## विकास कार्यप्रवाह ### पाठ नोटबुकहरूसँग काम गर्ने 1. पाठको डाइरेक्टरीमा जानुहोस् (जस्तै, `2-Regression/1-Tools/`) 2. Jupyter नोटबुक खोल्नुहोस्: ```bash jupyter notebook notebook.ipynb ``` 3. पाठ सामग्री र अभ्यासहरू पूरा गर्नुहोस्। 4. आवश्यक परे समाधानहरू `solution/` फोल्डरमा जाँच गर्नुहोस्। ### Python विकास - पाठहरूले मानक Python डेटा विज्ञान पुस्तकालयहरू प्रयोग गर्छन्। - अन्तरक्रियात्मक सिकाइको लागि Jupyter नोटबुकहरू। - प्रत्येक पाठको `solution/` फोल्डरमा समाधान कोड उपलब्ध छ। ### R विकास - R पाठहरू `.rmd` फर्म्याटमा छन् (R Markdown)। - समाधानहरू `solution/R/` सबडाइरेक्टरीहरूमा छन्। - RStudio वा Jupyter R कर्नेल प्रयोग गरेर R नोटबुकहरू चलाउनुहोस्। ### क्विज एप्लिकेसन विकास ```bash cd quiz-app # Start development server npm run serve # Access at http://localhost:8080 # Build for production npm run build # Lint and fix files npm run lint ``` ## परीक्षण निर्देशनहरू ### क्विज एप्लिकेसन परीक्षण ```bash cd quiz-app # Lint code npm run lint # Build to verify no errors npm run build ``` **नोट**: यो मुख्यत: शैक्षिक पाठ्यक्रम रिपोजिटरी हो। पाठ सामग्रीको लागि स्वचालित परीक्षणहरू छैनन्। मान्यकरण निम्न तरिकाहरूबाट गरिन्छ: - पाठ अभ्यासहरू पूरा गर्नुहोस्। - नोटबुक सेलहरू सफलतापूर्वक चलाउनुहोस्। - समाधानहरूमा अपेक्षित परिणामहरूसँग आउटपुट जाँच गर्नुहोस्। ## कोड शैली दिशानिर्देश ### Python कोड - PEP 8 शैली दिशानिर्देशहरू पालना गर्नुहोस्। - स्पष्ट, वर्णनात्मक भेरिएबल नामहरू प्रयोग गर्नुहोस्। - जटिल अपरेशनहरूको लागि टिप्पणीहरू समावेश गर्नुहोस्। - Jupyter नोटबुकहरूमा अवधारणाहरू व्याख्या गर्ने Markdown सेलहरू हुनु पर्छ। ### JavaScript/Vue.js (क्विज एप) - Vue.js शैली गाइड पालना गर्नुहोस्। - `quiz-app/package.json` मा ESLint कन्फिगरेसन। - `npm run lint` चलाएर समस्या जाँच र स्वत: सुधार गर्नुहोस्। ### डकुमेन्टेसन - Markdown फाइलहरू स्पष्ट र राम्रो संरचित हुनु पर्छ। - फेन्स्ड कोड ब्लकहरूमा कोड उदाहरणहरू समावेश गर्नुहोस्। - आन्तरिक सन्दर्भहरूको लागि सापेक्ष लिंकहरू प्रयोग गर्नुहोस्। - विद्यमान फर्म्याटिङ परम्पराहरू पालना गर्नुहोस्। ## निर्माण र परिनियोजन ### क्विज एप्लिकेसन परिनियोजन क्विज एपलाई Azure Static Web Apps मा परिनियोजन गर्न सकिन्छ: 1. **पूर्वापेक्षाहरू**: - Azure खाता - GitHub रिपोजिटरी (पहिले नै फोर्क गरिएको) 2. **Azure मा परिनियोजन गर्नुहोस्**: - Azure Static Web App स्रोत सिर्जना गर्नुहोस्। - GitHub रिपोजिटरीसँग जडान गर्नुहोस्। - एप स्थान सेट गर्नुहोस्: `/quiz-app` - आउटपुट स्थान सेट गर्नुहोस्: `dist` - Azure ले स्वत: GitHub Actions कार्यप्रवाह सिर्जना गर्छ। 3. **GitHub Actions कार्यप्रवाह**: - कार्यप्रवाह फाइल `.github/workflows/azure-static-web-apps-*.yml` मा सिर्जना गरिएको छ। - मुख्य शाखामा पुश गर्दा स्वत: निर्माण र परिनियोजन। ### डकुमेन्टेसन PDF डकुमेन्टेसनबाट PDF सिर्जना गर्नुहोस्: ```bash npm install npm run convert ``` ## अनुवाद कार्यप्रवाह **महत्वपूर्ण**: अनुवादहरू GitHub Actions मार्फत Co-op Translator प्रयोग गरेर स्वचालित छन्। - मुख्य शाखामा परिवर्तनहरू पुश गर्दा अनुवादहरू स्वत: उत्पन्न हुन्छन्। - **सामग्रीलाई म्यानुअली अनुवाद नगर्नुहोस्** - प्रणालीले यसलाई ह्यान्डल गर्छ। - कार्यप्रवाह `.github/workflows/co-op-translator.yml` मा परिभाषित छ। - अनुवादको लागि Azure AI/OpenAI सेवाहरू प्रयोग गर्छ। - ४०+ भाषाहरूलाई समर्थन गर्दछ। ## योगदान दिशानिर्देश ### सामग्री योगदानकर्ताहरूको लागि 1. **रिपोजिटरी फोर्क गर्नुहोस्** र फिचर शाखा सिर्जना गर्नुहोस्। 2. **पाठ सामग्रीमा परिवर्तन गर्नुहोस्** यदि पाठहरू थप्दै/अपडेट गर्दै हुनुहुन्छ भने। 3. **अनुवादित फाइलहरू परिवर्तन नगर्नुहोस्** - ती स्वचालित रूपमा उत्पन्न हुन्छन्। 4. **आफ्नो कोड परीक्षण गर्नुहोस्** - सुनिश्चित गर्नुहोस् कि सबै नोटबुक सेलहरू सफलतापूर्वक चल्छन्। 5. **लिंकहरू र छविहरू सही रूपमा काम गर्छन्** भनी प्रमाणित गर्नुहोस्। 6. **स्पष्ट विवरणसहित पुल अनुरोध सबमिट गर्नुहोस्।** ### पुल अनुरोध दिशानिर्देश - **शीर्षक ढाँचा**: `[सेक्शन] परिवर्तनहरूको संक्षिप्त विवरण` - उदाहरण: `[Regression] पाठ ५ मा टाइपो सुधार गर्नुहोस्` - उदाहरण: `[Quiz-App] निर्भरता अपडेट गर्नुहोस्` - **सबमिट गर्नु अघि**: - सुनिश्चित गर्नुहोस् कि सबै नोटबुक सेलहरू त्रुटि बिना चल्छन्। - यदि क्विज-एप परिवर्तन गर्दै हुनुहुन्छ भने `npm run lint` चलाउनुहोस्। - Markdown फर्म्याटिङ प्रमाणित गर्नुहोस्। - कुनै नयाँ कोड उदाहरणहरू परीक्षण गर्नुहोस्। - **PR मा समावेश हुनु पर्छ**: - परिवर्तनहरूको विवरण। - परिवर्तनहरूको कारण। - UI परिवर्तनहरू भएमा स्क्रिनशटहरू। - **आचार संहिता**: [Microsoft Open Source Code of Conduct](CODE_OF_CONDUCT.md) पालना गर्नुहोस्। - **CLA**: तपाईंले Contributor License Agreement हस्ताक्षर गर्न आवश्यक छ। ## पाठ संरचना प्रत्येक पाठले एक समान ढाँचा पालना गर्छ: 1. **पाठ अघि क्विज** - आधारभूत ज्ञान परीक्षण गर्नुहोस्। 2. **पाठ सामग्री** - लिखित निर्देशनहरू र व्याख्याहरू। 3. **कोड प्रदर्शनहरू** - नोटबुकहरूमा व्यावहारिक उदाहरणहरू। 4. **ज्ञान जाँचहरू** - अवधारणाहरू बुझ्न प्रमाणित गर्नुहोस्। 5. **चुनौती** - स्वतन्त्र रूपमा अवधारणाहरू लागू गर्नुहोस्। 6. **असाइनमेन्ट** - विस्तारित अभ्यास। 7. **पाठ पछि क्विज** - सिकाइ परिणामहरूको मूल्याङ्कन गर्नुहोस्। ## सामान्य कमाण्ड सन्दर्भ ```bash # Python/Jupyter jupyter notebook # Start Jupyter server jupyter notebook notebook.ipynb # Open specific notebook pip install -r requirements.txt # Install dependencies (where available) # Quiz App cd quiz-app npm install # Install dependencies npm run serve # Development server npm run build # Production build npm run lint # Lint and fix # Documentation docsify serve # Serve documentation locally npm run convert # Generate PDF # Git workflow git checkout -b feature/my-change # Create feature branch git add . # Stage changes git commit -m "Description" # Commit changes git push origin feature/my-change # Push to remote ``` ## अतिरिक्त स्रोतहरू - **Microsoft Learn संग्रह**: [शुरुवातकर्ताहरूका लागि मेसिन लर्निङ मोड्युलहरू](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) - **क्विज एप**: [अनलाइन क्विजहरू](https://ff-quizzes.netlify.app/en/ml/) - **चर्चा बोर्ड**: [GitHub Discussions](https://github.com/microsoft/ML-For-Beginners/discussions) - **भिडियो वाकथ्रूहरू**: [YouTube प्लेलिस्ट](https://aka.ms/ml-beginners-videos) ## प्रमुख प्रविधिहरू - **Python**: मेसिन लर्निङ पाठहरूको प्राथमिक भाषा (Scikit-learn, Pandas, NumPy, Matplotlib) - **R**: tidyverse, tidymodels, caret प्रयोग गरेर वैकल्पिक कार्यान्वयन। - **Jupyter**: Python पाठहरूको लागि अन्तरक्रियात्मक नोटबुकहरू। - **R Markdown**: R पाठहरूको लागि दस्तावेजहरू। - **Vue.js 3**: क्विज एप्लिकेसन फ्रेमवर्क। - **Flask**: मेसिन लर्निङ मोडेल परिनियोजनको लागि वेब एप्लिकेसन फ्रेमवर्क। - **Docsify**: डकुमेन्टेसन साइट जेनेरेटर। - **GitHub Actions**: CI/CD र स्वचालित अनुवादहरू। ## सुरक्षा विचारहरू - **कोडमा गोप्य जानकारी नराख्नुहोस्**: API कुञ्जीहरू वा प्रमाणहरू कहिल्यै कमिट नगर्नुहोस्। - **निर्भरता**: npm र pip प्याकेजहरू अद्यावधिक राख्नुहोस्। - **प्रयोगकर्ता इनपुट**: Flask वेब एप उदाहरणहरूमा आधारभूत इनपुट मान्यकरण समावेश छ। - **संवेदनशील डेटा**: उदाहरण डेटासेटहरू सार्वजनिक र गैर-संवेदनशील छन्। ## समस्या समाधान ### Jupyter नोटबुकहरू - **कर्नेल समस्या**: यदि सेलहरू अड्किन्छन् भने कर्नेल पुन: सुरु गर्नुहोस्: Kernel → Restart। - **आयात त्रुटिहरू**: सुनिश्चित गर्नुहोस् कि सबै आवश्यक प्याकेजहरू pip प्रयोग गरेर स्थापना गरिएको छ। - **पथ समस्या**: नोटबुकहरू तिनीहरूको समावेश गर्ने डाइरेक्टरीबाट चलाउनुहोस्। ### क्विज एप्लिकेसन - **npm install असफल हुन्छ**: npm क्यास सफा गर्नुहोस्: `npm cache clean --force` - **पोर्ट द्वन्द्वहरू**: पोर्ट परिवर्तन गर्नुहोस्: `npm run serve -- --port 8081` - **निर्माण त्रुटिहरू**: `node_modules` मेटेर पुन: स्थापना गर्नुहोस्: `rm -rf node_modules && npm install` ### R पाठहरू - **प्याकेज फेला परेन**: यसलाई स्थापना गर्नुहोस्: `install.packages("package-name")` - **RMarkdown रेन्डरिङ**: सुनिश्चित गर्नुहोस् कि rmarkdown प्याकेज स्थापना गरिएको छ। - **कर्नेल समस्या**: Jupyter को लागि IRkernel स्थापना गर्न आवश्यक हुन सक्छ। ## परियोजना-विशेष नोटहरू - यो मुख्यत: **सिकाइ पाठ्यक्रम** हो, उत्पादन कोड होइन। - **व्यावहारिक अभ्यास मार्फत मेसिन लर्निङ अवधारणाहरू बुझ्न** केन्द्रित। - कोड उदाहरणहरूले **स्पष्टता प्राथमिकता दिन्छन्, अनुकूलन होइन।** - अधिकांश पाठहरू **स्वतन्त्र छन्** र स्वतन्त्र रूपमा पूरा गर्न सकिन्छ। - **समाधानहरू उपलब्ध छन्**, तर सिक्नेहरूले पहिले अभ्यास प्रयास गर्नुपर्छ। - रिपोजिटरीले **Docsify** प्रयोग गर्छ वेब डकुमेन्टेसनको लागि बिना निर्माण चरण। - **Sketchnotes** अवधारणाहरूको दृश्य सारांश प्रदान गर्छ। - **बहु-भाषा समर्थन**ले सामग्रीलाई विश्वव्यापी रूपमा पहुँचयोग्य बनाउँछ। --- **अस्वीकरण**: यो दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) प्रयोग गरेर अनुवाद गरिएको हो। हामी यथासम्भव शुद्धता सुनिश्चित गर्न प्रयास गर्छौं, तर कृपया ध्यान दिनुहोस् कि स्वचालित अनुवादमा त्रुटिहरू वा अशुद्धताहरू हुन सक्छ। मूल दस्तावेज़ यसको मातृभाषामा आधिकारिक स्रोत मानिनुपर्छ। महत्वपूर्ण जानकारीको लागि, व्यावसायिक मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न हुने कुनै पनि गलतफहमी वा गलत व्याख्याको लागि हामी जिम्मेवार हुनेछैनौं।