You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
339 lines
21 KiB
339 lines
21 KiB
# AGENTS.md
|
|
|
|
## Project Overview
|
|
|
|
នេះគឺជាឯកសារ **ការសិក្សា ម៉ាស៊ីនរៀនសម្រាប់អ្នកចាប់ផ្តើម** ដែលមានកម្មវិធីសិក្សាប្រមាណ ១២ សប្ដាហ៍ មានមេរៀន ២៦ មេរៀនគ្របដណ្តប់គំនិតម៉ាស៊ីនរៀនបុរាណ ដោយប្រើ Python (ជាសំខាន់ជាមួយ Scikit-learn) និង R។ ឃ្លាំងទាក់ទងនេះត្រូវបានរចនាឡើងជាឋានសិក្សាដោយខ្លួនឯង មានគម្រោងដៃ អ្នកសាកល្បង និងការងារសិក្សា រៀងរាល់មេរៀនស្វែងយល់ពីមូលដ្ឋាន ML តាមរយៈទិន្នន័យពិតពីវប្បធម៌ និងតំបន់ផ្សេងៗជុំវិញពិភពលោក។
|
|
|
|
ធាតុសំខាន់ៗ៖
|
|
- **មាតិកាសិក្សា**៖ ២៦ មេរៀនគ្របដណ្តប់ការណែនាំអំពី ML, ការត្រួតពិនិត្យទំនាក់ទំនង, ការបែងចែកចំណាត់ថ្នាក់, ការបែងចែកក្រុម, NLP, លំដាប់ពេលវេលា និងការរៀនពង្រឹង
|
|
- **កម្មវិធីសាកល្បង**៖ កម្មវិធីសាកល្បងមួយបង្កើតជាមួយ Vue.js មានការវាស់ថ្នាក់មុន និងក្រោយមេរៀន
|
|
- **គាំទ្រភាសាច្រើន**៖ បម្លែងភាសាឡើងវិញដោយស្វ័យប្រវត្តិទៅជាភាសាបានជាង ៤០ ភាសាតាមរយៈ GitHub Actions
|
|
- **គាំទ្រភាសាគូ**៖ មេរៀនអាចប្រើបានទាំង Python (សៀវភៅកិច្ចការលើ Jupyter) និង R (ឯកសារ R Markdown)
|
|
- **ការសិក្សាដើមឯកសារ**៖ រៀងរាល់ប្រធានបទមានគម្រោង និងការងារអនុវត្ត
|
|
|
|
## Repository Structure
|
|
|
|
```
|
|
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` - សៀវភៅកិច្ចការចេញពី Jupyter Python
|
|
- `solution/` - កូដដំណោះស្រាយ (Python និង R)
|
|
- `assignment.md` - លំហាត់អនុវត្ត
|
|
- `images/` - ឯកសារទ្រព្យសម្បត្តិរូបភាព
|
|
|
|
## Setup Commands
|
|
|
|
### For Python Lessons
|
|
|
|
មេរៀនភាគច្រើនប្រើសៀវភៅកិច្ចការជាមួយ Jupyter។ តំឡើងអ្វីដែលត្រូវការ៖
|
|
|
|
```bash
|
|
# តំឡើង Python 3.8+ ប្រសិនបើមិនបានតំឡើងរួចជាមុន
|
|
python --version
|
|
|
|
# តំឡើង Jupyter
|
|
pip install jupyter
|
|
|
|
# តំឡើងបណ្ណាល័យ ML រួមៗ
|
|
pip install scikit-learn pandas numpy matplotlib seaborn
|
|
|
|
# សម្រាប់មេរៀនជាក់លាក់ សូមពិនិត្យតម្រូវការជាក់លាក់សម្រាប់មេរៀននោះ
|
|
# ឧទាហរណ៍៖ មេរៀនកម្មវិធីវេប
|
|
pip install flask
|
|
```
|
|
|
|
### For R Lessons
|
|
|
|
មេរៀន R ស្ថិតក្នុងថត `solution/R/` ជាឯកសារ `.rmd` ឬ `.ipynb`៖
|
|
|
|
```bash
|
|
# ដំឡើង R និងកញ្ចប់ដែលត្រូវការ
|
|
# នៅក្នុងកុងសូល R:
|
|
install.packages(c("tidyverse", "tidymodels", "caret"))
|
|
```
|
|
|
|
### For Quiz Application
|
|
|
|
កម្មវិធីសាកល្បងគឺនូវកម្មវិធី Vue.js ដែលស្ថិតនៅថត `quiz-app/`៖
|
|
|
|
```bash
|
|
cd quiz-app
|
|
npm install
|
|
```
|
|
|
|
### For Documentation Site
|
|
|
|
ដើម្បីរត់គេហទំព័រឯកសារនៅក្នុងម៉ាស៊ីនកុំព្យូទ័រ៖
|
|
|
|
```bash
|
|
# ដំឡើង Docsify
|
|
npm install -g docsify-cli
|
|
|
|
# សេវាកម្មពីឫសហាងស្តុក
|
|
docsify serve
|
|
|
|
# ចូលប្រើនៅ http://localhost:3000
|
|
```
|
|
|
|
## Development Workflow
|
|
|
|
### Working with Lesson Notebooks
|
|
|
|
១. ទៅកាន់ថតមេរៀន (ឧ. `2-Regression/1-Tools/`)
|
|
២. បើកសៀវភៅកិច្ចការជា Jupyter:
|
|
```bash
|
|
jupyter notebook notebook.ipynb
|
|
```
|
|
|
|
៣. ធ្វើខ្សែសំរាប់កម្រិតមេរៀននិងលំហាត់
|
|
៤. ពិនិត្យដំណោះស្រាយក្នុងថត `solution/` ប្រសិនបើចាំបាច់
|
|
|
|
### Python Development
|
|
|
|
- មេរៀនប្រើបណ្ណាល័យវិទ្យាសាស្ដ្រទិន្នន័យ Python ស្តង់ដារ
|
|
- សៀវភៅកិច្ចការជា Jupyter សម្រាប់សិក្សាផ្ទាល់
|
|
- កូដដំណោះស្រាយមានក្នុងថត `solution/` រាល់មេរៀន
|
|
|
|
### R Development
|
|
|
|
- មេរៀន R មានទ្រង់ទ្រាយ `.rmd` (R Markdown)
|
|
- ដំណោះស្រាយស្ថិតនៅក្នុងថត `solution/R/`
|
|
- ប្រើ RStudio ឬ Jupyter ជាមួយកឺណែល R ដើម្បីរត់សៀវភៅ R
|
|
|
|
### Quiz Application Development
|
|
|
|
```bash
|
|
cd quiz-app
|
|
|
|
# ចាប់ផ្តើមម៉ាស៊ីនមេអភិវឌ្ឍន៍
|
|
npm run serve
|
|
# ចូលប្រើនៅ http://localhost:8080
|
|
|
|
# សាងសង់សម្រាប់ផលិតកម្ម
|
|
npm run build
|
|
|
|
# ពិនិត្យនិងជួសជុលឯកសារ
|
|
npm run lint
|
|
```
|
|
|
|
## Testing Instructions
|
|
|
|
### Quiz Application Testing
|
|
|
|
```bash
|
|
cd quiz-app
|
|
|
|
# ពិនិត្យកូដ
|
|
npm run lint
|
|
|
|
# សង់ដើម្បីផ្ទៀងផ្ទាត់ថាមិនមានកំហុសណាមួយ
|
|
npm run build
|
|
```
|
|
|
|
**Note**: នេះគឺជាឃ្លាំងមេរៀនសំរាប់ការអប់រំបំផុត។ គ្មានការធ្វើតេស្តស្វ័យប្រវត្តិសម្រាប់មាតិកាមេរៀនទេ។ ការផ្ទៀងផ្ទាត់ត្រូវបានធ្វើតាម៖
|
|
- បញ្ចប់លំហាត់មេរៀន
|
|
- រត់កោដ្ឋ Jupyter ឲ្យបានជោគជ័យ
|
|
- ពិនិត្យលទ្ធផលអោយទៅតាមការរំពឹងទុកក្នុងដំណោះស្រាយ
|
|
|
|
## Code Style Guidelines
|
|
|
|
### Python Code
|
|
- បន្ទាប់បន្សាំនូវគន្លង PEP 8
|
|
- ប្រើឈ្មោះអថេរបញ្ជាក់ច្បាស់
|
|
- កំណត់សំគាល់សម្រាប់ដំណើរការលំបាក
|
|
- សៀវភៅ Jupyter ត្រូវមានកោដ្ឋ markdown សំរាប់ពន្យល់គំនិត
|
|
|
|
### JavaScript/Vue.js (Quiz App)
|
|
- គោរពតាមម៉ូដែល Vue.js
|
|
- ការកំណត់ ESLint នៅក្នុង `quiz-app/package.json`
|
|
- រត់ `npm run lint` ដើម្បីពិនិត្យ និងជួសជុលបញ្ហា
|
|
|
|
### Documentation
|
|
- ឯកសារ markdown គួរតែល្អ និងមានរចនាសម្ព័ន្ធល្អ
|
|
- រួមបញ្ចូលខេនដេមកូដនៅក្នុងប្រអប់បិទបើក
|
|
- ប្រើតំណភ្ជាប់ទាក់ទងសម្រាប់យោងខាងក្នុង
|
|
- គោរពទ្រង់ទ្រាយដែលមានរួចជាមុន
|
|
|
|
## Build and Deployment
|
|
|
|
### Quiz Application Deployment
|
|
|
|
កម្មវិធីសាកល្បងអាចប្រើបានក្នុង Azure Static Web Apps៖
|
|
|
|
១. **លក្ខខណ្ឌមុន**៖
|
|
- គណនី Azure
|
|
- ឃ្លាំង GitHub (បាន fork រួច)
|
|
|
|
២. **បញ្ចូនទៅ Azure**៖
|
|
- បង្កើតធនធាន Azure Static Web App
|
|
- ភ្ជាប់ទៅឃ្លាំង GitHub
|
|
- កំណត់ទីតាំងកម្មវិធី: `/quiz-app`
|
|
- កំណត់ទីតាំងលទ្ធផល: `dist`
|
|
- Azure បង្កើត GitHub Actions workflow ដោយស្វ័យប្រវត្តិ
|
|
|
|
៣. **GitHub Actions Workflow**៖
|
|
- គំនិតកម្មវិធី workflow នៅ `.github/workflows/azure-static-web-apps-*.yml`
|
|
- បង្កើត និងដាក់ចេញស្វ័យប្រវត្តិពេល push ទៅផ្នែក main
|
|
|
|
### Documentation PDF
|
|
|
|
បង្កើត PDF ពីឯកសារអ្នកតាំង៖
|
|
|
|
```bash
|
|
npm install
|
|
npm run convert
|
|
```
|
|
|
|
## Translation Workflow
|
|
|
|
**សំខាន់**៖ ការប្រែបកបម្លែងនៅតែបន្តដោយស្វ័យប្រវត្តិតាមរយៈ GitHub Actions ប្រើកម្មវិធី Co-op Translator។
|
|
|
|
- ការប្រែបកបម្លែងបានបង្កើតឡើងដោយស្វ័យប្រវត្តិពេលមានការផ្លាស់ប្តូរនៅផ្នែក `main`
|
|
- **សូមមិនប្រែទាំងអស់ដោយដៃ** - ប្រព័ន្ធបានដោះស្រាយនេះ
|
|
- កម្មវិធី workflow មាននៅ `.github/workflows/co-op-translator.yml`
|
|
- ប្រើសេវា AI/OpenAI របស់ Azure សម្រាប់បកប្រែ
|
|
- គាំទ្រភាសាជាង ៤០
|
|
|
|
## Contributing Guidelines
|
|
|
|
### For Content Contributors
|
|
|
|
១. **ធ្វើ fork** ឃ្លាំងហើយបង្កើតសាខាកំណត់ឡើងវិញ
|
|
២. **បង្កើតការផ្លាស់ប្តូរមេរៀន** ប្រសិនបើបន្ថែម/ធ្វើបច្ចុប្បន្នភាពមេរៀន
|
|
៣. **កុំដូរ ឯកសារប្រែ** - ពួកវាត្រូវបានបង្កើតស្វ័យប្រវត្តិ
|
|
៤. **ធ្វើតេស្តកូដ** - បញ្ចប់ការរត់នៃកោដ្ឋឲ្យបានជោគជ័យ
|
|
៥. **ពិនិត្យតំណភ្ជាប់ និងរូបភាព** ឲ្យបានត្រឹមត្រូវ
|
|
៦. **ដាក់ស្នើ pull request** ជាមួយការពិពណ៌នាច្បាស់លាស់
|
|
|
|
### Pull Request Guidelines
|
|
|
|
- **ទ្រង់ទ្រាយចំណងជើង**៖ `[ផ្នែក] សេចក្ដីពិពណ៌នាខ្លីអំពីការផ្លាស់ប្តូរ`
|
|
- ឧ.៖ `[Regression] កែសម្រួលកំហុសពាក្យនៅមេរៀនលេខ ៥`
|
|
- ឧ.៖ `[Quiz-App] បច្ចុប្បន្នភាពអស់កល្បជំនួយ`
|
|
- **មុនដាក់ស្នើ**៖
|
|
- ឆែកថាឲ្យកោដ្ឋ Jupyter រត់បានទាំងអស់ដោយគ្មានកំហុស
|
|
- រត់ `npm run lint` ប្រសិនបើកែប្រែកម្មវិធីសាកល្បង
|
|
- ពិនិត្យទ្រង់ទ្រាយ markdown
|
|
- សាកល្បងឧទាហរណ៍កូដថ្មីៗ
|
|
- **PR ត្រូវមាន**៖
|
|
- ពិពណ៌នាអំពីការផ្លាស់ប្តូរ
|
|
- ហេតុផលនៃការផ្លាស់ប្តូរ
|
|
- រូបថតផ្ទាំងពេល UI ផ្លាស់ប្តូរ
|
|
- **Code of Conduct**៖ គោរពតាម [Microsoft Open Source Code of Conduct](CODE_OF_CONDUCT.md)
|
|
- **CLA**៖ អ្នកត្រូវចុះហត្ថបទ Contributor License Agreement
|
|
|
|
## Lesson Structure
|
|
|
|
រៀងរាល់មេរៀនមានលំនាំដូចតទៅ៖
|
|
|
|
១. **សាកល្បងមុនបង្ហាញមេរៀន** - តេស្តចំណេះដឹងមូលដ្ឋាន
|
|
២. **មាតិកាមេរៀន** - វិធានការនិងពណ៌នាច្បាស់លាស់
|
|
៣. **ការបង្ហាញកូដ** - ឧទាហរណ៍អនុវត្តក្នុងសៀវភៅកិច្ចការចេញពីសៀវភៅ
|
|
៤. **ការត្រួតពិនិត្យចំណេះដឹង** - បញ្ជាក់ការយល់ដឹងរបស់អ្នកសិក្សា
|
|
៥. **សកម្មភាពប défi** - អនុវត្តគំនិតដោយឯករាជ្យ
|
|
៦. **ការងារសិក្សា** - លំហាត់បន្ថែម
|
|
៧. **សាកល្បងក្រោយបង្ហាញមេរៀន** - វាស់តម្លៃលទ្ធផលការសិក្សា
|
|
|
|
## Common Commands Reference
|
|
|
|
```bash
|
|
# Python/Jupyter
|
|
jupyter notebook # ចាប់ផ្តើមម៉ាស៊ីនបម្រើ Jupyter
|
|
jupyter notebook notebook.ipynb # បើកសៀវភៅកំណត់សម្រាប់ជាក់លាក់
|
|
pip install -r requirements.txt # ដំឡើង依赖项 (នៅពេលមាន)
|
|
|
|
# កម្មវិធីសំណួរ
|
|
cd quiz-app
|
|
npm install # ដំឡើង依赖项
|
|
npm run serve # ម៉ាស៊ីនបម្រើអភិវឌ្ឍន៍
|
|
npm run build # សង់ការផលិត
|
|
npm run lint # ពិនិត្យនិងជួសជុលកូដ
|
|
|
|
# ឯកសារ
|
|
docsify serve # បម្រើឯកសារនៅលើម៉ាស៊ីនដំណើរការផ្ទាល់
|
|
npm run convert # បង្កើតឯកសារ PDF
|
|
|
|
# ដំណើរការការងារ Git
|
|
git checkout -b feature/my-change # បង្កើតសាខាឯកសារ
|
|
git add . # រៀបចំការផ្លាស់ប្ដូរ
|
|
git commit -m "Description" # ប្តឹងការផ្លាស់ប្ដូរ
|
|
git push origin feature/my-change # ទំនាក់ទំនងទៅពីចម្ងាយ
|
|
```
|
|
|
|
## Additional Resources
|
|
|
|
- **Microsoft Learn Collection**: [ម៉ូឌុល ML សម្រាប់អ្នកចាប់ផ្តើម](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)
|
|
- **វីដេអូមើលឆ្លងកាត់**: [Playlists YouTube](https://aka.ms/ml-beginners-videos)
|
|
|
|
## Key Technologies
|
|
|
|
- **Python**: ភាសាសំខាន់សម្រាប់មេរៀន ML (Scikit-learn, Pandas, NumPy, Matplotlib)
|
|
- **R**: ជម្រើសផ្សេងក្នុងការប្រើ tidyverse, tidymodels, caret
|
|
- **Jupyter**: សៀវភៅកិច្ចការផ្លូវចូលសម្រាប់មេរៀន Python
|
|
- **R Markdown**: ឯកសារសម្រាប់មេរៀន R
|
|
- **Vue.js 3**: ស៊ុមកម្មវិធីសាកល្បង
|
|
- **Flask**: ស៊ុមកម្មវិធីតំបន់វេបសម្រាប់ដាក់ម៉ូដែល ML
|
|
- **Docsify**: កម្មវិធីបង្កើតគេហទំព័រកម្រងឯកសារ
|
|
- **GitHub Actions**: CI/CD និងការប្រែបកស្វ័យប្រវត្តិ
|
|
|
|
## Security Considerations
|
|
|
|
- **គ្មានសម្ងាត់ក្នុងកូដ**: មិនបណ្តេញ API key ឬស្នាក់ហេតុវិញ
|
|
- **ការពឹងផ្អែក**: រក្សាឲ្យ npm និង pip ឡើងវិញជានិច្ច
|
|
- **ការបញ្ចូលអ្នកប្រើ**: ឧទាហរណ៍វេប Flask មានការត្រួតពិនិត្យ input មូលដ្ឋាន
|
|
- **ទិន្នន័យរបស់អ្នកប្រើ**: ឧទាហរណ៍ទិន្នន័យពេញចិត្ត និងមិនសំខាន់
|
|
|
|
## Troubleshooting
|
|
|
|
### Jupyter Notebooks
|
|
|
|
- **បញ្ហាគឺណែល**: ចាប់ផ្តើមឡើងវិញ kernel ប្រសិនបើកោដ្ឋអង្គភាពផ្អាក: Kernel → Restart
|
|
- **បញ្ហានាំចូល**: ច្បាស់ថាមិនខ្វះការដំឡើងបណ្ណាល័យជាមួយ pip
|
|
- **បញ្ហាផ្លូវការដំណើរការ**: រត់សៀវភៅពីថតមេរបស់វា
|
|
|
|
### Quiz Application
|
|
|
|
- **npm install បរាជ័យ**: សម្អាត cache npm: `npm cache clean --force`
|
|
- **ប្រហោង port ប្រកែក**: ផ្លាស់ប្តូរប្រហោងជាមួយ: `npm run serve -- --port 8081`
|
|
- **បញ្ហាការសង់**: លុប `node_modules` ហើយដំឡើងឡើងវិញ: `rm -rf node_modules && npm install`
|
|
|
|
### R Lessons
|
|
|
|
- **កញ្ចប់មិនមានជារៀងរាល់ថ្ងៃ**: ដំឡើងជាមួយ: `install.packages("package-name")`
|
|
- **ការបម្រុង RMarkdown**: ប្រាកដថាកញ្ចប់ rmarkdown ត្រូវបានដំឡើង
|
|
- **បញ្ហាគឺណែល**: អាចត្រូវដំឡើង IRkernel សម្រាប់ Jupyter
|
|
|
|
## Project-Specific Notes
|
|
|
|
- នេះជាកម្មវិធីសិក្សាទូទៅ មិនមែនគឺកូដផលិតកម្ម
|
|
- ផ្តោតលើការយល់ដឹងគំនិត ML តាមការអនុវត្តទាំងអស់
|
|
- ឧទាហរណ៍កូដផ្តោតលើភាពវចនាធិប្បាយល្អ
|
|
- មេរៀនភាគច្រើនមានតែម្ដង ហើយអាចបញ្ចប់ដោយខ្លួនឯង
|
|
- បានផ្តល់ដំណោះស្រាយ ប៉ុន្តែអ្នកសិក្សាគួរព្យាយាមលំហាត់ជាមុន
|
|
- ឃ្លាំងប្រើ Docsify សម្រាប់បង្កើតគេហទំព័រឯកសារដោយគ្មានដំណើរការសង់
|
|
- សេចក្ដីសង្ខេបជារូបភាព (Sketchnotes) ផ្តល់ការពន្យល់យ៉ាងច្បាស់អំពីគំនិត
|
|
- គាំទ្រភាសាច្រើនធ្វើឲ្យមាតិកាដំណើរការជាសកល
|
|
|
|
---
|
|
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
|
**ការជម្រាបជូន**៖
|
|
ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំប្រឹងប្រែងសម្រាប់ភាពត្រឹមត្រូវ សូមកត់សម្គាល់ថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬភាពមិនត្រឹមត្រូវខ្លះ។ ឯកសារដើមក្នុងភាសាម្ចាស់ដើមគួរត្រូវបានគេយកសម្រាប់ប្រភពត្រឹមត្រូវជាចម្បង។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមផ្តល់អនុសាសន៍ការបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសៗណាមួយ ដែលបណ្តាលមកពីការប្រើប្រាស់ការបកប្រែនេះទេ។
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER END --> |