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 Pythonsolution/- កូដដំណោះស្រាយ (Python និង R)assignment.md- លំហាត់អនុវត្តimages/- ឯកសារទ្រព្យសម្បត្តិរូបភាព
Setup Commands
For Python Lessons
មេរៀនភាគច្រើនប្រើសៀវភៅកិច្ចការជាមួយ Jupyter។ តំឡើងអ្វីដែលត្រូវការ៖
# តំឡើង 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៖
# ដំឡើង R និងកញ្ចប់ដែលត្រូវការ
# នៅក្នុងកុងសូល R:
install.packages(c("tidyverse", "tidymodels", "caret"))
For Quiz Application
កម្មវិធីសាកល្បងគឺនូវកម្មវិធី Vue.js ដែលស្ថិតនៅថត quiz-app/៖
cd quiz-app
npm install
For Documentation Site
ដើម្បីរត់គេហទំព័រឯកសារនៅក្នុងម៉ាស៊ីនកុំព្យូទ័រ៖
# ដំឡើង Docsify
npm install -g docsify-cli
# សេវាកម្មពីឫសហាងស្តុក
docsify serve
# ចូលប្រើនៅ http://localhost:3000
Development Workflow
Working with Lesson Notebooks
១. ទៅកាន់ថតមេរៀន (ឧ. 2-Regression/1-Tools/)
២. បើកសៀវភៅកិច្ចការជា Jupyter:
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
cd quiz-app
# ចាប់ផ្តើមម៉ាស៊ីនមេអភិវឌ្ឍន៍
npm run serve
# ចូលប្រើនៅ http://localhost:8080
# សាងសង់សម្រាប់ផលិតកម្ម
npm run build
# ពិនិត្យនិងជួសជុលឯកសារ
npm run lint
Testing Instructions
Quiz Application Testing
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 ពីឯកសារអ្នកតាំង៖
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
- CLA៖ អ្នកត្រូវចុះហត្ថបទ Contributor License Agreement
Lesson Structure
រៀងរាល់មេរៀនមានលំនាំដូចតទៅ៖
១. សាកល្បងមុនបង្ហាញមេរៀន - តេស្តចំណេះដឹងមូលដ្ឋាន ២. មាតិកាមេរៀន - វិធានការនិងពណ៌នាច្បាស់លាស់ ៣. ការបង្ហាញកូដ - ឧទាហរណ៍អនុវត្តក្នុងសៀវភៅកិច្ចការចេញពីសៀវភៅ ៤. ការត្រួតពិនិត្យចំណេះដឹង - បញ្ជាក់ការយល់ដឹងរបស់អ្នកសិក្សា ៥. សកម្មភាពប défi - អនុវត្តគំនិតដោយឯករាជ្យ ៦. ការងារសិក្សា - លំហាត់បន្ថែម ៧. សាកល្បងក្រោយបង្ហាញមេរៀន - វាស់តម្លៃលទ្ធផលការសិក្សា
Common Commands Reference
# 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 សម្រាប់អ្នកចាប់ផ្តើម
- កម្មវិធីសាកល្បង: ការសាកល្បងអនឡាញ
- ពិភាក្សាជួយគ្នា: GitHub Discussions
- វីដេអូមើលឆ្លងកាត់: Playlists YouTube
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) ផ្តល់ការពន្យល់យ៉ាងច្បាស់អំពីគំនិត
- គាំទ្រភាសាច្រើនធ្វើឲ្យមាតិកាដំណើរការជាសកល
ការជម្រាបជូន៖
ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI Co-op Translator។ ខណៈពេលយើងខិតខំប្រឹងប្រែងសម្រាប់ភាពត្រឹមត្រូវ សូមកត់សម្គាល់ថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬភាពមិនត្រឹមត្រូវខ្លះ។ ឯកសារដើមក្នុងភាសាម្ចាស់ដើមគួរត្រូវបានគេយកសម្រាប់ប្រភពត្រឹមត្រូវជាចម្បង។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមផ្តល់អនុសាសន៍ការបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសៗណាមួយ ដែលបណ្តាលមកពីការប្រើប្រាស់ការបកប្រែនេះទេ។