12 KiB
AGENTS.md
Prosjektoversikt
Dette er Maskinlæring for nybegynnere, et omfattende 12-ukers, 26-leksjons pensum som dekker klassiske maskinlæringskonsepter ved bruk av Python (primært med Scikit-learn) og R. Repositoriet er designet som en selvstyrt læringsressurs med praktiske prosjekter, quizzer og oppgaver. Hver leksjon utforsker ML-konsepter gjennom virkelige data fra ulike kulturer og regioner verden over.
Hovedkomponenter:
- Pedagogisk innhold: 26 leksjoner som dekker introduksjon til ML, regresjon, klassifisering, klynging, NLP, tidsserier og forsterkende læring
- Quiz-applikasjon: Quiz-app basert på Vue.js med vurderinger før og etter leksjoner
- Flerspråklig støtte: Automatiserte oversettelser til 40+ språk via GitHub Actions
- To-språklig støtte: Leksjoner tilgjengelig både i Python (Jupyter-notebooks) og R (R Markdown-filer)
- Prosjektbasert læring: Hvert tema inkluderer praktiske prosjekter og oppgaver
Repositoriets struktur
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
Hver leksjonsmappe inneholder vanligvis:
README.md
- Hovedinnholdet i leksjonennotebook.ipynb
- Python Jupyter-notebooksolution/
- Løsningskode (Python- og R-versjoner)assignment.md
- Øvingsoppgaverimages/
- Visuelle ressurser
Oppsettskommandoer
For Python-leksjoner
De fleste leksjoner bruker Jupyter-notebooks. Installer nødvendige avhengigheter:
# 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
For R-leksjoner
R-leksjoner finnes i solution/R/
-mapper som .rmd
eller .ipynb
-filer:
# Install R and required packages
# In R console:
install.packages(c("tidyverse", "tidymodels", "caret"))
For Quiz-applikasjonen
Quiz-appen er en Vue.js-applikasjon som ligger i quiz-app/
-katalogen:
cd quiz-app
npm install
For dokumentasjonsnettstedet
For å kjøre dokumentasjonen lokalt:
# Install Docsify
npm install -g docsify-cli
# Serve from repository root
docsify serve
# Access at http://localhost:3000
Utviklingsarbeidsflyt
Arbeide med leksjonsnotebooks
- Naviger til leksjonsmappen (f.eks.
2-Regression/1-Tools/
) - Åpne Jupyter-notebook:
jupyter notebook notebook.ipynb
- Jobb deg gjennom leksjonsinnholdet og oppgavene
- Sjekk løsninger i
solution/
-mappen hvis nødvendig
Python-utvikling
- Leksjoner bruker standard Python-biblioteker for datavitenskap
- Jupyter-notebooks for interaktiv læring
- Løsningskode tilgjengelig i hver leksjons
solution/
-mappe
R-utvikling
- R-leksjoner er i
.rmd
-format (R Markdown) - Løsninger finnes i
solution/R/
-undermapper - Bruk RStudio eller Jupyter med R-kjerne for å kjøre R-notebooks
Quiz-applikasjonsutvikling
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
Testinstruksjoner
Testing av quiz-applikasjonen
cd quiz-app
# Lint code
npm run lint
# Build to verify no errors
npm run build
Merk: Dette er primært et pedagogisk pensum-repositorium. Det finnes ingen automatiserte tester for leksjonsinnhold. Validering gjøres gjennom:
- Fullføring av leksjonsoppgaver
- Kjøre notebook-celler vellykket
- Sjekke output mot forventede resultater i løsninger
Retningslinjer for kodestil
Python-kode
- Følg PEP 8-stilretningslinjer
- Bruk klare, beskrivende variabelnavn
- Inkluder kommentarer for komplekse operasjoner
- Jupyter-notebooks bør ha markdown-celler som forklarer konsepter
JavaScript/Vue.js (Quiz-app)
- Følger Vue.js-stilguide
- ESLint-konfigurasjon i
quiz-app/package.json
- Kjør
npm run lint
for å sjekke og automatisk fikse problemer
Dokumentasjon
- Markdown-filer bør være klare og godt strukturerte
- Inkluder kodeeksempler i avgrensede kodeblokker
- Bruk relative lenker for interne referanser
- Følg eksisterende formateringskonvensjoner
Bygging og distribusjon
Distribusjon av quiz-applikasjonen
Quiz-appen kan distribueres til Azure Static Web Apps:
-
Forutsetninger:
- Azure-konto
- GitHub-repositorium (allerede forked)
-
Distribuer til Azure:
- Opprett Azure Static Web App-ressurs
- Koble til GitHub-repositorium
- Sett app-plassering:
/quiz-app
- Sett output-plassering:
dist
- Azure oppretter automatisk GitHub Actions-arbeidsflyt
-
GitHub Actions-arbeidsflyt:
- Arbeidsflytfil opprettet i
.github/workflows/azure-static-web-apps-*.yml
- Bygger og distribuerer automatisk ved push til hovedgrenen
- Arbeidsflytfil opprettet i
Dokumentasjon PDF
Generer PDF fra dokumentasjonen:
npm install
npm run convert
Oversettelsesarbeidsflyt
Viktig: Oversettelser er automatisert via GitHub Actions ved bruk av Co-op Translator.
- Oversettelser genereres automatisk når endringer pushes til
main
-grenen - IKKE oversett innhold manuelt - systemet håndterer dette
- Arbeidsflyt definert i
.github/workflows/co-op-translator.yml
- Bruker Azure AI/OpenAI-tjenester for oversettelse
- Støtter 40+ språk
Retningslinjer for bidrag
For innholdsbidragsytere
- Fork repositoriet og opprett en feature branch
- Gjør endringer i leksjonsinnholdet hvis du legger til/oppdaterer leksjoner
- Ikke endre oversatte filer - de genereres automatisk
- Test koden din - sørg for at alle notebook-celler kjører vellykket
- Verifiser lenker og bilder fungerer korrekt
- Send inn en pull request med klar beskrivelse
Retningslinjer for pull requests
- Tittelformat:
[Seksjon] Kort beskrivelse av endringer
- Eksempel:
[Regression] Fiks skrivefeil i leksjon 5
- Eksempel:
[Quiz-App] Oppdater avhengigheter
- Eksempel:
- Før innsending:
- Sørg for at alle notebook-celler kjører uten feil
- Kjør
npm run lint
hvis du endrer quiz-app - Verifiser markdown-formatering
- Test eventuelle nye kodeeksempler
- PR må inkludere:
- Beskrivelse av endringer
- Årsak til endringer
- Skjermbilder hvis UI-endringer
- Code of Conduct: Følg Microsoft Open Source Code of Conduct
- CLA: Du må signere Contributor License Agreement
Leksjonsstruktur
Hver leksjon følger et konsistent mønster:
- Quiz før leksjon - Test grunnleggende kunnskap
- Leksjonsinnhold - Skriftlige instruksjoner og forklaringer
- Kodeeksempler - Praktiske eksempler i notebooks
- Kunnskapssjekker - Verifiser forståelse underveis
- Utfordring - Bruk konsepter selvstendig
- Oppgave - Utvidet praksis
- Quiz etter leksjon - Vurder læringsutbytte
Referanse for vanlige kommandoer
# 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
Ekstra ressurser
- Microsoft Learn Collection: ML for Beginners-moduler
- Quiz-app: Online quizzer
- Diskusjonsforum: GitHub Discussions
- Videogjennomganger: YouTube-spilleliste
Viktige teknologier
- Python: Hovedspråk for ML-leksjoner (Scikit-learn, Pandas, NumPy, Matplotlib)
- R: Alternativ implementering med tidyverse, tidymodels, caret
- Jupyter: Interaktive notebooks for Python-leksjoner
- R Markdown: Dokumenter for R-leksjoner
- Vue.js 3: Rammeverk for quiz-applikasjonen
- Flask: Webapplikasjonsrammeverk for distribusjon av ML-modeller
- Docsify: Generator for dokumentasjonsnettsted
- GitHub Actions: CI/CD og automatiserte oversettelser
Sikkerhetsvurderinger
- Ingen hemmeligheter i kode: Aldri legg inn API-nøkler eller legitimasjon
- Avhengigheter: Hold npm- og pip-pakker oppdatert
- Brukerinndata: Flask-webapp-eksempler inkluderer grunnleggende validering av input
- Sensitive data: Eksempeldatasett er offentlige og ikke-sensitive
Feilsøking
Jupyter-notebooks
- Kjerneproblemer: Start kjerne på nytt hvis celler henger: Kernel → Restart
- Importfeil: Sørg for at alle nødvendige pakker er installert med pip
- Stiproblemer: Kjør notebooks fra deres inneholdende katalog
Quiz-applikasjon
- npm install feiler: Tøm npm-cache:
npm cache clean --force
- Portkonflikter: Endre port med:
npm run serve -- --port 8081
- Byggefeil: Slett
node_modules
og installer på nytt:rm -rf node_modules && npm install
R-leksjoner
- Pakke ikke funnet: Installer med:
install.packages("package-name")
- RMarkdown-rendering: Sørg for at rmarkdown-pakken er installert
- Kjerneproblemer: Kan trenge å installere IRkernel for Jupyter
Prosjektspesifikke notater
- Dette er primært et læringspensum, ikke produksjonskode
- Fokus er på forståelse av ML-konsepter gjennom praktisk øvelse
- Kodeeksempler prioriterer klarhet fremfor optimalisering
- De fleste leksjoner er selvstendige og kan fullføres uavhengig
- Løsninger er tilgjengelige, men lærende bør forsøke oppgavene først
- Repositoriet bruker Docsify for webdokumentasjon uten byggeprosess
- Sketchnotes gir visuelle oppsummeringer av konsepter
- Flerspråklig støtte gjør innholdet globalt tilgjengelig
Ansvarsfraskrivelse:
Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten Co-op Translator. Selv om vi tilstreber nøyaktighet, vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det originale dokumentet på sitt opprinnelige språk bør anses som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen.