12 KiB
AGENTS.md
Gambaran Proyek
Ini adalah Machine Learning untuk Pemula, kurikulum komprehensif selama 12 minggu dengan 26 pelajaran yang mencakup konsep pembelajaran mesin klasik menggunakan Python (terutama dengan Scikit-learn) dan R. Repositori ini dirancang sebagai sumber belajar mandiri dengan proyek langsung, kuis, dan tugas. Setiap pelajaran mengeksplorasi konsep ML melalui data dunia nyata dari berbagai budaya dan wilayah di seluruh dunia.
Komponen utama:
- Konten Edukasi: 26 pelajaran yang mencakup pengenalan ML, regresi, klasifikasi, clustering, NLP, time series, dan pembelajaran penguatan
- Aplikasi Kuis: Aplikasi kuis berbasis Vue.js dengan penilaian sebelum dan sesudah pelajaran
- Dukungan Multi-bahasa: Terjemahan otomatis ke lebih dari 40 bahasa melalui GitHub Actions
- Dukungan Bahasa Ganda: Pelajaran tersedia dalam Python (notebook Jupyter) dan R (file R Markdown)
- Pembelajaran Berbasis Proyek: Setiap topik mencakup proyek praktis dan tugas
Struktur Repositori
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
Setiap folder pelajaran biasanya berisi:
README.md- Konten utama pelajarannotebook.ipynb- Notebook Jupyter Pythonsolution/- Kode solusi (versi Python dan R)assignment.md- Latihan praktikimages/- Sumber daya visual
Perintah Setup
Untuk Pelajaran Python
Sebagian besar pelajaran menggunakan notebook Jupyter. Instal dependensi yang diperlukan:
# 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
Untuk Pelajaran R
Pelajaran R berada di folder solution/R/ sebagai file .rmd atau .ipynb:
# Install R and required packages
# In R console:
install.packages(c("tidyverse", "tidymodels", "caret"))
Untuk Aplikasi Kuis
Aplikasi kuis adalah aplikasi Vue.js yang terletak di direktori quiz-app/:
cd quiz-app
npm install
Untuk Situs Dokumentasi
Untuk menjalankan dokumentasi secara lokal:
# Install Docsify
npm install -g docsify-cli
# Serve from repository root
docsify serve
# Access at http://localhost:3000
Alur Kerja Pengembangan
Bekerja dengan Notebook Pelajaran
- Masuk ke direktori pelajaran (misalnya,
2-Regression/1-Tools/) - Buka notebook Jupyter:
jupyter notebook notebook.ipynb - Kerjakan konten pelajaran dan latihan
- Periksa solusi di folder
solution/jika diperlukan
Pengembangan Python
- Pelajaran menggunakan pustaka data science Python standar
- Notebook Jupyter untuk pembelajaran interaktif
- Kode solusi tersedia di folder
solution/setiap pelajaran
Pengembangan R
- Pelajaran R dalam format
.rmd(R Markdown) - Solusi terletak di subdirektori
solution/R/ - Gunakan RStudio atau Jupyter dengan kernel R untuk menjalankan notebook R
Pengembangan Aplikasi Kuis
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
Instruksi Pengujian
Pengujian Aplikasi Kuis
cd quiz-app
# Lint code
npm run lint
# Build to verify no errors
npm run build
Catatan: Ini terutama repositori kurikulum edukasi. Tidak ada pengujian otomatis untuk konten pelajaran. Validasi dilakukan melalui:
- Menyelesaikan latihan pelajaran
- Menjalankan sel notebook dengan sukses
- Memeriksa output terhadap hasil yang diharapkan di solusi
Panduan Gaya Kode
Kode Python
- Ikuti panduan gaya PEP 8
- Gunakan nama variabel yang jelas dan deskriptif
- Sertakan komentar untuk operasi yang kompleks
- Notebook Jupyter harus memiliki sel markdown yang menjelaskan konsep
JavaScript/Vue.js (Aplikasi Kuis)
- Mengikuti panduan gaya Vue.js
- Konfigurasi ESLint di
quiz-app/package.json - Jalankan
npm run lintuntuk memeriksa dan memperbaiki masalah secara otomatis
Dokumentasi
- File markdown harus jelas dan terstruktur dengan baik
- Sertakan contoh kode dalam blok kode berpagar
- Gunakan tautan relatif untuk referensi internal
- Ikuti konvensi format yang ada
Build dan Deployment
Deployment Aplikasi Kuis
Aplikasi kuis dapat dideploy ke Azure Static Web Apps:
-
Prasyarat:
- Akun Azure
- Repositori GitHub (sudah di-fork)
-
Deploy ke Azure:
- Buat sumber daya Azure Static Web App
- Hubungkan ke repositori GitHub
- Tetapkan lokasi aplikasi:
/quiz-app - Tetapkan lokasi output:
dist - Azure secara otomatis membuat workflow GitHub Actions
-
Workflow GitHub Actions:
- File workflow dibuat di
.github/workflows/azure-static-web-apps-*.yml - Secara otomatis membangun dan mendeply saat ada push ke branch utama
- File workflow dibuat di
Dokumentasi PDF
Hasilkan PDF dari dokumentasi:
npm install
npm run convert
Alur Kerja Terjemahan
Penting: Terjemahan dilakukan secara otomatis melalui GitHub Actions menggunakan Co-op Translator.
- Terjemahan dibuat secara otomatis saat ada perubahan yang di-push ke branch
main - JANGAN menerjemahkan konten secara manual - sistem menangani ini
- Workflow didefinisikan di
.github/workflows/co-op-translator.yml - Menggunakan layanan Azure AI/OpenAI untuk terjemahan
- Mendukung lebih dari 40 bahasa
Panduan Kontribusi
Untuk Kontributor Konten
- Fork repositori dan buat branch fitur
- Lakukan perubahan pada konten pelajaran jika menambahkan/memperbarui pelajaran
- Jangan mengubah file yang diterjemahkan - file tersebut dibuat secara otomatis
- Uji kode Anda - pastikan semua sel notebook berjalan dengan sukses
- Verifikasi tautan dan gambar berfungsi dengan benar
- Kirim pull request dengan deskripsi yang jelas
Panduan Pull Request
- Format judul:
[Bagian] Deskripsi singkat perubahan- Contoh:
[Regression] Perbaiki typo di pelajaran 5 - Contoh:
[Quiz-App] Perbarui dependensi
- Contoh:
- Sebelum mengirimkan:
- Pastikan semua sel notebook berjalan tanpa error
- Jalankan
npm run lintjika memodifikasi quiz-app - Verifikasi format markdown
- Uji contoh kode baru
- PR harus mencakup:
- Deskripsi perubahan
- Alasan perubahan
- Screenshot jika ada perubahan UI
- Kode Etik: Ikuti Kode Etik Sumber Terbuka Microsoft
- CLA: Anda perlu menandatangani Perjanjian Lisensi Kontributor
Struktur Pelajaran
Setiap pelajaran mengikuti pola yang konsisten:
- Kuis pra-pelajaran - Menguji pengetahuan awal
- Konten pelajaran - Instruksi dan penjelasan tertulis
- Demonstrasi kode - Contoh langsung dalam notebook
- Pemeriksaan pengetahuan - Memverifikasi pemahaman sepanjang pelajaran
- Tantangan - Menerapkan konsep secara mandiri
- Tugas - Latihan lanjutan
- Kuis pasca-pelajaran - Menilai hasil pembelajaran
Referensi Perintah Umum
# 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
Sumber Daya Tambahan
- Koleksi Microsoft Learn: Modul ML untuk Pemula
- Aplikasi Kuis: Kuis online
- Forum Diskusi: Diskusi GitHub
- Panduan Video: Playlist YouTube
Teknologi Utama
- Python: Bahasa utama untuk pelajaran ML (Scikit-learn, Pandas, NumPy, Matplotlib)
- R: Implementasi alternatif menggunakan tidyverse, tidymodels, caret
- Jupyter: Notebook interaktif untuk pelajaran Python
- R Markdown: Dokumen untuk pelajaran R
- Vue.js 3: Kerangka kerja aplikasi kuis
- Flask: Kerangka kerja aplikasi web untuk deployment model ML
- Docsify: Generator situs dokumentasi
- GitHub Actions: CI/CD dan terjemahan otomatis
Pertimbangan Keamanan
- Tidak ada rahasia dalam kode: Jangan pernah menyertakan API key atau kredensial
- Dependensi: Jaga agar paket npm dan pip tetap diperbarui
- Input pengguna: Contoh aplikasi web Flask mencakup validasi input dasar
- Data sensitif: Dataset contoh bersifat publik dan tidak sensitif
Pemecahan Masalah
Notebook Jupyter
- Masalah kernel: Restart kernel jika sel macet: Kernel → Restart
- Error impor: Pastikan semua paket yang diperlukan diinstal dengan pip
- Masalah path: Jalankan notebook dari direktori tempatnya berada
Aplikasi Kuis
- npm install gagal: Bersihkan cache npm:
npm cache clean --force - Konflik port: Ubah port dengan:
npm run serve -- --port 8081 - Error build: Hapus
node_modulesdan instal ulang:rm -rf node_modules && npm install
Pelajaran R
- Paket tidak ditemukan: Instal dengan:
install.packages("nama-paket") - Rendering RMarkdown: Pastikan paket rmarkdown diinstal
- Masalah kernel: Mungkin perlu menginstal IRkernel untuk Jupyter
Catatan Khusus Proyek
- Ini terutama merupakan kurikulum pembelajaran, bukan kode produksi
- Fokus pada pemahaman konsep ML melalui praktik langsung
- Contoh kode memprioritaskan kejelasan daripada optimasi
- Sebagian besar pelajaran mandiri dan dapat diselesaikan secara independen
- Solusi disediakan, tetapi pembelajar harus mencoba latihan terlebih dahulu
- Repositori menggunakan Docsify untuk dokumentasi web tanpa langkah build
- Sketchnotes menyediakan ringkasan visual konsep
- Dukungan multi-bahasa membuat konten dapat diakses secara global
Penafian:
Dokumen ini telah diterjemahkan menggunakan layanan penerjemahan AI Co-op Translator. Meskipun kami berupaya untuk memberikan hasil yang akurat, harap diperhatikan bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemahan manusia profesional. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.