12 KiB
AGENTS.md
Projekti Ülevaade
See on Masinõpe Algajatele, põhjalik 12-nädalane, 26-õppetunnist koosnev õppekava, mis käsitleb klassikalisi masinõppe kontseptsioone Pythonis (peamiselt Scikit-learniga) ja R-is. Repositoorium on loodud iseseisvaks õppimiseks praktiliste projektide, viktoriinide ja ülesannetega. Iga õppetund uurib masinõppe kontseptsioone, kasutades pärismaailma andmeid erinevatest kultuuridest ja piirkondadest üle maailma.
Peamised komponendid:
- Õppematerjalid: 26 õppetundi, mis hõlmavad sissejuhatust masinõppesse, regressiooni, klassifikatsiooni, klasterdamist, NLP-d, ajaseeriaid ja tugevdusõpet
- Viktoriinirakendus: Vue.js-põhine viktoriinirakendus eel- ja järelõppetundide hindamiseks
- Mitmekeelne tugi: Automaatne tõlge enam kui 40 keelde GitHub Actionsi kaudu
- Kahe keele tugi: Õppetunnid saadaval nii Pythonis (Jupyteri märkmikud) kui ka R-is (R Markdowni failid)
- Projektipõhine õpe: Iga teema sisaldab praktilisi projekte ja ülesandeid
Repositooriumi Struktuur
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
Iga õppetunni kaust sisaldab tavaliselt:
README.md- Peamine õppetunni sisunotebook.ipynb- Pythoni Jupyteri märkmiksolution/- Lahenduskood (Pythoni ja R-i versioonid)assignment.md- Harjutusülesandedimages/- Visuaalsed ressursid
Seadistamise Käsud
Pythoni Õppetundide Jaoks
Enamik õppetunde kasutab Jupyteri märkmikke. Paigalda vajalikud sõltuvused:
# 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-i Õppetundide Jaoks
R-i õppetunnid asuvad solution/R/ kaustades .rmd või .ipynb failidena:
# Install R and required packages
# In R console:
install.packages(c("tidyverse", "tidymodels", "caret"))
Viktoriinirakenduse Jaoks
Viktoriinirakendus asub quiz-app/ kataloogis:
cd quiz-app
npm install
Dokumentatsiooni Veebilehe Jaoks
Dokumentatsiooni kohalikuks käivitamiseks:
# Install Docsify
npm install -g docsify-cli
# Serve from repository root
docsify serve
# Access at http://localhost:3000
Arenduse Töövoog
Õppetundide Märkmikega Töötamine
- Liigu õppetunni kataloogi (nt
2-Regression/1-Tools/) - Ava Jupyteri märkmik:
jupyter notebook notebook.ipynb - Töötle läbi õppetunni sisu ja harjutused
- Vajadusel vaata lahendusi
solution/kaustas
Pythoni Arendus
- Õppetunnid kasutavad standardseid Pythoni andmeteaduse teeke
- Jupyteri märkmikud interaktiivseks õppimiseks
- Lahenduskood saadaval iga õppetunni
solution/kaustas
R-i Arendus
- R-i õppetunnid on
.rmdformaadis (R Markdown) - Lahendused asuvad
solution/R/alamkataloogides - Kasuta RStudio või Jupyterit R-i kerneliga R-i märkmike käivitamiseks
Viktoriinirakenduse Arendus
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
Testimise Juhised
Viktoriinirakenduse Testimine
cd quiz-app
# Lint code
npm run lint
# Build to verify no errors
npm run build
Märkus: See on peamiselt hariduslik õppekava repositoorium. Õppetundide sisule automaatseid teste ei ole. Valideerimine toimub:
- Õppetundide harjutuste läbimisega
- Märkmiku lahtrite edukal käivitamisel
- Väljundi kontrollimisel lahenduste oodatud tulemustega
Koodistiili Juhised
Pythoni Kood
- Järgi PEP 8 stiilijuhiseid
- Kasuta selgeid ja kirjeldavaid muutujanimesid
- Lisa kommentaare keerukate operatsioonide jaoks
- Jupyteri märkmikud peaksid sisaldama markdown-lahtrites kontseptsioonide selgitusi
JavaScript/Vue.js (Viktoriinirakendus)
- Järgib Vue.js stiilijuhendit
- ESLinti konfiguratsioon
quiz-app/package.jsonfailis - Käivita
npm run lint, et kontrollida ja automaatselt parandada probleeme
Dokumentatsioon
- Markdown-failid peaksid olema selged ja hästi struktureeritud
- Lisa koodinäited piiratud koodiplokkidesse
- Kasuta sisemiste viidete jaoks suhtelisi linke
- Järgi olemasolevaid vorminduskonventsioone
Ehitamine ja Juurutamine
Viktoriinirakenduse Juurutamine
Viktoriinirakendust saab juurutada Azure Static Web Appsis:
-
Eeltingimused:
- Azure'i konto
- GitHubi repositoorium (juba kahvli tehtud)
-
Juuruta Azure'i:
- Loo Azure Static Web App ressurss
- Ühenda GitHubi repositooriumiga
- Määra rakenduse asukoht:
/quiz-app - Määra väljundi asukoht:
dist - Azure loob automaatselt GitHub Actionsi töövoo
-
GitHub Actionsi Töövoog:
- Töövoo fail luuakse
.github/workflows/azure-static-web-apps-*.ymlkataloogi - Automaatne ehitamine ja juurutamine
mainharule pushimisel
- Töövoo fail luuakse
Dokumentatsiooni PDF
Loo PDF dokumentatsioonist:
npm install
npm run convert
Tõlke Töövoog
Oluline: Tõlked tehakse automaatselt GitHub Actionsi kaudu, kasutades Co-op Translatorit.
- Tõlked genereeritakse automaatselt, kui muudatused lükatakse
mainharule - ÄRA tõlgi sisu käsitsi - süsteem teeb seda automaatselt
- Töövoog määratletud
.github/workflows/co-op-translator.ymlfailis - Kasutab Azure AI/OpenAI teenuseid tõlkimiseks
- Toetab enam kui 40 keelt
Kaastöö Juhised
Sisu Kaastöölistele
- Kahvli repositoorium ja loo funktsiooni haru
- Tee muudatusi õppetunni sisus, kui lisad/värskendad õppetunde
- Ära muuda tõlgitud faile - need genereeritakse automaatselt
- Testi oma koodi - veendu, et kõik märkmiku lahtrid töötavad edukalt
- Kontrolli linkide ja piltide korrektset toimimist
- Esita tõmbepäring selge kirjeldusega
Tõmbepäringu Juhised
- Pealkirja formaat:
[Sektsioon] Lühike muudatuste kirjeldus- Näide:
[Regressioon] Paranda viga õppetunnis 5 - Näide:
[Viktoriinirakendus] Uuenda sõltuvusi
- Näide:
- Enne esitamist:
- Veendu, et kõik märkmiku lahtrid töötavad veatult
- Käivita
npm run lint, kui muudad viktoriinirakendust - Kontrolli markdowni vormindust
- Testi uusi koodinäiteid
- Tõmbepäring peab sisaldama:
- Muudatuste kirjeldust
- Muudatuste põhjust
- Ekraanipilte, kui UI-s on muudatusi
- Käitumisjuhend: Järgi Microsofti avatud lähtekoodi käitumisjuhendit
- CLA: Pead allkirjastama kaastöölise litsentsilepingu
Õppetunni Struktuur
Iga õppetund järgib ühtset mustrit:
- Eelloengu viktoriin - Testi algteadmisi
- Õppetunni sisu - Kirjalikud juhised ja selgitused
- Koodi demonstratsioonid - Praktilised näited märkmikes
- Teadmiste kontrollid - Kontrolli arusaamist õppetunni jooksul
- Väljakutse - Rakenda kontseptsioone iseseisvalt
- Ülesanne - Põhjalikum harjutamine
- Järelloengu viktoriin - Hinda õpitulemusi
Üldised Käskude Viited
# 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
Täiendavad Ressursid
- Microsoft Learn Kogumik: Masinõpe Algajatele moodulid
- Viktoriinirakendus: Veebiviktoriinid
- Arutelu Foorum: GitHubi Arutelud
- Video Juhendid: YouTube'i Esitusloend
Peamised Tehnoloogiad
- Python: Peamine keel masinõppe õppetundide jaoks (Scikit-learn, Pandas, NumPy, Matplotlib)
- R: Alternatiivne teostus, kasutades tidyverse'i, tidymodels'i, caret'i
- Jupyter: Interaktiivsed märkmikud Pythoni õppetundide jaoks
- R Markdown: Dokumendid R-i õppetundide jaoks
- Vue.js 3: Viktoriinirakenduse raamistik
- Flask: Veebirakenduse raamistik masinõppe mudelite juurutamiseks
- Docsify: Dokumentatsiooni veebilehe generaator
- GitHub Actions: CI/CD ja automaatsed tõlked
Turvalisuse Kaalutlused
- Ära lisa koodi saladusi: Ära kunagi commit'i API võtmeid või mandaate
- Sõltuvused: Hoia npm ja pip paketid ajakohased
- Kasutaja sisend: Flaski veebirakenduse näited sisaldavad põhilist sisendi valideerimist
- Tundlikud andmed: Näitedatasetid on avalikud ja mittetundlikud
Tõrkeotsing
Jupyteri Märkmikud
- Kerneliprobleemid: Taaskäivita kernel, kui lahtrid jäävad kinni: Kernel → Restart
- Importimisvead: Veendu, et kõik vajalikud paketid on paigaldatud pip'iga
- Raja probleemid: Käivita märkmikud nende sisaldavast kataloogist
Viktoriinirakendus
- npm install ebaõnnestub: Tühjenda npm vahemälu:
npm cache clean --force - Porti konfliktid: Muuda porti käsuga:
npm run serve -- --port 8081 - Ehitusvead: Kustuta
node_modulesja paigalda uuesti:rm -rf node_modules && npm install
R-i Õppetunnid
- Paketti ei leitud: Paigalda käsuga:
install.packages("package-name") - RMarkdowni renderdamine: Veendu, et rmarkdown pakett on paigaldatud
- Kerneliprobleemid: Võib olla vaja paigaldada IRkernel Jupyteri jaoks
Projekti Spetsiifilised Märkused
- See on peamiselt õppeõppekava, mitte tootmiskood
- Keskendutakse masinõppe kontseptsioonide mõistmisele praktilise harjutamise kaudu
- Koodinäited eelistavad selgust optimeerimise asemel
- Enamik õppetunde on iseseisvad ja neid saab lõpetada eraldi
- Lahendused on saadaval, kuid õppijad peaksid esmalt harjutusi ise proovima
- Repositoorium kasutab Docsify't veebidokumentatsiooni jaoks ilma ehitusetapita
- Sketchnotes pakuvad visuaalseid kokkuvõtteid kontseptsioonidest
- Mitmekeelne tugi teeb sisu globaalselt kättesaadavaks
Lahtiütlus:
See dokument on tõlgitud AI tõlketeenuse Co-op Translator abil. Kuigi püüame tagada täpsust, palume arvestada, et automaatsed tõlked võivad sisaldada vigu või ebatäpsusi. Algne dokument selle algses keeles tuleks pidada autoriteetseks allikaks. Olulise teabe puhul soovitame kasutada professionaalset inimtõlget. Me ei vastuta selle tõlke kasutamisest tulenevate arusaamatuste või valesti tõlgenduste eest.